「VBA アクティブシートのブック名取得」
という検索キーワードでアクセスがありました。
アクティブシートの親であるブック名を取得するサンプルマクロ
まずは、
「VBA アクティブシートのブック名取得」
という検索に、そのままお答えするコードをご紹介します。
以下のExcelマクロを実行すると、アクティブシートを含むブックの名前がメッセージボックスに表示されます。
MsgBox _
ActiveSheet.Parent.Name
End Sub
ActiveSheetプロパティを使うと、
ワークシートを表すWorksheetオブジェクトやグラフシートを表すChartオブジェクトを取得できます。
ActiveSheetプロパティで取得したWorksheetオブジェクトにもChartオブジェクトにも、親オブジェクトを取得するためのParentプロパティが用意されています。
Worksheet.Parentプロパティ・Chart.Parentプロパティいずれも、「As Object」と定義されていますが、実際の戻り値はWorksheet・Chartの親オブジェクトであるWorkbookオブジェクトです。
そのような「ActiveSheet.Parent」で取得したWokbookオブジェクトに用意されているNameプロパティを使えば、
「アクティブシートのブック名取得」が可能です。
アクティブなブック名を取得するサンプルマクロ
Excel VBAのWorkbookオブジェクトとWorksheetオブジェクトは、拙著『いちばんやさしいExcel VBAの教本』の「Lesson 51 オブジェクトの階層関係を理解しましょう」でも解説しているとおり、
Workbookオブジェクト └ Worksheetオブジェクト
という階層関係にあります。
ですから、アクティブシートの親であるブックも必ずアクティブな状態にあります。
そして、Excel VBAにはアクティブなブックを表すWorkbookオブジェクトを取得するためのプロパティも用意されています。拙著の「Lesson 74 ブックを表すオブジェクトを取得するプロパティについて学習しましょう」でも解説しているActiveWorkbookプロパティです。
つまり、以下のようなExcelマクロでも、「アクティブシートのブック名取得」ができます。
MsgBox _
ActiveWorkbook.Name
End Sub
「VBA アクティブシートのブック名取得」
と検索なさった方には、この機会にActiveWorkbookプロパティを覚えてることをおすすめします。
最終更新日時:2022-04-26 14:56
Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » アクティブシートのブック名をVBAで取得するには