Word VBA質問箱 IV

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

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


836 / 886 ←次へ | 前へ→

【53】Re:Wordのウィンドウを整列させる
回答  H. C. Shinopy  - 03/5/22(木) 8:56 -

引用なし
パスワード
   当方の環境では、不具合は再現されず、お役に立てそうにありません。
取り敢えず、下記の通り現在の結論を掲示しておきます。

1.時間待ちについて
「純正Word VBA」とShellアプリケーションの連携で
時間待ちが必要とすれば…
(画面が落ち着きなく動いているのを見ると、確かに言えます。)
WhiteRabbitさんのマクロは的を得ていると思います。

2.恐縮ながら「Windows.Arrange」を再登場させました。
これはショック療法のようなもので
「純正Word VBA」で一旦は上下に並べて表示しておき、
それをShellアプリケーションで左右に表示すればどうかと再考しました。

3.「Application.ScreenUpdating」は、
全く効き目がないようです。
(「途中経過」が画面上に表示されます。)
結果だけをパッと表示するということは、
ウィンドウ操作を伴う処理では全く働かないということのようです。

当件については、私の脳味噌は力尽きております。
ここで言えることは、私の理屈よりもWhiteRabbitさんの経験のほうが
勝るということです。
修羅場を潜り抜けていらっしゃるようですが、
そういう方こそ良き作譜者です。

Sub WinWordArrangeA()
 ' 参照設定 Microsoft Shell Controls And Automation
 '
 Dim myShell As Shell32.Shell
 Dim windowLoop As Window
 Dim myTimer As Single
 '
 Set myShell = CreateObject("Shell.Application")
 myShell.MinimizeAll
 '
 myTimer = Timer + 5
 Do Until myTimer < Timer
  DoEvents
 Loop
 Application.ScreenUpdating = False ' 効果なし
 For Each windowLoop In Windows
  With windowLoop
   .Activate
   .WindowState = wdWindowStateMaximize
  End With
 Next windowLoop
 Windows.Arrange ' (?!)
 Application.ScreenUpdating = True ' 効果なし
 '
 myTimer = Timer + 5
 Do Until myTimer < Timer
  DoEvents
 Loop
 myShell.TileVertically ' 左右に並べて表示
 '
 Set myShell = Nothing
End Sub
1,900 hits

【41】Wordのウィンドウを整列させる WhiteRabbit 03/5/19(月) 12:06 質問
【44】Re:Wordのウィンドウを整列させる H. C. Shinopy 03/5/20(火) 9:29 回答
【46】Re:Wordのウィンドウを整列させる WhiteRabbit 03/5/20(火) 14:00 質問
【47】Re:Wordのウィンドウを整列させる H. C. Shinopy 03/5/20(火) 16:47 回答
【52】Re:Wordのウィンドウを整列させる WhiteRabbit 03/5/21(水) 12:38 質問
【53】Re:Wordのウィンドウを整列させる H. C. Shinopy 03/5/22(木) 8:56 回答
【54】Re:Wordのウィンドウを整列させる 追加情報 H. C. Shinopy 03/5/23(金) 21:18 回答
【56】Re:Wordのウィンドウを整列させる 追加情報 WhiteRabbit 03/5/24(土) 19:21 お礼

836 / 886 ←次へ | 前へ→
ページ:  ┃  記事番号:
207138
(SS)C-BOARD v3.8 is Free