堺東のエステ サロン はインナーサーフェス.
堺東の筋膜リリースによる リラクゼーション マッサージサロン
非表示になっているセルの値をクリアするコードです。
一般的には、Forループ処理にて
対象が非表示の場合、都度 " ClearContents " させるケースが多いと思うのですが
数万件を超える処理をさせると
時間がかかりフリーズするケースもあるため
まず、非表示セルを1つずつ記憶していき
最終的に " ClearContents "するようにしています。
実際の使用例イメージにつきましては
下記ダウンロードいただければと思います。
※プログラムを動作する際には
念のため、別途起動されているアプリケーション終了し
必要に応じて、バックアップを取得した後にお試しください。
ご利用のシステム環境によっては、作動しない場合がございます。
【動作環境:Windows10 & Office365】
Option Explicit
Sub Clear_Hidden_Cells() 'A5セル以降、非表示セルの値と数式をクリア
If Worksheets("top").FilterMode = False Then
MsgBox "フィルターで絞り込まれていません。"
End
End If
Dim i As Long
Dim r As Range
Dim tg As Range
Dim maxrow As Long '最終行
maxrow = Worksheets("top").UsedRange.Rows(Worksheets("top").UsedRange.Rows.Count).Row
For i = 5 To maxrow '5行目スタート
Set r = Worksheets("top").Range("A" & i) '対象のシートとセル
If Rows(i).Hidden Then '対象行が非表示の場合
If tg Is Nothing Then
Set tg = r
Else
Set tg = Union(tg, r) '複数セル
End If
End If
Next
If Not tg Is Nothing Then
tg.ClearContents '対象セルが存在した場合、値と数式をクリア
End If
If Worksheets("top").FilterMode Then Worksheets("top").ShowAllData
Range("A4").Select
MsgBox "終了"
End Sub