Sub TeraPad_SF()
'Keyboard Shortcut: Ctrl+Shift+Q
Dim RetVal As Integer
Dim sA As String
Dim sP As String
Dim sV As String
Dim sTxt As String
sV = ActiveCell.Value
sTxt = Left(sV, 1) & ".txt"
'開くファイル名
sA = "D:\WebCamRegistor\txtFolder\" & sTxt
'実行するプログラムのパス
sP = "C:\Program Files\TeraPad\TeraPad.exe "
RetVal = Shell(sP & sA, 1)
If RetVal = 0 Then MsgBox "起動に失敗しました"
AppActivate RetVal
SendKeys "%SF" & sV, True
End Sub
'現在セルの値でAdobeReaderでxx.pdfを検索する
Sub AdobeReader_SF()
'Keyboard Shortcut: Ctrl+Shift+Q
Dim RetVal
Dim sA As String
Dim sP As String
Dim sV As String
Dim sTxt As String
sV = ActiveCell.Value
sTxt = Left(sV, 1) & ".pdf"
'開くファイル名
sA = "D:\WebCamRegistor\pdfFolder\" & sTxt
'実行するプログラムのパス
sP = "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe "
RetVal = Shell(sP & sA, 1)
If RetVal = 0 Then MsgBox "起動に失敗しました"
Application.Wait Now + TimeSerial(0, 0, 2)
AppActivate RetVal
SendKeys "^F", True
End Sub
Excel VBA で上は正常に動作しますが、下はAppActivate RetValでエラーとなります。修正の方法をお教えください。
No.1ベストアンサー
- 回答日時:
Reader9.0ではエラー出ないんですが、10.0では確かにエラーになりますね。
#Acrobat Instance Window?
ただ、Shell関数の引数でvbNormalFocusを指定してますから、
そのままでもReader起動後アクティブになりませんか?
つまり
'AppActivate RetVal
この行をコメントアウトして実行してみてください。
ダメなら
AppActivate sTxt & " - Adobe Reader"
..のようにキャプション指定とか。
それでもダメな場合は FindWindow や SetForegroundWindow などのWin32API関数を使う事になるのかな..と。
(1)AppActivate RetValの行をコメントとする
(2)AppActivate sTxt & " - Adobe Reader"とする
の双方で正常に動作しました。
お教え大変にありがとうございました。
No.2
- 回答日時:
こちら(Windows7 64bit & Excel2010 & adobeReader10.11)では
TeraPad_SF でもWait処理を入れないと エラー 5 が発生しました。
で、AdobeReader_SF の方なんですが エラー5が発生。
end-u さんのようにアプリケーションタイトルを指定したら
エラーにはなりませんでした。
Appactivate Stxt
なぜ、RetValでエラーになるのか・・・というと
タスクマネージャで見てみると、AcroRd32.exe *32 が二つ鎮座ましましていました。
もう片方のプロセスIDを返してくれたら・・・と思うのですが
この辺はナゾです。
nicotinism 様
周囲の状況をお教え頂き大変ありがとうございました。
また広範はご知識をお披露頂きました。
大変に役に立ちました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
実行時エラー 438 の解決策をお...
-
お助けください!VBAのファイル...
-
【VB.NET】 パワポ操作を非表示で
-
バッチファイルで、あるスクリ...
-
文字列内で括弧を使うには
-
インポート時のエラー「データ...
-
String""から型'Double'への変...
-
ApplicationとWorksheetFunctio...
-
VB.NETでMessageBoxが表示され...
-
VBAでのファイル読込エラー...
-
エクセルVBA 「On Error GoTo...
-
実行時エラー'-2147467259(8000...
-
実行したSQLの結果を返す方法
-
error C2664: 'LPCTSTR' に変換...
-
バッチファイルからVBA実行でエ...
-
VBAで時間(00:00形式)を積算...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
VBA データ(特定値)のある最...
-
実行時エラー 438 の解決策をお...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
エクセルVBA 「On Error GoTo...
-
【VBA】ワークブックを開く時に...
-
マクロの「SaveAs」でエラーが...
-
ACCESSで値を代入できないとは?
-
実行時エラー'-2147467259(8000...
-
インポート時のエラー「データ...
-
【VB.NET】 パワポ操作を非表示で
-
Filter関数を用いた結果、何も...
-
UBoundに配列がありませんとエ...
-
Excel vbaについての質問
-
メールの件名のセットでエラー...
おすすめ情報