「エクセル 非表示 行 一括削除 マクロ」
という検索が行われていました。
非表示の行をまとめて削除する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 i
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 » ExcelVBA Rangeオブジェクト » SpecialCellsメソッド » 非表示行をまとめて削除するExcelマクロ
TrackBack:2
- TrackBack URL
- 行の表示・非表示を切り替えるマクロ from インストラクターのネタ帳
- 対象:Excel2003, Excel2007, Excel2010 「excelで行の表示をon offにするvba」 という検索が行われていました。...
- For~Nextループを逆順に後ろから前に回す from インストラクターのネタ帳
- VBA(Visual Basic for Applications)で、For~Nextループを逆順に(後ろから前に)回すには「For i = a to ...