Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2019)
ExecuteExcel4Macro ドライブ指定について
投稿日時: 22/05/17 16:21:18
投稿者: たかさん@富山

いつも参考になります。
xecuteExcel4Macro を使って処理を書いてみました。
  
自分のパソコン内でなら,正常動作するのですが
ネットワークドライブが正しく設定できません。
  
処理速度がかかるのは承知していますが
教授願います。
  
―――――――――――――――――――――――――――――――――――――
Sub TEST()
  Dim A, B, C, D, E(6), F
  A = "C:\TEMP\"      '★ここをが不明です。
  Application.ScreenUpdating = False
     
  D = WorksheetFunction.CountA(Range("A:A")) '処理数
  Range("A1").Select
   
  For F = 1 To D
      
  B = ActiveCell.Offset(0, 0).Value 'ファイル名
  C = ActiveCell.Offset(0, 1).Value 'シート名
    E(1) = ExecuteExcel4Macro("'" & A & "[" & B & "]" & C & "'!R38C4")
    E(2) = ExecuteExcel4Macro("'" & A & "[" & B & "]" & C & "'!R39C4")
    E(3) = ExecuteExcel4Macro("'" & A & "[" & B & "]" & C & "'!R40C4")
    E(4) = ExecuteExcel4Macro("'" & A & "[" & B & "]" & C & "'!R41C4")
    E(5) = ExecuteExcel4Macro("'" & A & "[" & B & "]" & C & "'!R42C4")
    E(6) = ExecuteExcel4Macro("'" & A & "[" & B & "]" & C & "'!R43C4")
  
    ActiveCell.Offset(0, 2).Value = E(1)
    ActiveCell.Offset(0, 3).Value = E(2)
    ActiveCell.Offset(0, 4).Value = E(3)
    ActiveCell.Offset(0, 5).Value = E(4)
    ActiveCell.Offset(0, 6).Value = E(5)
    ActiveCell.Offset(0, 7).Value = E(6)
    ActiveCell.Offset(1, 0).Select
  Next F
  
End Sub
―――――――――――――――――――――――――――――――――――――
  
データー保存先を\\FILE\TEST\としたいのですが。
よろしくお願いします

回答
投稿日時: 22/05/17 19:43:52
投稿者: simple

確認できていませんが、
ExecuteExcel4Macroは古いものなので、未対応なのかもしれませんね。
ネットワークドライブを割り当てる方法で切り抜けたらいかがですか?

投稿日時: 22/05/17 19:50:20
投稿者: たかさん@富山

ありがとうございます。
 
私がネットワークドライブの割り当てをして
動作確認は出来たのですが、他の人に渡した時に
そのままでは、動作できないので
解消したいと考えています。
 
外部参照では、起動時に時間がかかり
断念しました。
 
古い処理ですが、何か方法がないかと
試行錯誤しています。

回答
投稿日時: 22/05/17 21:45:16
投稿者: WinArrow
投稿者のウェブサイトに移動

ファイルを開かずに、でータを取得する方法としては
ADOがあります。
検討してみましょう。

回答
投稿日時: 22/05/18 22:47:55
投稿者: よろずや

たかさん@富山 さんの引用:
古い処理ですが、何か方法がないかと
試行錯誤しています。
普通にリンク貼り付けすれば、NASのデータでも取れますよ。
 
NASのファイルを開いてそのデータをリンク貼り付けしてNASのファイルを保存終了すれば、
セルにNASのリンクデータができますので、VBAでそれと同じことをやればOK。
後はコピペで値だけにするなり何なりとお好きな様に。

投稿日時: 22/05/20 09:35:10
投稿者: たかさん@富山

ありがとうございます。
 
VBAよりネットワークドライブ割当で
対応できました。
 
ありがとうございました。