Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » アクティブシートのブック名をVBAで取得するには

アクティブシートのブック名をVBAで取得するには

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

「VBA アクティブシートのブック名取得」
という検索キーワードでアクセスがありました。

[スポンサードリンク]

アクティブシートの親であるブック名を取得するサンプルマクロ

まずは、
「VBA アクティブシートのブック名取得」
という検索に、そのままお答えするコードをご紹介します。

以下のExcelマクロを実行すると、アクティブシートを含むブックの名前がメッセージボックスに表示されます。

Sub ActiveSheetのParent名を取得する()
 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マクロでも、「アクティブシートのブック名取得」ができます。

Sub ActiveWorkbooks名を取得する()
 MsgBox _
   ActiveWorkbook.Name
End Sub

「VBA アクティブシートのブック名取得」
と検索なさった方には、この機会にActiveWorkbookプロパティを覚えてることをおすすめします。

最終更新日時:2022-04-26 14:56

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » アクティブシートのブック名をVBAで取得するには

「Sheets・Worksheet」の記事一覧

検索


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

.