Adobe Reader で PDF ファイルを表示 / 印刷する方法

TOP > サンプル / 関数 > *      [...]


Coka

はじめに

Adobe Reader をコマンドライン起動してPDFファイルの表示と印刷をする関数型VBAモジュールが

別サイトで公開されています。

2016/2/27 時点(より前と思うが)で、当ページで紹介しているサイトが閉鎖しています。一時的にですが
ココから過去のサイト
ココからサンプルのダウンロード
が出来ます。

公開サイト、及びダウンロード

Adobe Reader で PDF 文書を表示 / 印刷する方法

AdobeReader VBAモジュール

機能の概要

  1. VBAモジュール内の関数を使用することで簡単にAdobe Readerをコマンドライン操作できます。
  2. このモジュールでPDFファイルの表示印刷がAcrobat Readerを使用して出来ます。
  3. Adobe Reader のバージョンを自動判別して処理します。
    ※レジストリ情報より判別。
  4. Word 2000、Excel 2000、Access 2000用の3種類のVBAモジュールが用意されています。
    ※上位バージョンでの使用は可能。但し動作確認は必要。

PDFの表示(OpenPdf 関数)

引数と内容

  1. FilePath: PDFファイルのフルパス
  2. Page:PDFファイル表示時のページ番号 (1~)
  3. Comment:PDFファイル表示時に移動したいコメントID
  4. Zoom:表示倍率。単位はパーセント。省略時は環境設定に従う。
  5. PageMode:PDFファイル表示時にサムネイル又はしおり表示を指定。省略時はどちらも無し。
  6. ScrollBar:PDFファイル表示時にスクロールバーの表示を指定。省略時は自動。
  7. Search:PDFファイル表示時に検索する語句を指定。複数語の検索可能。
  8. ToolBar:PDFファイル表示時にツールバー表示を指定。
  9. NavPanes:PDFファイル表示時にナビゲーションパネルの表示を指定。
  10. View:PDFファイル表示時の表示オプションを指定。省略時は環境設定に従う。
    全体表示 / 幅に合わせて表示 / 高さに合わせて表示 / 描画領域の幅に合わせて表示
    / 右に90°回転 / 左に90°回転
  11. WindowStyle:当関数内部で使用している Shell 関数の第二引数 windowstyle と同一。

戻り値:Acrobat Reader実行に問題がある時に数値のゼロを返します。
内部的に呼び出している Shell 関数の戻り値と同一 (タスク ID) 。

PDFの印刷(PrintPdf 関数)

引数と内容

  1. FilePath:PDFファイルのフルパス
  2. PrinterName:印刷に使用するプリンタ名。省略時は既定のプリンタで印刷。
    DriverName:ドライバ名
    PortName:ポート名
  3. ShowPrintSettings:印刷設定ダイアログを表示するかを指定。

戻り値:詳細はココを参照。

印刷時には、ウィンドウは表示されません。

印刷後、Adobe Reader は自動的に終了します。

関数の使用サンプル

001 Private Sub CommandButton1_Click() 002 On Error GoTo Err: 003 Dim dRet As Double '戻り値 004 'PDFファイルを画面表示する 005 dRet = AdobeReader.OpenPdf(FilePath:="c:\work\execMenuItem.pdf") 006 'Excelを最前列に表示 007 AppActivate Application.Caption 008 If dRet = 0 Then 009 'OpenPdf関数でエラー発生 010 MsgBox "OpenPdfでシステムエラーが発生しました" & vbCrLf & _ 011 "システム担当者へ連絡してください。", vbOKOnly + _ 012 vbCritical + vbApplicationModal, "システムエラー" 013 Else 014 '正常終了 015 MsgBox "OKです", vbOKOnly, "正常終了" 016 End If 017 Exit Sub 018 019 Err: 020 Dim strMsg As String 021 strMsg = "以下の内容をシステム担当者へ連絡してください。" & _ 022 vbCrLf & "エラー番号:" & Err.Number & _ 023 vbCrLf & "エラー内容:" & Err.Description 024 'エラーのメッセージボックスを表示 025 MsgBox strMsg, vbOKOnly + vbCritical + vbApplicationModal, "システムエラー" 026 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

詳細

▼詳細は以下を参照して下さい。

Adobe Reader で PDF 文書を表示 / 印刷する方法

▲注意事項もあるので必ず上記サイトページをご覧ください。

感謝

この様なすばらしいVBAモジュールを公開して頂いた配布サイト様に感謝いたします。

※当紹介記事の掲載は公開サイト・管理人様より承諾を得ました。m(_._)m

サンプル一覧

「Adobe Reader で PDF ファイルを表示 / 印刷する方法」への6件のフィードバック

  1. 管理人さん
    はじめまして
    エクセルVBAの初心者です。
    約20種類ほどあるAdobe PDFファイルをエクセル内の
    ファイル名のデータより数種類のPDFファイル選択し、
    エクセル内の発行部数指示にもとづき印刷をしたいのですが・・・・
    WEBにて調べていますが、どうもうまく行きません。
    何とかなりませんか?よろしくお願いします。

    環境
    Windows XP
    Adobe Acrobat 4.0
    Adobe Reader XI

  2. daicyan さん。
    初めまして。

    >・・・どうもうまく行きません。

    この様な場合、技術系のサイトへの質問は以下でお願いします。
    ・(VBA)ソースの内容
    ・エラーが出る箇所/何行目のどの命令
    ・エラーメッセージの内容
    ・環境:出来ればExcelのバージョンもお願いします。

    上記の3点が分からないと返答する範囲が大きすぎて無理があります。

    しかし、やりとり時間がもったいないので、
    予測の範囲で返答させて頂きます。

    ① 
    http://www.f3.dion.ne.jp/~element/msaccess/AcTipsAdobeReader.html#DL
    又は
    https://app.box.com/shared/jisind0q7l
    から AdobeReaderDemo.zip をダウンロードして下さい。
    そして AdobeReaderDemo.xls を解凍します。
    このExcelファイルは当サイトページで紹介しているPDFを簡単に印刷する関数が入っています。当関数は別サイトの人から公開された物です。

    ② 上記のAdobeReaderDemo.xlsファイルに
    問題のシートと作成したVBAを貼り付けて下さい。

    ③ 印刷時のVBA命令の例:
    AdobeReader.PrintPdf FilePath:="D:\AAA.pdf"
    上記はデフォルト・プリンターに印刷されるはずです。
    部数指定は無いので、必要な部数だけ命令を実行します。

    解決につながれば幸いです。

  3. 管理人さん
    ご返事ありがとうございます。
    Demoをダウンロードし、やっとPDFファイルを開き、印刷することができました、印刷部数はやはり手入力しなければならないのでしょうか?

  4. 管理人さん はじめまして
    このサイトのおかげでEXCEL VBAで大量のPDFデータの中から条件検索(PDFのファイル名)をかけて合致したPDFを固めて表示することができるようになりました。

    今、悩んでいるのは、VBAで任意の場所に赤い太線を引いたPDFを表示できないか、ということです。赤い太線はAcrobatの高度な編集の線ツールを用いれば引けますが、VBAの中で線ツールを使いたいのです。これにより利用者が表示されたPDFのどこを見ればよいかという情報を指定するためです。

    環境はAcrobat8を基本にしておりますが、windows 7になったことに伴いEXCELも2010になりその中でかろうじて動いております。念のためAcrobatXも購入しております。

    よろしくお願いします。

  5. でふぉー さん。
    はじめまして。

    >・・赤い太線はAcrobatの高度な編集の線ツールを・・

    たぶん目的とする所は、Acrobat8ではメニューの[ツール] ->[注釈]を使った場合ではないでしょうか。
    ・ハイライトテキスト
    ・下線の表示
    ・テキストボックス
    等が可能です。

    「注釈」機能ならVBAからOLE経由で間接的に編集が可能です。

    AFormAut : ExecuteThisJavascript メソッド
    上記のサンプル②を御覧ください。
    目的とするPDFに対してAcrobat JavaScriptを実行して、注釈のハイライトテキストを設定しています。
    Acrobat JavaScriptが使えないと出来ないと言うハードルは有りますが、
    当サイトで紹介しているOLE機能では出来ない部分をかなりカバー出来ます。

    ※上記OLE機能はAcrbat8では正常に動作しません。AcrobatXをご使用下さい。
    ※Acrobat JavaScriptに関しては勉強中なので質問はご遠慮下さい。
    ※Acrobat JavaScriptに関してはAdobeの質問フォーラムへお願いします。

    >・・利用者が表示されたPDFのどこを見ればよいかという情報を指定するため・・

    それには注釈一覧と言う機能を使えば該当するベージにも1クリックで表示が可能です。
    そう言う意味でも注釈の機能を使った方が良いのではと思います。
    あくまでも、ご提案です。


    「高度な編集」の使用に関しては不明ですが。
    PDF上にボタンやチェックボックス等の設定でしたらVBAからも出来ます。
    AFormAut オブジェクト 一覧
    上記ページ内容は未完成ですが、サンプル等を見ればある程度は出来るかと思います。

    解決につながれば幸いです。

  6. 管理人さん
    デフォーです。
    返事が遅れてすみません。

    AFormAutオブジェクトで出来るかどうか、試してみます。

    ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


★ 文章での質問は難しいですよネ。でも、早く解決して、家に帰りたい。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください