Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » Excel VBAのFor Each~Nextループで何枚目のシートかを調べるには

Excel VBAのFor Each~Nextループで何枚目のシートかを調べるには

対象:Excel2007, Excel2010, Excel2013

「vba シート for each in 何枚目」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

すべてのシートに対して処理を行うときに便利なFor Each~Nextループで、何枚目のシートなのかを調べるVBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

何枚目のシートかを調べるサンプルマクロ

参考になりそうな簡単なマクロをご紹介しておきます。

Sub ForEachNextループで何枚目のシートなのかを調べる()

 Dim ws As Worksheet

 For Each ws In Worksheets
  MsgBox ws.Index & "枚目" & vbCrLf & ws.Name
 Next ws

End Sub

上記のマクロを実行すると、下図のように、何枚目なのかとシートの名前が、メッセージボックスがワークシートの枚数だけ表示されます。

Excel VBAのFor Each~Nextループで何枚目のシートかを調べるには

何個目かを表すIndexプロパティを持っているオブジェクトが結構ある

上記のコードの「ws.Index」が、WorksheetオブジェクトのIndexプロパティで何枚目かを取得している部分です。

Excel VBAのFor Each~Nextループで何枚目のシートかを調べるには

今回は、WorksheetオブジェクトのIndexプロパティを使って、何枚目のワークシートかを調べたわけですが、Indexプロパティを持つオブジェクトは、割と存在しています。

オブジェクトブラウザーで「Index」を完全一致で検索すると、以下のとおりです。

Excel VBAのFor Each~Nextループで何枚目のシートかを調べるには

何らかのコレクションのメンバーである単一オブジェクトの場合に、必ずIndexプロパティがあるとは言い切れませんが、上図のとおりIndexプロパティを持つオブジェクトは結構存在しています。今回ご紹介したマクロのように、何個目なのか・いくつ目なのかを調べたいというときに、そのオブジェクトにIndexプロパティが存在しないかを、まずは調べてみることをおすすめします。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » Excel VBAのFor Each~Nextループで何枚目のシートかを調べるには

「Sheets・Worksheet」の記事一覧

検索


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

.