Excel VBA ThisWorkbookはVBAコードが現在実行されているブック

 

Excel VBA ThisWorkbookオブジェクトは、VBAコードが現在実行されているブック(ワークブック)を指します。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBA ThisWorkbookを利用

以下のようなシーンで利用されます。

・マクロがどのブックから実行されても、確実にマクロが含まれるブックを対象に操作する場合に使います。

・複数のブックを開いている場合に、間違えて別のブックに操作を行わないようにするために利用します。

 

使い方

ThisWorkbookは特別なオブジェクトで、VBAでコードを書く際に直接使うことができます。他のブックを参照する際には、Workbooks("ブック名")のように指定しますが、ThisWorkbookは特定の名前を必要とせずに使えます。

 

ポイント

・ThisWorkbookはマクロが含まれるブックを指します。アクティブなブックを指すActiveWorkbookとは異なります。

・他のブックを操作した後に、ThisWorkbookに戻って操作を行う際は、明示的にThisWorkbookを使います。

 

Excel VBA ThisWorkbookのサンプルコード
ThisWorkbookを使ってシートに値を入力する例
Option Explicit

Sub ExampleThisWorkbook()
    ' ThisWorkbookを使って特定のシートに値を入力する
    ThisWorkbook.Sheets("Sheet1").Range("A1").Value = "Hello, World!"
End Sub

複数のブックが開いている場合でも、確実にマクロが含まれるブックを操作する例

Option Explicit

Sub ExampleMultipleWorkbooks()
    ' 他のブックを開いている場合でも、ThisWorkbookを使って操作
    Dim otherWorkbook As Workbook
    Set otherWorkbook = Workbooks.Open("C:\Users\User\Desktop\OtherWorkbook.xlsx")
    
    ' 他のブックに対して操作を行う
    otherWorkbook.Sheets("Sheet1").Range("A1").Value = "Data from other workbook"
    
    ' ThisWorkbookに戻って操作を行う
    ThisWorkbook.Sheets("Sheet1").Range("B1").Value = "Back to ThisWorkbook"
    
    ' 他のブックを閉じる
    otherWorkbook.Close SaveChanges:=False
End Sub

ThisWorkbookオブジェクトを使うことで、特に複数のブックを扱う場合において、コードの安定性と安全性を高めることができます。初心者にも使いやすいので、ぜひ利用してみてください。

 

あなたもExcel VBAのスキルを証明できるようにしませんか? Excel VBA エキスパート資格は、VBAプログラミングの専門家としての信頼性を高めキャリアの成長に大きく貢献し、求人市場での競争力を高め、キャリア機会を拡大します。

 

当サイトでは、Excel VBAエキスパート認定資格取得に役立つ情報を提供しています。まずは問題集から挑戦してみませんか?

 

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。