Excel VBA サンプル / 関数

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


飛瀧神社

 

Acrobat とPDF を Excel VBAから操作する関数とサンプルの一覧です。

関数

当サイトで汎用的に使える共通関数を紹介します。

  1. 関数:「PDFのバージョン」を取得する
  2. 関数:PDFファイルを完全にチェックする
  3. 関数:Acrobat , Adobe Reader のインストールパスとバージョンを取得 
  4. 関数:PDFを特定のフォーマットに変換する
  5. 関数:PDFからメタデータ(XMP)を抽出する 
  6. 関数:PDFの文書プロパティ(概要)を更新
    タイトル、サブタイトル、作成者、キーワード、著作権情報 を更新します。
  7. 関数:Windows のデフォルトプリンターを取得
    デバイスに登録されているプリンターの一覧も取得します。
  8. 関数:Adobe PDFの印刷設定を取得
  9. 関数:通常使うプリンターを設定
  10. 関数:レジストリの操作(Regコマンド版)
  11. 関数:文字列のページ番号と座標を返す

 

サンプル

  1. PDFの文書プロパティ「開き方」タブを変更する。
    上記はコメントの部分にそのサンプルが表示されています。
    文書プロパティの以下を変更する事が可能なサンプルです。
    • 「レイアウトと倍率」 の [表示], [ページレイアウト], [倍率], [開くページ]
    • 「ウインドウオプション」 の [ページにウインドウサイズを合わせる], [ウインドウを画面中央に配置], [フルスクリーンモードで開く], [表示]
    • 「ユーザーインターフェースオプション」 の [メニューバーを非表示], [ツールバーを非表示], [ウインドウコントロールを非表示]
    • 未テストですが文書プロパティの他の項目の変更も出来るかもしれません。
  2. Excel:PDFの文書プロパティを表示する
  3. PDFの表紙のサイズと、他の頁サイズ(x,y)が同じかチェックする
    全頁が同じサイズかをチェックする、と同じ。
  4. 画像だけのPDFファイルかをチェックをする
  5. 「透明テキスト付きPDFファイル」を「画像文字だけPDF」に変換する方法
  6. PDFを HTML に変換する方法 (その1)
  7. PDFを HTML に変換する方法 (その2)
  8. PDFを HTML に変換する方法 (その3)
  9. PDFを HTML に変換する方法 (その4)
    PDFファイルをHTMLに変換するにはこの方法がベターでしょう。
  10. PDFを HTML 3.2 に変換する方法
  11. PDFをHTMLへ変換する上でのイメージファイルを扱う注意事項
  12. PDFをWORDに変換する方法
  13. PDFをRTFに変換する方法
  14. PDFをXMLに変換する方法
  15. PDFをEPSに変換する方法
  16. PDFをJPEGに変換する方法
  17. PDFを PNG に変換する方法
  18. PDFをテキストファイルに変換する方法
  19. PDFをテキストファイルに変換する方法(その2)
  20. VBAでPDFファイルをPDF/X-1a:2001形式に変換出力
  21. PDFにページ番号を追加する方法
  22. 透かしをファイルで追加する (addWatermarkFromFile)
    別ファイルを透かしと使ってPDF文書に追加する
  23. 透かしを追加する (addWatermarkFromText) 
    テキストで透かしをPDF文書に追加する
  24. Acrobat のアクション、バッチ処理を実行する (Acrobat 6~10)
    Acrobat のアクション(バッチ処理)を実行し、終了まで監視操作する。
  25. しおりを追加する (createChild)
    追加した しおりをクリックするとページ移動する
  26. PDFをWEBブラウザでしか表示出来ない様する (this.URL使用)
  27. Adobe Reader で PDF ファイルを表示 / 印刷する方法
  28. Delphi(デルファイ,デルフィ)言語からの使用方法
  29. 印刷設定の変更と復元
    プリンターの印刷設定をバックアック、復元するサンプル
  30. PDF上のテキストとその座標
  31. テキストにリンクを追加
  32. テキストのリンク数をカウント
  33. テキストのリンクを削除
  34. 注釈:ハイライト表示の追加、削除、変更、一覧
  35. PDF上に罫線と座標を表示

 

 

Acrobatアプリケーション本体の環境設定を変更するサンプル

※メニュー操作で[編集(E)]->[環境設定(N)]

  1. [分類/ページ表示]の[ズーム]を変更する
  2. Acrobat本体の環境設定の「データ量の多い画像を表示」設定をオフにする
  3. Acrobat本体の環境設定の「グリーギング」設定をオンにする
  4. Acrobat本体の環境設定の「グリーギング」設定をオンにし、8ポイント文字以下はグリーギング状態にする

 

Acrobat OLE (IAC) 以外からの操作

IAC からだけでは限界があります。そこでVBAから起動連携が出来る、少し有効なソフトと思われるものを一部紹介します。

 

Qpdf

PDFへの高度なセキュリティ設定が出来るコマンドラインのフリーソフトです。業務ソフトではなく、PDFの開発者向けソフトで有る点が特徴です。このソフトの紹介はココです。

  1. Qpdf :PDFのパスワードとセキュリティ設定を解除するVBA関数
  2. Qpdf :PDFにセキュリティを設定するVBA関数
  3. Qpdf :PDFにパスワードとセキュリティ設定をコピーするVBA関数
  4. Qpdf :PDFのセキュリティ設定を取得するVBA関数

 

Poppler

Xpdf 3.0 をペースに機能拡張したコマンドラインのフリーソフトです。PDFからメタデータ、各種セキュリティ設定、添付ファイル、フォント、テキスト等の情報を抽出します。更にHTML、各種画像への変換もできます。このソフトの機能を使っているソフトが今増えています。このソフトの紹介はココです。

  1. Poppler:PDFの添付ファイルを保存(抽出)するVBA関数
  2. Poppler:PDFの添付ファイル一覧を取得するVBA関数
  3. Poppler:PDFに埋め込まれた画像の保存するVBA関数

 

Xpdf

コマンドラインのフリーソフトです。PDFからメタデータ、各種セキュリティ設定、添付ファイル、フォント、テキスト等の情報を抽出します。更にHTML、各種画像への変換もできます。開発は2年前に終了してますが、非常に安定動作します。このソフトの紹介はココです。

  1. Xpdf : PDFのセキュリティ情報を取得するVBA関数

 

使用上の注意

  1. サンプルコードなので、エラーチェックなどはほとんど省いている場合が多いです。
    実用時はメソッドの戻り値(lRet)チェック、又はオブジェクトの「is Nothing」チェックは必ずする様にして下さい。
  2. Acrobatのバージョン、OS環境等を考慮して、必ず必要なテストはして下さい。
  3. テストの時はタスクマネージャーを起動して、テスト完了後はAcrobatプロセスが消えている事を確認して下さい。
    テストミスをするとプロセスが残り、次回のテストに影響する場合があるからです。

 

備考

  • 長さの単位:1mm=約2.8346ポイント
  • PDFの座標系はページの左下隅を基点としていますが、注釈の座標はページの左上隅を基点とします。

TOPへ

「Excel VBA サンプル / 関数」への5件のフィードバック

  1. 管理人さん

    はじめまして。 LA在住の山本と申します。
    http://pdf-file.nnn2.com/
    をめちゃくちゃ活用させていただいています。
    VBA使いです。(その他の言語は殆どわからない。)

    1つご存じであれば教えてください。
    クリップボードに入っている画像イメージがあります。

    1.このイメージをPDF上に貼り付け。
    2.貼り付けたイメージを選択。
    3.貼り付けたイメージのサイズを変更。
    4.サイズが変更されたイメージを若干回転させる。
    5.イメージを最終のポジションに移動。

    1についてはAPPからMenuItemExecuteでどうにか対応できると思います。が、2-5についてはどのObjectを使えばいいのか、からしき見当がつきません。PDAnnotがあやしいのかな?とは思いますが、いまいちという感じ。 はりつけられたイメージはSTAMP扱いとなっているところまでは、分かるのですが....

    ヒントがあれば知恵をめぐんでください。

  2. やま さん はじめまして。

    当サイトにはメチャムチャ難問です。
    代替案も含めて考えてみます。
    ※無理だと思うのですが・・
    お時間を下さい。

    それと、質問です。画像の
    Q1)元のサイズは多種多様? 動かした時に分かるのか?
    Q2)回転も多種多様? 
    Q3)移動先も変化する?
    事前に分かっている事は無いのかな、事前に準備は出来ないのか、
    の質問です。

    <2020/03/13 21:09 追加>
    先に手作業で何も無いPDF上に画像を貼り付け、サイズや回転をさせた状態で用意します。それをスタンプ用PDFとします。
    画像ごとにスタンプ用PDFは複数用意しておきます。
    そのスタンプ用PDFを目的のPDFの上(又は下)にスタンプ扱いで貼り付ける。
    貼り付けるときは位置やページが指定できます。

    コチラ(-stamp-on、-stamp-under、-scale-stamp-to-fit)を御覧ください。

  3. 管理人さん

    はじめまして。ゆうすけといいます。
    Excel VABで、既存のPDF(パスワードなし)にパスワードを設定しようとしています。
    Qpdfというツールを使用すればできそうに思うのですが、それを使わずに、既存のオブジェクトだけで処理することは不可能でしょうか?
    ご回答いただければ幸いです。

    OS名 バージョン:Win7/Win10
    Acrobat バージョン:Acrobat9
    ツール(Excel等) バージョン:Excel2016

  4. ゆうすけさん はじめまして。

    「既存のオブジェクト」=Acrobat OLE(IAC)だけでPDFにパスワードを設定するのは「不可能」です。
    機能が存在しません。
    Qpdf等の外部ツールが必要になります。

  5. 管理人さん

    確認遅くなってすみません。
    回答ありがとうございます。やはり無理なのですね。
    Qpdf等を使用することを検討します。
    そのあたりはこちらのサイトを参考にさせて頂きます。

コメントを残す

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

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

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

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

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