【VBA】特定のパスのブックを開く

VBAでは、Workbooks.Open メソッドを使うことで、指定したパスにあるブックを開くことができます。
ここでは、基本的なコード例と、よく使うオプションを紹介します。


1. 基本的なブックを開くコード

Sub OpenWorkbook()
'指定パスのブックを開く
Workbooks.Open "C:\Users\Public\Sample.xlsx"
End Sub

解説:

  • Workbooks.Open … 指定したファイルパスのブックを開くメソッド。
  • "C:\Users\Public\Sample.xlsx" … 開きたいブックのフルパス。
  • パスやファイル名を間違えるとエラーが発生するので注意。

2. 変数でパスを指定する

ファイルパスを変数として指定すると、可読性が上がります。

Sub OpenWorkbookWithPath()
Dim filePath As String
filePath = "C:\Users\Public\Sample.xlsx"
Workbooks.Open filePath
End Sub

解説:

  • 変数 filePath にパスを格納してから Open に渡す方法。
  • 複数のブックを扱う場合、変数を使う方が管理しやすい。

3. ファイル選択ダイアログを使う

ユーザーに開くファイルを選ばせることも可能です。

Sub OpenWorkbookDialog()
Dim filePath As Variant
filePath = Application.GetOpenFilename( _
FileFilter:="Excelファイル (*.xlsx; *.xlsm), *.xlsx; *.xlsm")

If filePath <> False Then
Workbooks.Open filePath
Else
MsgBox "キャンセルされました。"
End If
End Sub

解説:

  • Application.GetOpenFilename … ファイル選択ダイアログを表示するメソッド。
  • FileFilter … 表示するファイル形式を指定。
  • If filePath <> False … キャンセル時は処理を中断。

4. 開いたブックを変数に格納する

開いたブックを変数に保持することで、後続処理で指定しやすくなります。

Sub OpenWorkbookToVariable()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\Public\Sample.xlsx")
wb.Sheets(1).Range("A1").Value = "データ追加"
End Sub

解説:

  • Set wb = Workbooks.Open(...) でブックをオブジェクト変数 wb に格納。
  • wb.Sheets(1).Range("A1").Value で直接ブック内を操作できる。

5. まとめ

  • Workbooks.Open で指定パスのブックを開く。
  • パスを変数にするとコードの保守性が上がる。
  • ユーザー選択ダイアログを使うと柔軟に対応できる。
  • 変数に格納してブックを操作するのが定番。

コメント

タイトルとURLをコピーしました