スポンサーリンク

【作業自動化】Excelマクロでファイル(ブック)を開く方法

VBA

「Excelマクロをつかって作業を自動化したいけど、何したらいいかわからない」
という人は、ファイルを開くことから試してみましょう。

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

ファイルを開くコード

ファイルのパス(保存されている場所)さえわかれば簡単です。
初心者でも実装できるので、ぜひ勉強してみてください。

✓内容は以下の通りです。
・Workbooks.Openでファイルを開く方法
・ウィンドウからファイルを指定して開く方法

Workbooks.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を書き換えるだけで対象を変更できるので編集が楽になります。

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

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から始めます。

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

まとめ

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

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

コメント

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