Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
RE.「画面更新がされてしまう」の「サイタマ」さんへ
投稿日時: 23/12/26 21:24:16
投稿者: WinArrow

https://www.moug.net/faq/viewtopic.php?t=82585
には、Excelのバージョンが明記されていませんが、
Ecel2013以降を前提として、原因を紹介します。
 
原因は。
Workbook.Open の前には、
ScreeenUpdating = True
を実行する必要がある
 
これで、解決策もお分かりでしょう。
 
2〜3日後に閉じます。
 

回答
投稿日時: 23/12/27 10:18:13
投稿者: simple

ご指摘の意図がわかりかねています。
もう少し詳しくお願いします。
以下のように、一応意図通りに動くのではないかと思うのですが、いかがでしょうか。

Sub test()
    Dim wb As Workbook
    Application.ScreenUpdating = False          ' 作業中は画面更新を抑止
    Set wb = Workbooks.Open("D:\xxx\yyy.xlsm")  ' pathは単なる例です
    Debug.Print Application.ScreenUpdating      ' 確認のため。Falseが返ります
    wb.Worksheets(1).Select                     ' 仮にこうしたとして。
    Debug.Print Application.ScreenUpdating      ' 同じく、Falseが返ります
End Sub

(画面更新抑止の意味が乏しい例ですが、
 隠すべき処理の記載を省略している極端な例とご理解下さい。)

投稿日時: 23/12/27 17:06:24
投稿者: WinArrow

私、何か勘違いしていたようです。
  
元のコードを再度読み直してみたのですが、
ScreenUpdating のTrue/Falseの繰り返しが頻繁にあること。
で、コードを読んだだけでは、挙動の検証が難しいです。
途中の「Tre」時点で、画面が更新されたと考えられます。
少なくとも、Save するために、対象ブックをアクティブにする必要はないと思っていましたが、
なぜか、Activate Select の話だけで終ってしまい、残念です。
 

回答
投稿日時: 23/12/27 17:13:00
投稿者: simple

ああそうでしたか了解です。
たしかに中途で終わってしまって残念な感じがしました。

投稿日時: 23/12/29 14:53:41
投稿者: WinArrow

サイタマさんへ
 
スレを中途半端な状態で終わらせたことはともかくとして、
問題は解決したのでしょうか?
 
若し、試行錯誤進行形ならば、それまでの検討状況も添えて、新しいスレを投稿してみてください。
内容から、Excel2010以前のバージョンで作成したものと推察します。
目に見えない非互換などもそんざいするので、注意が必要です。
 
 
新規スレ投稿時は、
OS、Excelのバージョンは、忘れないようにしましょう。
 
このスレは閉じます。