Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » 非表示行をまとめて削除するExcelマクロ

非表示行をまとめて削除するExcelマクロ

対象: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

サンプルマクロの解説

いろいろな実装方法が考えられそうですが、ループ文の中で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マクロ

「SpecialCellsメソッド」の記事一覧

検索


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

.