Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » Worksheetのイベントプロシージャでワークシート名を取得する-Me.Name

Worksheetのイベントプロシージャでワークシート名を取得する-Me.Name

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2107 ビルド14228.20250 Microsoft Store)

Worksheetのイベントプロシージャで、そのワークシートの名前を取得するために

  Target.Parent.Name

といったコードが使われているのを見かけました。

[スポンサードリンク]

Target.Parent.Nameとは

例えば、Worksheetクラスの代表的なイベントプロシージャである、Worksheet_SelectionChangeでは、「ByVal Target As Range」と定義されている引数Targetで、新たに選択されたセル範囲を表すRangeオブジェクトを取得できます。

この引数Targetで取得できるRangeの親に該当するオブジェクトは、そのセル範囲の存在するワークシートを表すWorksheetオブジェクトオブジェクトです。

ですから、Rangeオブジェクトに用意されているParentプロパティを使ったコード「Target.Parent.Name」で、確かにワークシートの名前を取得できます。

ですが、もっと簡単なコードで、ワークシート名を取得できます。

Me.Nameでワークシート名を取得できる

以下のようなWorksheet_SelectionChangeイベントプロシージャで、ワークシート名がメッセージボックスに表示されます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 MsgBox Me.Name
End Sub

VBAのキーワードMeを使うと、コードの書かれているオブジェクトを取得できるのです。

Worksheetのイベントプロシージャであれば、キーワードMeでイベントの発生しているWorksheetオブジェクトを取得できます。

Workbookのイベントプロシージャであれば、キーワードMeでイベントの発生しているWorkbookオブジェクトを取得できます。

最終更新日時:2021-09-06 07:06

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » Worksheetのイベントプロシージャでワークシート名を取得する-Me.Name

「イベントプロシージャ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.