- ベストアンサー
アプリからVB(Form)の初心者向けコードについて
- アプリからVB(Form)の初心者向けコードについての質問です。
- Form1が開いている状態で、Form1のcommand1ボタンを押すとForm1が最小化され、WORDが起動しファイルが開きます。その後、WORDが終了するとForm1が再び開かれるような処理のコードにて問題が発生しています。
- 5番と6番の処理で詰まっており、解決方法を教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
手元にVB環境があれば試してあげたいけど、無いから正常に動くかどうかは未確認ですが・・・スペルミスもあるかも^^; 5.本来なら起動したWordのタスクIDを監視して終了判断すべきですけど、 簡単に実現するならばwdApp.Visibleの状態を監視すれば可能です。 6.WindowStateをノーマルに戻せばいいのでは? 【コード】 ----------------------------------------------- 'Win32 API(グローバルエリアに定義しましょう) Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) ----------------------------------------------- Private Sub Command1_Click(Index As Integer) Dim wdApp As Object Dim ThisPos As Long WindowState = vbMinimized '☆---Add start 'もし画面が最小化にならないならこの一文を入れてください 'DoEvents '☆---Add start Set wdApp = CreateObjec("Word.Application") wdApp.Visible = True Set wddocuments = wdApp.Documents.Open("C:\test.doc") ThisPos = Application.WindowState 'アプリの画面表示を変更する If ThisPos = wdWindowStateNormal Then wdApp.WindowState = wdWindowStateMaximize Else wdApp.WindowState = wdWindowStateMaximize End If '☆---Add start 'Wordの終了を監視 Do Until (wdApp.Visible = False) Sleep 500 Loop '画面状態を戻す WindowState = vbNormal '☆---Add e n d Set wdApp = Nothing End Sub
お礼
siddhaartha様 有難うございます。 Do 条件 で良かったのですね。 助かりました。