Workbooks.Open()で開きたいファイルのパスを指定するだけです。

ファイルのパス(保存されている場所)さえわかれば、誰でも実装できます。

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

“VBA.xlsm” :プログラム実行ファイル(コードを書くファイル)
Sub test()
Workbooks.Open ("C:\Users\HTOM\Desktop\Book1.xlsx")
End Sub

ファイルのパスとは、”そのファイルがどこにあるか”を示す文字列のことです。
例えば、デスクトップにある”Book1.xlsx”のパスは以下の通り。

ちなみに、¥はフォルダ間の境界を意味します。

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


フォルダまではアドレスバーからコピペして、ファイル名は入力。
今回はデスクトップに置いてある前提でしたが、
Cドライブ直下なら ⇒ C:\[ファイル名]
とかになりますね。
パスの変数化
パスは変数でまとめることをおススメします。
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
Filename = "Book1.xlsx"
fullPath = folderPath & "\" & Filename
MsgBox fullPath
Workbooks.Open (fullPath)
End Sub

ファイル名を変えたいなら、Filenameを書き換えるだけでOKです。
ファイル名を入力して開く方法
いちいちコード内のファイル名を書き換える必要があります。
そんな時はInputBoxを組み合わせましょう。
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
Filename = InputBox("ファイル名を入力(デスクトップ上)")
fullPath = folderPath & "\" & Filename
Workbooks.Open (fullPath)
End Sub
FilenameをInputBoxで入力するようにしました。
こうすると、デスクトップにある好きなファイル名を指定するだけで開けます。

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

もしフォルダも指定したいなら、
次に紹介するGetOpenFilenameがおススメ。
ウィンドウでファイルを指定して開く方法
GetOpenFilename
デスクトップに複数ファイルがあるとします。

Sub test()
Filename = Application.GetOpenFilename()
MsgBox Filename
End Sub
このプログラムを実行すると、ファイルを開くウィンドウが現れます。

好きなファイルを指定して”開く”を押すと、ファイルのパスが出力されるはずです。
手に入れたパスをWorkbooks.Open()の中に入れてしまいましょう。
Sub test()
Filename = Application.GetOpenFilename()
Workbooks.Open (Filename)
End Sub
すると選択したファイルが開けるようになります。
複数のファイルを指定して開く方法
GetOpenFilenameなら、1度に複数のファイルを開くことができます。
Sub test()
filename = Application.GetOpenFilename(MultiSelect:=True)
MsgBox UBound(filename)
End Sub
MultiSelectをTrueに設定します。

出力は配列形式です。
例えば上図なら、計4つのファイルのパスが入った配列データとなります。
UBoundは配列の中にあるデータ数をカウントするコードです。
なので、ファイルを4つ指定したなら配列の長さも4です。
パスが手に入ったので、これらもOpen()に入れればファイルが開けます。
Sub test()
filename = Application.GetOpenFilename(MultiSelect:=True)
For i = 1 To UBound(filename)
MsgBox filename(i)
Workbooks.Open (filename(i))
Next i
End Sub
for文でfilenameの中身に1つずつアクセスしましょう。
最初のパスはfilename(1)で取り出せるので、iは1から始めます。
実行して好きなファイルを指定すると、全ファイルが開かれるはずです。

多少人力が必要ですけどお好みですね。
まとめ
今回はファイルを開く方法を解説しました。
②Workbooks.Open()に入れる
無事に開けたらコピペとかもやってみましょう!

コメント