Office関連

PDFファイル上のフィールドの値を操作するVBAマクロ

PDFファイルに差し込み印刷するVBAマクロ」で、Acrobatを操作してPDF上のフォームにデータを差し込むマクロを紹介しているのですが、“チェックボックスにチェックを入れるにはどうしたら良いか?”、という質問がありました。

答えは簡単で、getFieldメソッドで取得したフィールドのValueプロパティで、各フィールドに設定してある下図のような値を指定すれば良いのです。

AcrobatFormInput_01

例えば下図のようなPDFファイルのフィールドを操作する場合は、下記コードのようになります。

AcrobatFormInput_02

Option Explicit

Public Sub Sample()
  Dim app As Object
  Dim avdoc As Object
  Const PDSaveFull = &H1
  Const PdfFilePath As String = "C:\Test\Form.pdf" 'PDFファイルのパス
  
  Set app = CreateObject("AcroExch.App")
  Set avdoc = CreateObject("AcroExch.AVDoc")
  If avdoc.Open(PdfFilePath, "") = True Then
    app.Show 'Acrobat表示
    With avdoc.GetPDDoc.GetJSObject
      .getField("fldName").Value = "斉藤 花子" '氏名
      .getField("fldGender").Value = "女" '性別
      .getField("fldAge").Value = "25" '年齢
      .getField("fldAddress").Value = "神奈川県" '住所
      .getField("fldBaseball").Value = "Off" '野球
      .getField("fldGolf").Value = "ゴルフ" 'ゴルフ
      .getField("fldGame").Value = "ゲーム" 'ゲーム
      .getField("fldBook").Value = "Off" '読書
    End With
    avdoc.GetPDDoc.Save PDSaveFull, "C:\Test\Form2.pdf" '別名保存
    avdoc.Close 1 '文書を保存せずに閉じる
    app.Hide: app.Exit
  End If
End Sub

Acrobatを表示する必要が無い場合はCAcroPDDocオブジェクトだけで操作することができるため、下記のように短いコードで処理できます。

Public Sub Sample2()
  Const PDSaveFull = &H1
  Const PdfFilePath As String = "C:\Test\Form.pdf" 'PDFファイルのパス
  
  With CreateObject("AcroExch.PDDoc")
    If .Open(PdfFilePath) = True Then
      With .GetJSObject
        .getField("fldName").Value = "佐藤 はじめ" '氏名
        .getField("fldGender").Value = "男" '性別
        .getField("fldAge").Value = "28" '年齢
        .getField("fldAddress").Value = "埼玉県" '住所
        .getField("fldBaseball").Value = "野球" '野球
        .getField("fldGolf").Value = "Off" 'ゴルフ
        .getField("fldGame").Value = "Off" 'ゲーム
        .getField("fldBook").Value = "読書" '読書
      End With
      .Save PDSaveFull, "C:\Test\Form2.pdf" '別名保存
      .Close
    End If
  End With
End Sub

関連記事

  1. Office関連

    ルビ(ふりがな)を一括設定するWordマクロ(改良版)

    これまで当ブログではルビを設定するWordマクロについて、いくつか記事…

  2. Office関連

    PDFを分割するVBAマクロ

    「VBA PDF 分割」といったキーワード検索でのアクセスがありました…

  3. Office関連

    古い形式のWordテンプレートを新しい形式に一括変換するVBScript

    古い形式のWordテンプレート(dot)を新しい形式(dotx,dot…

  4. アイコン一覧

    Office 2013 アイコン一覧(F)

    ・Office 2013 アイコン一覧 NUM…

コメント

  • コメント (1)

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

    • こたろ~
    • 2016年 2月 03日

    きぬあさ様

    早速教えてくださり,どうもありがとうございました。

    テキストを入れて設定するとは,全く思いつきませんでした。自分で
    調べていたら永久に分からなかったでしょう。

    心から感謝いたします。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP