目次
目的
- ActiveWorkbook と ThisWorkbook の違いを見てみる。
- 別のワークブックを開いた時の両者の Name を取得してみる。
その一例
- 同じフォルダにワークブックを 2 つ準備しました。
「A.xls」と「B.xls」。 - 「A.xls」で下記マクロを実行してみます。
Sub ActiveWorkbookとThisWorkbookの違い()
Debug.Print "「B.xls」を開く前"
Debug.Print "Active="; Tab; ActiveWorkbook.Name
Debug.Print "This="; Tab; ThisWorkbook.Name
Dim b As Workbook
Set b = Workbooks.Open(ThisWorkbook.Path & "¥" & "B.xls") 'B.xls を開く
Debug.Print "「B.xls」を開いた後"
Debug.Print "Active="; Tab; ActiveWorkbook.Name
Debug.Print "This="; Tab; ThisWorkbook.Name
b.Close False 'B.xls を閉じる
Debug.Print "「B.xls」を閉じた後"
Debug.Print "Active="; Tab; ActiveWorkbook.Name
Debug.Print "This="; Tab; ThisWorkbook.Name
End Sub - イミディエイトウィンドウに以下の内容が出力されました。「B.xls」を開いた後は、アクティブなワークブックが「B.xls」になっています。
「B.xls」がアクティブになっている 。
上記マクロの「B.xls」の文字を「A.xls」に変更して「B.xls」から実行すると以下の結果になりました。

テスト環境
- Windows 10(64 ビット)
- Microsoft Office Excel 2003
以前、両者の違いを意識せずに使用していたところ、思わぬ処理がされてしまった覚えがあります。
以上、閲覧ありがとうございました。