【VBA入門】ファイルを開く方法2選|ファイルパス指定&ダイアログから選択

VBAファイルを開く VBA
記事内に広告が含まれています。

はじめに

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でのファイル操作がスムーズになります。
タイトルとURLをコピーしました