本文へスキップ

別館:エクセルQC館 別館:エクセル株式館

  1. トップページ>
  2. Tips>
  3. Office365、Excel:VBAで画面更新がチラツク時の対策

Tipstips

備忘録として、主にパソコン関係の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で画面更新がチラツク時の対策は終了です。



contents

エクセル将棋館

日本国

地方都市


スポンサード リンク