- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel vbs AppActivate エラー)
Excel VBAのAppActivateエラーを修正する方法
このQ&Aのポイント
- Excel VBAのAppActivate関数を使用する際にエラーが発生しています。特に下のコードで発生しているようです。AppActivate RetValでエラーが発生するので、修正の方法を教えてください。
- 上のコードでは、正常に動作していますが、下のコードではAppActivate RetValでエラーが発生しています。エラーが発生する原因として、Retvalに設定される値が正しくない可能性があります。具体的にはRetValの値を確認し、正しい値が設定されているかどうかを確認してください。また、RetValの値によってはAppActivate関数が機能しない場合がありますので、適切な値が設定されるように修正してください。
- AppActivate関数は、指定したウィンドウをアクティブにするための関数です。RetValに設定される値は、Shell関数の戻り値であり、実行されるプログラムのプロセスIDを表しています。エラーが発生している場合、RetValに正しいプロセスIDが設定されていない可能性がありますので、プロセスIDが正しく設定されるように修正してください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Reader9.0ではエラー出ないんですが、10.0では確かにエラーになりますね。 #Acrobat Instance Window? ただ、Shell関数の引数でvbNormalFocusを指定してますから、 そのままでもReader起動後アクティブになりませんか? つまり 'AppActivate RetVal この行をコメントアウトして実行してみてください。 ダメなら AppActivate sTxt & " - Adobe Reader" ..のようにキャプション指定とか。 それでもダメな場合は FindWindow や SetForegroundWindow などのWin32API関数を使う事になるのかな..と。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
回答No.2
こちら(Windows7 64bit & Excel2010 & adobeReader10.11)では TeraPad_SF でもWait処理を入れないと エラー 5 が発生しました。 で、AdobeReader_SF の方なんですが エラー5が発生。 end-u さんのようにアプリケーションタイトルを指定したら エラーにはなりませんでした。 Appactivate Stxt なぜ、RetValでエラーになるのか・・・というと タスクマネージャで見てみると、AcroRd32.exe *32 が二つ鎮座ましましていました。 もう片方のプロセスIDを返してくれたら・・・と思うのですが この辺はナゾです。
質問者
お礼
nicotinism 様 周囲の状況をお教え頂き大変ありがとうございました。 また広範はご知識をお披露頂きました。 大変に役に立ちました。
お礼
(1)AppActivate RetValの行をコメントとする (2)AppActivate sTxt & " - Adobe Reader"とする の双方で正常に動作しました。 お教え大変にありがとうございました。