「sheets.count 合わない」
「sheets.countプロパティ 違う」
といった検索キーワードで時折アクセスがあることに気づきました。
以下のコードで表示されるシートの枚数と、
MsgBox Sheets.Count
目で見て確認できるシートの枚数が違う・合わない状態になる原因を調べていた方による検索でしょう。
シートの表示状態を確認するサンプルマクロ
まず確認していただきたいのは、シートの表示状態です。
非表示になっているシートがあれば、目視確認できるシート数と、Sheets.Countの戻り値は一致しなくなります。
目視確認できるシートの枚数と、Sheets.Countプロパティの戻り値が異なるブックをアクティブにして以下のマクロを実行してください。
Dim i As Long
For i = 1 To Sheets.Count
Debug.Print _
Sheets(i).Name & vbTab & _
Sheets(i).Visible
Next
End Sub
上記のマクロを実行すると、イミディエイトウィンドウに以下のような出力が行われます。
Sheet1 -1 Sheet2 -1 Sheet3 0 Sheet4 2
上記の結果は、合計4枚のシートが存在するけれど2枚しか表示されていないブックがアクティブな状態で実行したものです。
「Sheet1」「Sheet2」などがシート名で、その右に出力されている「-1」「0」「2」がシート表示状態を表す数値です。
-1が表示されていることを表し、0が非表示です。
厄介なのが2です。
2も非表示ですが、Excelを操作して再表示することのできない非表示状態です。
定数xlSheetVeryHiddenの直値です。
目視確認できるシート数とSheets.Countの値が合わないときに、非表示シートの存在は比較的気づきやすいのですが、xlSheetVeryHiddenはExcel操作では表示できないため、上記のようなコードを実行して調査する必要があります。
- Newer:Excelで円表示を消すには
- Older:VBAで、もし空白ならばA1セルを、空白でないならB1セルを
Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » Sheets.Countプロパティの値がシート枚数と合わない?