ブックをOpenせずにデータを取得する−エクセル4.0マクロ
以下のサンプルではエクセル4.0マクロを使用して対象ブックをOpenせずに
指定のワークシートからデータを取得します。

注)サンプルでは読み込み側で指定したセル範囲と同一アドレスのセルから
  データを取得しています。


Sub MyProc()

    Dim FileName As String
    Dim ShName As String
    Dim TargetRange As Range
    Dim CurRange As Range
    Dim Pos As Integer

    '対象ファイル選択
    FileName = Application.GetOpenFilename ("Excel(*.xls),*.xls")
    If FileName = "False" Then Exit Sub

    '最後の円マーク位置を取得、ファイル名を括弧でくくる
    Pos = InStrRev(FileName, "\")
    FileName = Left(FileName, Pos) & "[" & Mid(FileName, Pos + 1) & "]"
    'ワークシート名入力
    ShName = Application.InputBox("シート名を入力", "SheetName?", _
                                                    "Sheet1", Type:=2)
    'セル領域選択
    Set TargetRange = Application.InputBox("対象セル領域選択", _
                                           "Range?", "A1:A1", Type:=8)

    For Each CurRange In TargetRange
    'パス[ファイル名]シート名!R1C1の形式でExcel4.0マクロの引数とする
        CurRange.Value = Application.ExecuteExcel4Macro _
      ("'" & FileName & ShName & "'!R" & CurRange.Row & "C" & CurRange.Column)
    Next

End Sub

Excel97,2000



戻る


Excel Word Access VBA! モーグ