|
▼初心者さっち さん:
>▼kanabun さん:
>
>もう少しお付き合いください。
>
>>全ての行を検索し、非表示行なら削除」
>>Sub Try1()
>> Dim c As Range, rr As Range
'Rangeオブジェクト型の変数を宣言 (cは 行ループ用、rr は削除行の集合)
'◆変数rr は 非表示行を格納するコンテナのようなものです。
>
>> For Each c In ActiveSheet.UsedRange.Rows
> '要素変数c,アクティブなシートの選択行?
→ 上から順に1行ずつチェックしていく (c : ループカウンタ変数)
>
>> If c.Hidden Then
> 'cが非表示なら・・
> 'この行c が 非表示行だったら、コンテナrr にこの行を容れます
'◆そのとき、コンテナrrが 空っぽのときと すでに行オブジェクトが
収納されているときとで、処理を分岐します
↓
>> If rr Is Nothing Then
> '変数rr に何も代入されていないとき、 _
つまり、はじめて非表示行が見つかったときは _
↓ 削除行用の変数 rr に 最初の非表示行を 放り込みます
>> Set rr = c
>> Else
'削除行の集合rr にすでに1つ以上 非表示行が格納されていたら、
それまでの非表示行の集合に この行 c を追加します。
>> Set rr = Union(rr, c)
> '
>> End If
>> End If
>> Next
>> If Not rr Is Nothing Then
> ’
>> rr.Delete
> '非表示行を全部削除する。
>> End If
>>End Sub
|
|