Excel VBA 質問スレッド №1283 (解決済)

VBAを使ってPDFの指定ページを表示する

投稿者 : ことら     投稿日時 : 2023/02/17(Fri) 13:54:43     OS : Windows 10     EXCEL : Office 365
タイトルにある通りVBAでPDFの指定ページを表示しているのですが少し困りごとがありましたのでここに記載させていただきました。

https://waq3-travelog.com/open-a-specific-page-of-pdf/
上記のサイトを参考にセル(A1)に入力した数字がPDFの指定したページとして指示され、指示通りのページを開くことには成功したのですが、この作業をPDF開いたまま連続して別の指定したページを表示しようとすると、指示したページに飛ばずにそのままになってしまいます。
コードとしては以下になります。

Sub ボタン7_Click()

Dim wsh As Object
Dim strTgTFLE '開けたいPDFファイルのフルパス
Dim PG_NO As Long 'ページ番号
Dim wsh_CMD As String 'WSHに渡すコマンド

Set wsh = CreateObject("WScript.Shell")
strTgTFLE = "C:\Users\admin\Desktop\2023ringi.pdf"
PG_NO = Range("A1") 'ページを指定

'WSHに渡すコマンドを組み立てる
wsh_CMD = "AcroRd32.exe /a page=" & PG_NO & " " & strTgTFLE

wsh.Run (wsh_CMD)

End Sub


VBAの知識も乏しく最低限の変更しかできないのでこんな形ですみません。
PDFをウェブ上に保管すれば問題は解決するのですが、機密の関係でCドライブ上か物理サーバー保管必須のため上記ような方法をとっています。
どうにかご教授いただけると助かります。

スポンサーリンク
[返信 1] Re : VBAを使ってPDFの指定ページを表示する
投稿者 : さんこう     投稿日時 : 2023/02/17(Fri) 15:27:53
>PDF開いたまま連続して別の指定したページを表示しようとすると

いちど閉じればいいのではないでしょうか。

もしくは、SendKeysでページ指定のキー操作をしてみたらどうでしょうか。

[返信 2] Re : VBAを使ってPDFの指定ページを表示する
投稿者 : ことら     投稿日時 : 2023/02/17(Fri) 16:18:47
■[返信 1] さんこうさん(2023-02-17 15:27:53)の記事
> >PDF開いたまま連続して別の指定したページを表示しようとすると

> いちど閉じればいいのではないでしょうか。

> もしくは、SendKeysでページ指定のキー操作をしてみたらどうでしょうか。


さんこうさんご回答ありがとうございます。

少し説明が足らず申し訳ありません。
実はこの作業はQRコードで読み取りを行いセルに記入された値に応じてPDFのページを自動で開きそこに指示された作業を実施し、
次の作業の時にまたQRコードを読み取って・・・・の繰り返しなので

作業ごとにPDFを閉じていると煩雑な作業になるので避けたくVBAでどうにかならないかと考えた次第です。

SendKeysですか。
少し調べてみたところ
shift+ctrl+N+指定ページ+Enterの動作をできるようにすればいいと思うので
がんばってマクロ組んでみます。

また悩んだら戻ってくるかもです・・・
ありがとうございます。

[返信 3] Re : VBAを使ってPDFの指定ページを表示する
投稿者 : hoge     投稿日時 : 2023/02/18(Sat) 09:40:56
Sub test()

Dim wsh As Object
Dim strTgTFLE '開けたいPDFファイルのフルパス
Dim PG_NO As Long 'ページ番号
Dim wsh_CMD As String 'WSHに渡すコマンド

Set wsh = CreateObject("WScript.Shell")

strTgTFLE = "C:\Users\admin\Desktop\2023ringi.pdf"

PG_NO = Range("A1") 'ページを指定

'WSHに渡すコマンドを組み立てる
wsh_CMD = """C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"" " & "file://" & strTgTFLE & "#page=" & PG_NO
wsh.Run (wsh_CMD)

End Sub

[返信 4] Re : VBAを使ってPDFの指定ページを表示する
投稿者 : ことら     投稿日時 : 2023/02/20(Mon) 08:22:57
hogeさん

返信遅くなり申し訳ありません。

マクロの改良ありがとうございます!

非常に希望に近い形での動作を実現することができました。

ご指導ありがとうございます。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2026-04-05 07:32:29 )
タイトルとURLをコピーしました