備忘録として、主にパソコン関係のTipsを記載して行きます。
新着情報 |
@UiPath、メモ
AOffice365、Excel:VBAで画面更新がチラツク時の対策
BOffice365、Excel:勝手に手動計算になる原因
COffice365、Excel:フィルターで3つ以上の条件にする方法
DOffice365、Excel:シート同士の違いを見つける方法 |
Office365、Excel:VBAで画面更新がチラツク時の対策
Office365は、表計算ソフト、ワープロソフト、プレゼンテーションソフト、データベースソフト等が
入っているオフィスソフトです。これをインストールして置けば、家庭や仕事で多くの事が出来る様になります。
しかし、ExcelVBAでで画面更新がチラツク現象が発生しました。
使用したパソコンは、下記のソフトを使用していました。
OS : Windows10(64bit)バージョン22H2(OSビルド 19045.3086)
オフィスソフト : Excel for Microsoft 365 MSO(16.0.16501.20074)
64bit
以下、Office365、Excel:VBAで画面更新がチラツク時の対策を記載して行きます。
(項目1)
・ExcelVBAでで画面更新がチラツク現象が発生しました。
・VBAコードの以下の通りでした。
・@画面更新OFF、A画面更新ONの制御をかけています。
Sub data_kousin()
Dim i As Long
Rows("17:454").Select
Selection.EntireRow.Hidden = False
Application.ScreenUpdating = False '画面更新OFF ← @
For i = 18 To 453
Application.StatusBar = "進行状況: " & i & "/" & 453
If Range("AB" & i) = Range("AB3") Or Range("AB" & i) = Range("AB4") Or
Range("AB" & i) =Range("AB5") Or Range("AB" & i) = Range("AB6") Or
Range("AB" & i) = Range("AB7") Then
Rows(i & ":" & i).EntireRow.Hidden = False '行を表示
Else
Rows(i & ":" & i).EntireRow.Hidden = True '行を非表示
End If
Next i
Application.ScreenUpdating = True '画面更新ON ← A
Application.StatusBar = False
Range("AD6").Select
End Sub
(項目2)
・種々検討した所、画面更新の制御を最初と最後で行うとチラツクは無くなりました。
・VBAコードの以下の通りです。
・B画面更新OFF、C画面更新ONの制御をかけています。
Sub data_kousin2()
Dim i As Long
Application.ScreenUpdating = False '画面更新OFF ← B
Rows("17:454").Select
Selection.EntireRow.Hidden = False '全行を再表示
'条件に該当しない行は非表示
For i = 18 To 453
Application.StatusBar = "進行状況: " & i & "/" & 453
If Range("AB" & i) = Range("AB3") Or Range("AB" & i) = Range("AB4") Or
Range("AB" & i) = Range("AB5") Or Range("AB" & i) = Range("AB6") Or
Range("AB" & i) = Range("AB7") Then
Rows(i & ":" & i).EntireRow.Hidden = False '行を表示
Else
Rows(i & ":" & i).EntireRow.Hidden = True '行を非表示
End If
Next i
Application.StatusBar = False
Range("AD6").Select
Application.ScreenUpdating = True '画面更新ON ← C
End Sub
(項目3)
・以上で、Office365、Excel:VBAで画面更新がチラツク時の対策は終了です。