Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6126 / 13645 ツリー ←次へ | 前へ→

【46976】画面のちらつきが抑えられない べりー 07/2/23(金) 22:22 質問[未読]
【46980】Re:画面のちらつきが抑えられない りん 07/2/24(土) 11:13 発言[未読]
【47063】Re:画面のちらつきが抑えられない べりー 07/2/27(火) 21:17 お礼[未読]

【46976】画面のちらつきが抑えられない
質問  べりー  - 07/2/23(金) 22:22 -

引用なし
パスワード
   Application.ScreenUpdating = False
と書いているにもかかわらず画面のちらつき
(データ書き込みやシート挿入)
が全て表示されてしまい困っています。

具体的に以下のような操作を行っています。
1ファイルの中に、複数のシート(それぞれにデータが存在)があります。
それらのシートに対し、
分析ツール(回帰分析)をマクロで走らせ、
さらに別のシートに結果を貼り付けるのですが、
この回帰分析を走らせたあたりから、
ちらつきが始まります。

ちらつきを抑える方法があれば教えていただけないでしょうか?
よろしくお願いいたします。

【46980】Re:画面のちらつきが抑えられない
発言  りん E-MAIL  - 07/2/24(土) 11:13 -

引用なし
パスワード
   べりー さん、こんにちわ。

>分析ツール(回帰分析)をマクロで走らせ、
>さらに別のシートに結果を貼り付けるのですが、
>この回帰分析を走らせたあたりから、
>ちらつきが始まります。
中身を確認したわけではないですが、分析ツールの回帰分析のマクロにScreenUpdating=False/Trueが入っているのでしょう。

>ちらつきを抑える方法があれば教えていただけないでしょうか?
>よろしくお願いいたします。
試してみましたが完全に更新をとめる事はできないので、ApplicationのVisibleプロパティをFalse/Trueで切り替えて、完全に見えなくするとか。
Sub Macro1()
  Application.Visible = False
  Dim rx As Range, ry As Range, r2 As Range
  Set ry = ActiveSheet.Range("A1:A10") 'DATA-Y
  Set rx = ActiveSheet.Range("B1:B10") 'DATA-X
  '5回連続で作ってみる
  For II = 1 To 5
   Application.Run "ATPVBAEN.XLA!Regress", ry, rx, _
     False, False, , , False, False, False, False, , False
   Application.ActiveWorkbook.Saved = True
  Next
  Application.Visible = True
End Sub

↑では、ScreenUpdating=F/Tをしなくても新しいブックが追加されていくのが見えるだけなので、画面がチラチラするということは、シート切り替えやデータ範囲のセットにActivateやSelectを使ってるのではないかという気がするのですが。

【47063】Re:画面のちらつきが抑えられない
お礼  べりー  - 07/2/27(火) 21:17 -

引用なし
パスワード
   りんさん、ご回答ありがとうございます!

>中身を確認したわけではないですが、分析ツールの回帰分析のマクロにScreenUpdating=False/Trueが入っているのでしょう。

なるほど!
ScreenUpdating=Falseを回帰分析の直後にいれるだけでも
満足できるレベルにちらつきがおさまりました。
ご紹介の方法も試させていただきました。
ありがとうございます!

そして、

>画面がチラチラするということは、シート切り替えやデータ範囲のセットにActivateやSelectを使ってるのではないかという気がするのですが。

確かに多用しておりました。なるべく減らすように書き換えてみます。
大変ありがとうございました。

6126 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free