この記事では、非表示の行を特定する方法についてご説明します。
【動画】非表示の行を特定する実際の動き
本題に入る前に、まずは次の動画をご覧ください。
マクロを実行すると非表示の行位置を特定し、(表示用に設置した)listboxに出力しています。
Excelファイルの例
今回は以下のExcelファイルを用意しました。
15行目から25行目、25行目から30行目、35行目から38行目が非表示に設定されています。
この非表示にされている行を表示するためにListboxを設置しました。
マクロを実行すると、この非表示にされている行がListboxに表示されます。
マクロ作成の流れ
もし非表示の行が特定できた場合、その表示の行位置をListboxに表示させています。
コードの例
Sub test() Dim ws As Worksheet 'ワークシート変数 Dim rRng As Range 'Rangeオブジェクト格納用変数 'シート名を取得する Set ws = Worksheets("top") 'Listboxをクリアする ListBox1.Clear '使用されているセルの範囲内の行数分だけ処理を繰り返すFor文 For Each rRng In ws.UsedRange.Rows If rRng.Hidden Then '非表示の行の場合 'ListBoxに非表示の行位置を出力する ListBox1.AddItem rRng.row End If Next rRng End Sub
注目すべきコード①
最初に見て頂きたいのは13行目です。
'使用されているセルの範囲内の行数分だけ処理を繰り返すFor文 For Each rRng In ws.UsedRange.Rows
コードの説明
以上のコードは、使用されているセルの範囲内の行数分だけ処理を繰り返すFor文です。
非表示の最初のセルから非表示の最後のセルまでこのFor文内の処理を繰り返します。
注目すべきコード②
次に見て頂きたいのは15行目から22行目です。
If rRng.Hidden Then '非表示の行の場合 'ListBoxに非表示の行位置を出力する ListBox1.AddItem rRng.row End If
コードの説明
以上のコードは、行が非表示の行なのか判定し、非表示の行の場合はListboxに行位置を設定するコードです。
コードの詳細
15行目でHiddenプロパティの値がTrueかどうか判定し、Trueの場合は20行目ではListboxに行位置を設定しています。
動作確認
最後に
この記事では、非表示の行を特定する方法についてご説明しました。
非表示の行を特定したいときには本記事を参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。