Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 非表示の行番号をVBAで調べる

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

「excel vba 非表示行 調べる」
といった検索キーワードで時折アクセスがあります。

Excelのワークシート上で非表示に設定されている行があるときに、何行目が非表示になっているのかをVBAで調べるには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

[スポンサードリンク]

非表示の行番号を調べるサンプルマクロ

以下のExcelマクロを実行すると、アクティブシートで非表示になっている行の行番号がイミディエイトウィンドウに出力されます。

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

 Dim i As Long
 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

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 非表示の行番号をVBAで調べる

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 非表示の行番号をVBAで調べる

「行・列を表すRange」の記事一覧

検索


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

.