No.1
- 回答日時:
対象は、Acrobat Reader DC (試験したのは、Ver.2017.012.20098)
これで試してみてください。
ただ、「エクセルを開いた時にpdfを自動的に起動させます。」のような同時に動かすことは、あまり賛成いたしかねます。以下は、Sleepにより、多少の時間差は加わっていますが、どちらかが、失敗する可能性があります。
'//標準モジュール推奨
'Option Explicit
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Private Const BM_CLICK As Long = &HF5
Private Const WM_ACTIVATE As Long = &H6
Private Const WM_SETTEXT As Long = &HC
Private Const PSW As String = "xyz" 'パスワード
Sub PDFOpenPSW()
Dim objFOS As Object
Dim WshShell As Object
Dim fn As Variant
Dim cnt As Long
Dim hWnd As Long
Dim hWnd_c As Long
Dim hWnd_ebx As Long
Dim hWnd_btn As Long
Set WshShell = CreateObject("Wscript.Shell")
fn = ActiveCell.Value 'アクティブセルにファイル名がある。
If fn Like "*.pdf" Then
If Dir(fn) = "" Then
MsgBox "ファイルがありません。", vbExclamation
Exit Sub
End If
End If
WshShell.Run fn, 1
Do Until hWnd_ebx <> 0 Or cnt > 100
hWnd = FindWindow("#32770", "パスワード")
hWnd_c = FindWindowEx(hWnd, 0&, "GroupBox", vbNullString)
hWnd_btn = FindWindowEx(hWnd_c, 0, "Button", "OK")
hWnd_ebx = FindWindowEx(hWnd_c, 0, "RICHEDIT50W", vbNullChar)
Sleep 100
DoEvents
cnt = cnt + 1
Loop
If hWnd <> 0 Then
If hWnd_ebx = 0 Then MsgBox ("EditBoxが、取得できませんでした。"), vbCritical: Exit Sub
If hWnd_btn = 0 Then MsgBox ("Buttonが、取得できませんでした。"), vbCritical: Exit Sub
Call SendMessage(hWnd_ebx, WM_SETTEXT, 0&, PSW)
Call SendMessage(hWnd_btn, BM_CLICK, 0, 0&)
End If
End Sub
No.2ベストアンサー
- 回答日時:
'#1のコードは、32bit 版でした。
'64bit では、Win API は以下のように変わります。
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPtr
Private Declare PtrSafe Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript で外部サイトにデータ入力させて自動でボタンを押すことは可能ですか? 1 2023/01/30 16:23
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- PDF エクセルのVBAでファイルをpdfで保存するとソフトによっては開けなくなる 3 2022/06/08 10:20
- PDF アクロバットリーダーはインストールしてます。 IPHONE、メールに添付されているパスワードが設定さ 2 2023/04/10 13:13
- PDF PDF ファイルのパスワードの外し方 6 2023/03/29 11:37
- PDF パワポをPDFにしてパスワードをかける方法 5 2022/04/15 16:14
- Visual Basic(VBA) エクセルVBA エクセルを開いた後に編集可能な状態にするには? 2 2023/06/14 11:58
- Dropbox スマホのドロップボックスにあるpdfファイルの起動 2 2022/06/18 09:09
- 囲碁・将棋 囲碁 KGS の cgoban ログインパスワードを忘れた対策 1 2023/04/10 08:20
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールをパスワードつきで送る方法
-
Excelのセルにユーザー名...
-
YouTubeが毎回ログインしないと...
-
大学定期試験過去問サイト「過...
-
メールを返信したら、英語のメ...
-
LINE TCBというところからLINE...
-
メールのマナー編
-
インスタの捨て垢で友達のスト...
-
メールアドレスで上付きのハイフン
-
エクセルで複数ファイルに同一...
-
「@」(アットマーク)の無いメ...
-
メールアドレス 上バーの入力...
-
CSVファイルを添付するときにパ...
-
URLとメールアドレス
-
メールエラー
-
メールアドレスから個人を特定...
-
高一男子です 僕が絶対に悪いん...
-
Outlookで、メールを他...
-
インスタグラムでブロックされ...
-
ワードに入力したメールアドレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
メールをパスワードつきで送る方法
-
LINE TCBというところからLINE...
-
メールアドレス 上バーの入力...
-
大学定期試験過去問サイト「過...
-
メールエラー
-
メールのマナー編
-
メールアドレスで上付きのハイフン
-
インスタの捨て垢で友達のスト...
-
インスタのアイコンについてるN...
-
メールを返信したら、英語のメ...
-
steam版 apexのログアウト方法...
-
ビーリアルのユーザー名を変え...
-
メールアドレスから個人を特定...
-
携帯電話を解約してもSMSの受信...
-
「@」(アットマーク)の無いメ...
-
YouTubeが毎回ログインしないと...
-
解約済みの iPadについて 解約...
-
カカオで退会せずに、アプリだ...
-
CSVファイルを添付するときにパ...
おすすめ情報