Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » VBAで選択されているシートのインデックス番号(何枚目か)を取得する

VBAで選択されているシートのインデックス番号(何枚目か)を取得する

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

「VBA 選択されているシート番号」
という検索キーワードでアクセスがありました。

「シート番号」と表現されているのがハッキリしませんが、選択されている複数シートのインデックス番号(何枚目かを表す番号)を取得するなら、以下のSubプロシージャが参考になるでしょう。

[スポンサードリンク]

選択されているシートのインデックス番号をするサンプル

以下のSubプロシージャを実行すると、アクティブブックの、選択されているシートのインデックス番号が、イミディエイトウィンドウに出力されます。

Sub 選択シートのインデックス番号を取得する()
 Dim sh As Object
 For Each sh In ActiveWindow.SelectedSheets
  Debug.Print sh.Index
 Next
End Sub

サンプルマクロで行っている処理について

選択されているシートを表すコレクションは、Windowオブジェクトに用意されているSelectedSheetsプロパティで取得できます。

ActiveWindow.SelectedSheetsで取得したコレクションに対してFor Each~Nextループを回して、
  For Each sh In ActiveWindow.SelectedSheets

Indexプロパティで取得したインデックス番号を、イミディエイトウィンドウに出力しています。
   Debug.Print sh.Index

ワークシートだけでなく、グラフシートも選択されている可能性がありますから、For Each~Next文で利用するオブジェクト変数は総称オブジェクト型で宣言しています。
  Dim sh As Object

選択されている複数シートの場合は上述のとおりループ処理が必要ですが、アクティブシートの場合はActiveSheet.IndexだけでOKです。

最終更新日時:2021-09-04 09:51

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » VBAで選択されているシートのインデックス番号(何枚目か)を取得する

「Windowオブジェクト」の記事一覧

検索


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

.