Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » VBAでアクティブブックのインデックス番号を取得する

VBAでアクティブブックのインデックス番号を取得する

対象:Excel2003, Excel2007, Excel2010

「エクセル アクティブなブックのインデックスを調べる」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

VBAで、アクティブなワークブックのインデックス番号を取得する、プロパティや方法を探していた方でしょう。

アクティブシートのインデックスはIndexプロパティで取得できる

アクティブなブックではなく、アクティブなシートのインデックスを取得するなら、
  ActiveSheet.Index
という簡単なコードで、アクティブなシートのインデックス番号が取得できます。

オブジェクトブラウザで確認すると、Worksheetオブジェクトにも

Excel.Worksheet.Index

Chartオブジェクトにも

Excel.Chart.Index

Indexプロパティが存在していることが確認できます。

[スポンサードリンク]

ところが、オブジェクトブラウザでWorkbookオブジェクトを確認しても、Indexプロパティは見当たりません。

Excel.Workbook

アクティブブックのインデックス番号を取得するサンプル

アクティブなブックのインデックス番号を取得するには、以下のようなコードを利用するしかなさそうです。

Sub アクティプなブックのインデックス番号を取得する()
 Dim i As Long
 For i = 1 To Workbooks.Count
  If Workbooks(i).Name = ActiveWorkbook.Name Then
   MsgBox i
   Exit Sub
  End If
 Next
End Sub

上記のマクロを実行するとアクティブなブックのインデックス番号がメッセージボックスに表示されます。

すべてのブックをFor~Nextループで調べ、
  For i = 1 To Workbooks.Count

アクティブなブックと名前が一致したら
   If Workbooks(i).Name = ActiveWorkbook.Name Then

メッセージボックスを終了してマクロを終了しています。
    MsgBox i
    Exit Sub

最終更新日時:2021-09-09 16:11

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » VBAでアクティブブックのインデックス番号を取得する

「Workbooks・Workbook」の記事一覧

検索


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

.