動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2205 ビルド15225.20204 Microsoft Store)
「excel vba 非表示行 調べる」
といった検索キーワードで時折アクセスがあります。
Excelのワークシート上で非表示に設定されている行があるときに、何行目が非表示になっているのかをVBAで調べるには、どのようなコードを書けばいいのかを探していらしたのでしょうか。
[スポンサードリンク]
非表示の行番号を調べるサンプルマクロ
以下のExcelマクロを実行すると、アクティブシートで非表示になっている行の行番号がイミディエイトウィンドウに出力されます。
Sub 非表示の行番号を調べる()
Dim ws As Worksheet
Set ws = ActiveSheet
For i = 1 To last_row_num
If Rows(i).Hidden Then
Debug.Print i
End If
Next
End Sub
Dim ws As Worksheet
Set ws = ActiveSheet
Dim last_row_num As Long
With ws.UsedRange
last_row_num = .Item(.Count).Row
End With
For i = 1 To last_row_num
If Rows(i).Hidden Then
Debug.Print i
End If
Next
End Sub
サンプルマクロで行っている処理
Excel VBAでは行全体を表すRangeオブジェクトのHiddenプロパティで、行が非表示かどうかを判定できます。
行が非表示のときに、その行番号を出力しているのが、最後のほうの
Dim i As Long For i = 1 To last_row_num If Rows(i).Hidden Then Debug.Print i
の部分です。
1からExcelの最大行1,408,576までFor~Nextループで処理するのはムダなので、Worksheet.UserRangeプロパティで取得できるRangeオブジェクトの最終行までにしています。
Dim last_row_num As Long With ws.UsedRange last_row_num = .Item(.Count).Row End With
最終更新日時:2022-07-08 14:51
[スポンサードリンク]
- Newer:プレゼンテーション名でPresentationを取得する
- Older:ISBLANK関数の逆は?
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 非表示の行番号をVBAで調べる