サイトについて      連絡先   検索

VBA ワークブックを開く

はじめに

Excel VBA マクロのワークブックを開く方法を紹介します。

Workbooks.Open メソッドでブックを開けます。

ファイルを開くダイアログを表示したり、同じフォルダにあるファイルなどを指定できます。

  • 目次
    • ブックを開く
    • 開いたワークブックを編集する

ブックを開く

ブックを開くにはWorkbooks.Open("フルパス")のように入力します。


Call Workbooks.Open("D:\Book1.xlsx")

開いたブックはアクティブになります。

既に開かれているブックと同じブック名 (ファイル名) のファイルは開けません。

開いた後にマクロを実行しているブックをアクティブにしたいときはThisWorkbook.Activateを入力します。


Call Workbooks.Open("D:\Book1.xlsx") ' ブックを開く
ThisWorkbook.Activate           ' マクロを実行しているブックをアクティブにする

指定したファイルが存在しないときは「エラー 1004 アプリケーション定義またはオブジェクト定義のエラーです。」が発生します。

ファイルを開くダイアログを表示する

ファイルを開くダイアログを表示するには Application.GetOpenFilename を使用します。

戻り値に選択したフルパスが返ります。キャンセルすると "False" が返ります。

1

Dim filePath As String
filePath = Application.GetOpenFilename ' ダイアログを表示

If filePath = "False" Then
    Exit Sub ' キャンセル
End If

' 開く
Call Workbooks.Open(filePath) ' ブックを開く

ダイアログは開くファイルのパスを取得するだけで開いてはいません。ダイアログを表示した後に開く処理をする必要があります。

ファイルのパスを取得する

開いているファイルのパスなどを取得するには「ファイルやフォルダのパスを取得」をご覧ください。

マクロを実行しているファイルと同じフォルダにある Tips.xlsx を開くには、次のようにします。


Dim folderPath As String
folderPath = ThisWorkbook.Path ' マクロを実行しているファイルのフォルダパス

If folderPath = "" Then ' 保存されていないとき
    Exit Sub ' キャンセル
End If

Dim filePath As String
filePath = folderPath & "\Tips.xlsx" ' フォルダパスと開きたいファイル名を結合

' 開く
Call Workbooks.Open(filePath) ' Workbook を開く

開いたワークブックを編集する

Open の戻り値から開いたブックを取得できます。


Dim wb As Workbook
Set wb = Workbooks.Open("D:\Book1.xlsx") ' Workbook を開く

' 編集
wb.Sheets(1).Range("A1").Value = "編集"
  • 目次
    • ブックを開く
    • 開いたワークブックを編集する