[ Excel-VBA ] 閉じたままの Excel ファイルからセルの値を取得する ( ExecuteExcel4Macro )

Pocket

ここでは、閉じたままのエクセルファイルからセルの値を取得するサンプルを掲載しています。

スポンサーリンク

閉じたままのファイルからセル値を取得するサンプル

ファイルパス、シート名、セル位置を指定して、ExecuteExcelMacro 関数を呼び出してセル値を取得しています。

    Dim val As Variant
    Dim target As Variant
    
    ' 値を取得したいセルを指定する(R1C1形式)
    target = "'c:\[Book1.xls]Sheet1'!R1C1"
    
    ' 取得    
    val = ExecuteExcel4Macro(target)
ファイル名のみカッコで括る

サンプルでは区別がつけ辛いですが、括弧で括るのはファイル名のみです。フォルダ名を括る必要はありません。

    ' 間違い
    target = "'c:\[test\Book1.xls]Sheet1'!R1C1"

    ' 正しい
    target = "'c:\test\[Book1.xls]Sheet1'!R1C1"

なお、ファイル名のみを括弧で括るには以下のようなやりかたが簡単だと思いますが、欠点として、( レアなケースだとは思いますが ) ファイル名とフォルダ名が同じである場合は使用することができません。

    Dim fpath, target
    
    ' ファイルパス
    fpath = "c:\test\Book1.xls"
    
    ' ファイルパスのうちファイル名のみを括弧で括る
    ' Dir 関数でファイル名が取得できることを利用する
    target = Replace(fpath, Dir(fpath), "[" & Dir(fpath) & "]")

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *