他のブックを開く

単一で開く場合

ブックを開く

Workbooks.Open(ファイルのフルパス)

ファイルを開くダイアログの表示

return:文字列型(ファイルのフルパス/キャンセル時は文字型で"False")

path = Application.GetOpenFilename("Microsoft Excel ブック, *.xls?")

キャンセル対策+開いたブックをオブジェクト変数にセット

if not filepath = "False" then
Dim wb As Workbook: Set wb = Workbooks.Open(path)
end if

開いたブックを閉じる

wb.Close

複数選択可能にする

GetOpenFilenameの引数に「MultiSelect:=True」を追加
return: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

目的別コードブック操作

Posted by rafavba