Application.ScreenUpdating = False ’ディスプレイ出力抑止
Application.Calculation = xlCalculationManual ’関数自動計算抑止
Application.ScreenUpdating = True ’ディスプレイ出力再開
Application.Calculation = xlCalculationAutomatic ’関数自動計算再開
Application.DisplayAlerts = False ’オペレータへの警告抑止
’ここに ”ブック名”.close などのメソッドなどを使用する
Application.DisplayAlerts = True ’オペレータへの警告再開
‘オートフィルターの設定
If ActiveSheet.AutoFilterMode Then
Else
Rows(“1:1”).Select
Selection.AutoFilter
End If
‘オートフィルターの削除
If ActiveSheet.AutoFilterMode Then
Rows(“1:1”).Select
Selection.AutoFilter
Else
End If
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData ’フィルターの選択解除
Application.StatusBar = ”xxxxx” ‘画面左下に表示
下記は事例
実例
Sub Show完了率()
‘ 処理を高速化するための設定
Application.ScreenUpdating = False
Dim i As Long
Dim TotalRows As Long
Dim Percentage As String
TotalRows = 1000 ‘ 処理対象の行数
‘ ステータスバーに初期メッセージを表示
Application.StatusBar = “処理を開始します…”
‘ — メイン処理のループ —
For i = 1 To TotalRows
‘ セルに値を書き込む処理(時間がかかる処理を想定)
Cells(i, 1).Value = “データ-” & i
‘ ‘ —————————————————-
‘ 【重要】ステータスバーを更新する処理
‘ 処理の進捗率を計算し、文字列として整形
Percentage = Format(i / TotalRows, “0%”)
‘ ステータスバーに進捗メッセージを更新して表示
Application.StatusBar = “データを処理中… 完了率: ” & Percentage
‘ —————————————————-
Next i
‘ 処理が完了したら、カスタムメッセージをクリアする
Application.StatusBar = False ‘ または Application.StatusBar = “処理が完了しました!”
Application.ScreenUpdating = True
MsgBox “全データの処理が完了しました。”, vbInformation
End Su