はじめに
Excel VBAでは、外部のファイルを開いてデータを取得したり編集したりすることがよくあります。
今回は、ファイルパスを直接指定して開く方法と、ダイアログからファイルを選択して開く方法の2パターンを解説します。
1. ファイルパスを直接指定して開く
特定のファイルを毎回開く場合は、パスを直接指定する方法がシンプルです。
Sub OpenFile_ByPath()
Dim filePath As String
filePath = "C:\Users\user\Documents\test.xlsx" '開きたいファイルのパス
Workbooks.Open Filename:=filePath
End Sub
ポイント
Workbooks.Open
にフルパスを指定- パスは
C:\フォルダ名\ファイル名.xlsx
の形式 - ファイルが存在しない場合はエラーになるため、事前に存在チェックをすると安全
2. ダイアログからファイルを選択して開く
ファイルを選んで開きたい場合は Application.GetOpenFilename
を使います。
Sub OpenFile_ByDialog()
Dim filePath As Variant
filePath = Application.GetOpenFilename( _
FileFilter:="Excelファイル (*.xlsx;*.xlsm), *.xlsx;*.xlsm", _
Title:="開くファイルを選択してください" _
)
'キャンセルされた場合は処理を終了
If filePath = False Then Exit Sub
Workbooks.Open Filename:=filePath
End Sub
ポイント
FileFilter
で選択できるファイルの種類を制限可能- キャンセル時は
False
が返るため、If
文で判定 - 複数拡張子を指定する場合はセミコロン区切り
3. どちらを使うべきか?
方法 | 向いているケース |
---|---|
ファイルパス指定 | 開くファイルが固定 |
ダイアログ選択 | 毎回異なるファイルを開く |
4. 実用例:存在チェック付きファイルオープン
Sub OpenFile_WithCheck()
Dim filePath As String
filePath = "C:\Users\user\Documents\test.xlsx"
If Dir(filePath) <> "" Then
Workbooks.Open Filename:=filePath
Else
MsgBox "ファイルが見つかりません", vbExclamation
End If
End Sub
まとめ
- 固定ファイル → パス指定
- 可変ファイル → ダイアログ選択
状況に応じて使い分けることで、VBAでのファイル操作がスムーズになります。