Excel

Acrobatを使ってPDFのドロップダウンリストに項目を追加するVBAマクロ

久々のVBAネタです。
“Acrobatを使って手作業で更新しているPDFのドロップダウンリストの値をExcelのマクロ使って一括設定できないか?”、とのご質問を頂きました。

答えは可能です。
7年ほど前に書いた下記記事でも説明していますが、AcrobatのFieldオブジェクトを操作することで、フィールドの値の取得や設定ができます。

今回の場合はドロップダウンリストの値を一括設定したいとのことなので、(Field).setItemsメソッドを使用します。

サンプルファイル

今回はサンプルファイルとして下図のファイルを使用します。
「支社所在地」フィールドの値をセル範囲A2:A48から、「ガソリン代単価」フィールドの値をセル範囲B2:B7から一括で設定します。

PDFのドロップダウンリストの値を一括設定するVBAマクロ

下記がサンプルコードになります。
GetJSObjectメソッドで取得したJSObject経由でsetItemsメソッドを実行しています。
今回は複数の値を一括で設定するため、引数を文字列型の配列としています。

上記コードを実行すると、各ドロップダウンリストの値が設定された新規ファイルが、指定した場所に保存されます。

上記コードでは、セル範囲(一列)の値を文字列型の配列に格納するための簡単な自作関数を書いていますが、TransposeやJoin、Splitを使って一行で書くこともできます。

Split(Join(Application.WorksheetFunction.Transpose(TargetRange), "|"), "|")

上記のようにVBAマクロからAcrobatを操作する際は、Adobeが公開しているリファレンスが参考になるでしょう。

2023年8月の人気記事前のページ

Microsoft Designerで不要な部分を消す方法の紹介次のページ

関連記事

  1. Office関連

    名前空間を指定してXPathで要素を取得するVBAマクロ

    Tech Communityに、“XPathで名前空間プレフィックス付…

  2. Office関連

    [VBA]ファイルタブ(Backstage ビュー)の表示を禁止する。

    数年前ホームページで「ファイルタブボタンのクリックを禁止する(Offi…

  3. Excel

    UIAutomationClient参照時にDLL読み込みエラーが発生した時の対処法

    マクロでダイアログやボタンの操作を行う時に便利なUI Automati…

  4. クライアント管理

    [クライアント管理]アップデータを配布せずにAdobe ReaderやAcrobatを更新する方法

    PC管理者を悩ませる作業の一つである“パッチ当て”、特にほとんどのPC…

  5. Power Automate for desktop

    たった1行でPower Automate for desktop(PAD)から自由自在にExcelを…

    ※ 本記事は「RPA(ロボティック・プロセス・オートメーション) Ad…

  6. Excel

    Google翻訳で文字列を翻訳するマクロ

    ※ 2016/2 時点では下記の方法はもう使用できなくなっています。V…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP