ブックを単体で開く場合の処理
ブックを開く関数:Open
Workbooks.Open(ファイルのフルパス)
ファイル選択ダイアログの表示:GetOpenFilename
これはファイルのパスを文字列型で返す
キャンセルされた場合も文字型で"False"と返ってくる
path = Application.GetOpenFilename("Microsoft Excel ブック, *.xls?")
キャンセル対策+開いたブックをオブジェクト変数にセット
if not filepath = "False" then
Dim wb As Workbook: Set wb = Workbooks.Open(path)
end if
指定したブックをマクロ無効で開く
Sub test()
Dim fileName As String
fileName = "C:\フルパス\マクロ無効で開きたいブック.xlsm"
Application.EnableEvents = False
Workbooks.Open fileName
Application.EnableEvents = True
End Sub
開いたブックを閉じる
wb.Close
複数のブックを開く場合の処理
GetOpenFilenameの引数に「MultiSelect:=True」を追加
1ベースの一次元配列が返ってくる(キャンセル時はBoolean型のFalse)
arr_path = Application.GetOpenFilename("Microsoft Excel ブック, *.xls?", MultiSelect:=True)
IsArray()関数でキャンセルされてないか判定可能
if not IsArray(arr_path) then
msgBox "キャンセルされました"
end if
複数のブックをループ処理する(ScreenUpdatingでチラツキ防止)
if IsArray(arr_path) then
Application.ScreenUpdating = False
for i = 1 to ubound(arr_path)
set wb = Workbooks.Open(arr_path(i))
'~処理~
wb.Close
next i
Application.ScreenUpdating = True
end if
ショートカットの割当
Workbook_openイベントにこれを書く
Application.Onkey ”{F1}”, "プロシージャ名"
指定できるキーの一覧:公式ドキュメント