1. ホーム
  2. excel

[解決済み] 閉じたワークブックから値を取得するExecuteExcel4Macro

2022-02-14 23:39:59

質問

このコードを見つけ、閉じたシートから1つの値を引き出す必要がある場合に使用するのが良いかと思いました。

strInfoCell = "'" & strPath & "[" & strFile & "]Sheet1'!R3C3"
myvalue = ExecuteExcel4Macro(strInfoCell)

このコードを実行すると strinfocell

'C:\Users\my.name\Desktop[QOS DGL stuff.xlsx]Sheet1'!R3C3

しかし、このコードを実行すると、ダイアログがポップアップし、デスクトップファイルが " で表示されます。 QOS DGL suff "が表示されます。

この原因は何でしょうか?なぜ期待通りにデータが引き戻されないのでしょうか?

パスとファイル名が正しいことは、デバッグ出力からコピーして、それを start>>run をクリックすると、正しいシートが開きます。

私は知っている Sheet1 (という名前)。 ACL には値があります。 cells(3,3)

どのように解決するのですか?

使い方によります。strPathの末尾に""がないため、ファイルを開くダイアログボックスが表示されています;)。

このコードを試してみてください。

Option Explicit

Sub Sample()
    Dim wbPath As String, wbName As String
    Dim wsName As String, cellRef As String
    Dim Ret As String
    
    'wbPath = "C:\Documents and Settings\Siddharth Rout\Desktop\"
    wbPath = "C:\Users\my.name\Desktop\"
    
    wbName = "QOS DGL stuff.xls"
    wsName = "ACL"
    cellRef = "C3"
    
    Ret = "'" & wbPath & "[" & wbName & "]" & _
          wsName & "'!" & Range(cellRef).Address(True, True, -4150)
    
    MsgBox ExecuteExcel4Macro(Ret)
End Sub