none
EXCEL2016で画面が更新されない件 RRS feed

  • 質問

  • EXCEL2013では、下記のコードでの画面が更新できるのですが、EXCEL2016では、更新できません

    Sub 力の法則()
        Worksheets(2).ChartObjects(1).Activate
        ActiveChart.SeriesCollection(1).Select
        For i = 1 To 20
        Range("c7").Value = i * 1
        ts = Timer + 1
        Do Until ts < Timer
        Loop
        Application.ScreenUpdating = True
        Next
    End Sub

    EXCEL2016のバージョンは、1806(ビルド10228_20080)で、ウィンドウ10のバージョンは1709(16299.522)です

    何か、解決策はあるのでしょうか?

    よろしくお願いします

    2018年7月2日 3:12

回答

  • ループで止まっている間にDoEventsいれてみる?

    Sub 力の法則()
        Dim ts As Date
        ts = Now
    
        For i = 1 To 20
            Range("c7").Value = i * 1
            ts = DateAdd("s", 1, ts)
            Do Until ts <= Now
                DoEvents
            Loop
            Application.ScreenUpdating = True
        Next
    End Sub
    

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク yaabamas 2019年11月19日 5:33
    2018年7月2日 3:56

すべての返信

  • ループで止まっている間にDoEventsいれてみる?

    Sub 力の法則()
        Dim ts As Date
        ts = Now
    
        For i = 1 To 20
            Range("c7").Value = i * 1
            ts = DateAdd("s", 1, ts)
            Do Until ts <= Now
                DoEvents
            Loop
            Application.ScreenUpdating = True
        Next
    End Sub
    

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク yaabamas 2019年11月19日 5:33
    2018年7月2日 3:56
  • Application.ScreenUpdating = False   ’ これを追加

    Application.ScreenUpdating = True

    ってやったらどうでしょうか?

    2018年7月3日 1:07
  • 返信が遅れて、申し訳ありません

    たしかに「DoEvents」を入れると、画面更新できました

    ありがとうございました

    2019年11月19日 5:34
  • ご連絡、ありがとうございます。

    ただ、Application.ScreenUpdating = Falseを入れても、変化がありませんでした

    2019年11月19日 5:38