Excel VBA ThisWorkbookオブジェクトは、VBAコードが現在実行されているブック(ワークブック)を指します。具体的な使い方や、注意点やサンプルコードを紹介します。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
以下のようなシーンで利用されます。
・マクロがどのブックから実行されても、確実にマクロが含まれるブックを対象に操作する場合に使います。
・複数のブックを開いている場合に、間違えて別のブックに操作を行わないようにするために利用します。
ThisWorkbookは特別なオブジェクトで、VBAでコードを書く際に直接使うことができます。他のブックを参照する際には、Workbooks("ブック名")のように指定しますが、ThisWorkbookは特定の名前を必要とせずに使えます。
・ThisWorkbookはマクロが含まれるブックを指します。アクティブなブックを指すActiveWorkbookとは異なります。
・他のブックを操作した後に、ThisWorkbookに戻って操作を行う際は、明示的にThisWorkbookを使います。
ExcelVBAエキスパートベーシックは仕事の効率をあげる人の資格です。
本サイト参考:日常業務でExcelを多用し、手動作業を減らしたいと考えている方におすすめの記事
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で自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。