このページではワークブックオブジェクトの指定方法を説明します。
ワークブックオブジェクトもワークシートオブジェクトの指定方法と同様にインデックス(整数型)で指定する方法と、ワークブックの名前(文字列型)で指定する方法があります。
さらに ThisWorkbook という実行したマクロが組み込まれたワークブックを指し示すワークブックオブジェクトが使用できます。
- インデックスで指定する方法 ⇒ 1 ~ Workbooks.Count の範囲で指定(この範囲外はエラー)
- ブック名で指定する方法 ⇒ 既に開いているブック名(半角/全角、大文字/小文字区別あり)を指定
- ThisWorkbook で指定する方法 ⇒ 実行したマクロが組み込まれているワークブックを指します。
(存在しない場合はエラー)
使用方法
使用例(前ページ掲載のサンプルマクロ)
前ページ Open メソッドの 一連のチェックをしてからワークブックを開く の再掲です。マクロ実行時の事前準備などはリンク先を参照してください。
このサンプルマクロでは、ワークブックを開く前に同一ブック名が既に開かれているか(チェック①)、ファイルが存在するか(チェック②)のチェックしています。
前者のチェック過程で、マクロが組み込まれたブックのパス(ThisWorkbook.Path)を使用して、開く対象ワークブックのパスを構築してから、ワークブックコレクション内をインデックス指定で名前のチェックをしています。
Sub sample_eb083_01()
Dim TargetFile As String
Dim TargetFilePath As String
Dim flg_opened As Boolean
Dim i As Integer
'開きたいファイル名
TargetFile = "test.xlsx"
'TargetFileがマクロが組み込まれたブックと
'同じフォルダにあるものとしてファイルパスを作成。
TargetFilePath = ThisWorkbook.Path & "¥" & TargetFile
'★チェック① : 既に開かれていないかチェック
flg_opened = False
For i = 1 To Workbooks.Count
If Workbooks(i).Name = TargetFile Then
flg_opened = True
Exit For
End If
Next i
If flg_opened Then
'既に開かれている場合
MsgBox "『" & TargetFile & "』は既に開かれています。", _
vbExclamation
Else
'★チェック② : ファイルの存在チェック
If Dir(TargetFilePath) = "" Then
'ファイルが見つからない場合
MsgBox "『" & TargetFile & "』が見つかりません。", _
vbExclamation
Else
'ファイルが存在している場合
Workbooks.Open TargetFilePath
MsgBox "『" & TargetFile & "』を開きました。", _
vbInformation
End If
End If
End Sub
ThisWorkbook ワークブックの名前とパス
ワークブックCount
For…Next Exitステートメント MsgBox関数 Dir関数