対象:Excel2003, Excel2007, Excel2010
「エクセル 非表示 行 一括削除 マクロ」
という検索が行われていました。
非表示の行をまとめて削除するExcelマクロを探している方による検索です。
[スポンサードリンク]
非表示の行を一括削除するサンプルマクロ
VBA(Visuala Basic for Applications)で、以下のようなマクロを作成してみました。
Sub 非表示行をまとめて削除する()
Dim i As Long
For i = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If Rows(i).Hidden Then Rows(i).Delete
Next
End Sub
Dim i As Long
For i = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If Rows(i).Hidden Then Rows(i).Delete
Next
End Sub
サンプルマクロの解説
いろいろな実装方法が考えられそうですが、ループ文の中でHiddenプロパティを調べて、非表示なら削除するというマクロにしてみました。
どの範囲をループで回すかですが、
Cells.SpecialCells(xlCellTypeLastCell).Row
でセル範囲の最終行を取得しています。
RangeオブジェクトのSpecialCellsメソッドの引数に、定数xlCellTypeLastCellを指定することで、最後のセルを表すRangeオブジェクトを取得して、そのRowプロパティで、そのセルの行番号を取得しています。
取得できた最終行から1行目に向かって、下から上へループを回して
For i = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
もし非表示なら削除をしています。
If Rows(i).Hidden Then Rows(i).Delete
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » 非表示行をまとめて削除するExcelマクロ