【VBA】Excelマクロでファイル(ブック)を開く方法

VBA
スポンサーリンク

Workbooks.Openで開きたいファイルのパスを指定します。

ファイルを開くコード

ファイルのパス(保存されている場所)さえわかれば簡単です。

当ブログではVBAだけでなくPythonも解説しています。
PythonでもExcel操作ができるので、第2言語としておすすめです。
>>VBAの次にPythonを学ぶメリットと勉強方法

Workooks.Open

ファイルの開き方

デスクトップに2つファイルがある図

このように2つのファイルがデスクトップにあるとします。
“VBA.xlsm” にプログラムを書いて、”Book1.xlsx”を開きましょう。

Sub test()

Workbooks.Open ("C:\Users\HTOM\Desktop\Book1.xlsx")

End Sub

Workbooks.Openにファイルのパスを入れると開けます。

ファイルを開くコード
ファイルのパスとは、”そのファイルがどこにあるか”を示す文字列のことです。

例えば、デスクトップにある”Book1.xlsx”のパスは以下の通りです。

ファイルのパスを示した文字列の例

ユーザー名は人によって違うので注意しましょう。
また、¥はフォルダ間の境界を意味します。

パスの確認方法

アドレスバーからファイルのパスをコピーする図

このようにアドレスバーをクリックするとフォルダまでのパスが全選択されます。
コピペして¥とファイル名を足してあげれば完成です。

ファイルのパスをコピペして作る例
今回はデスクトップにファイルが置いてある前提でしたが、
・ドキュメントフォルダなら ⇒ C:\Users\[ユーザー名]\Documents\[ファイル名]
・Cドライブ直下なら ⇒ C:\[ファイル名]
とかになります。

パスの変数化

パスは変数でまとめることをおススメします。

Sub test()

folderPath = "C:\Users\HTOM\Desktop"
Filename = "Book1.xlsx"
fullPath = folderPath & "\" & Filename

MsgBox fullPath
Workbooks.Open (fullPath)

End Sub
ファイルのパスを変数化する例

こうすると、Filenameを書き換えるだけで対象を変更できるので編集が楽になります。

ファイル名を入力して開く方法

Sub test()

folderPath = "C:\Users\HTOM\Desktop"
Filename = InputBox("ファイル名を入力(デスクトップ上)")
fullPath = folderPath & "\" & Filename

Workbooks.Open (fullPath)

End Sub

デスクトップにある前提ですが、ファイル名をInputBoxで柔軟に指定できるようにしました。
こうすると、好きなファイル名を指定して開くことができます。

ファイルのパスをInputで受け取るコード

ちなみに拡張子(“.xlsx”など)や大文字小文字は気にしなくて大丈夫です。
ただし”Book1.xlsm”のように拡張子まで指定すると、
拡張子が違う”Book1.xlsx”は開けないので注意してください。

もしフォルダも指定したいなら、次に紹介するGetOpenFilenameを使いましょう。

ウィンドウでファイルを指定して開く方法

GetOpenFilename

デスクトップに4つファイルがある例

このように、デスクトップに複数ファイルがあるとします。

Sub test()

Filename = Application.GetOpenFilename()
Workbooks.Open (Filename)

End Sub

このプログラムを実行すると、ファイルを開くウィンドウが現れます。

GetOpenFilenameでファイルを開くコード

好きなファイルを指定して”開く”を押すと、選択したファイルが開けます。

複数のファイルを指定して開く方法

Sub test()

filename = Application.GetOpenFilename(MultiSelect:=True)

For i = 1 To UBound(filename)
    MsgBox filename(i)
    Workbooks.Open (filename(i))
Next i

End Sub

GetOpenFilenameなら、1度に複数のファイルを開くことができます。

GetOpenFilenameで複数ファイルを開くコード

filenameには指定したファイルのパスが配列(リスト)形式で保存されています。

for文でfilenameの中身に1つずつアクセスしましょう。
最初のパスはfilename(1)で取り出せるので、iは1から始めます。

実行して好きなファイルを指定すると、全ファイルが開かれるはずです。

まとめ

今回はファイルを開く方法を解説しました。
どうにかしてファイルのパスを手に入れることができれば簡単ですね。

ファイルが開けるようになったら、次はコピペして閉じるまでをできるようになりましょう。

VBAの次に新しい言語に挑戦したいな。。。

と考えている方にはPythonがおすすめです。勉強方法も解説しています。
>>VBAの次にPythonを学ぶメリットと勉強方法


コメント

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