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

関連記事

2016年1月の人気記事前のページ

Re: 【Wordマクロ】Word起動時に、前回終了時に開いていたファイルを表示次のページ

関連記事

  1. Office関連

    「IEを自在に操る Excel VBAプログラミング入門」レビュー

    ※ 下記レビューはあくまでも個人的な感想です。2013年9月2…

  2. Office アドイン

    [Office用アプリ]第一回 Apps for Office 勉強会で登壇しました。

    19日(金)に第一回 Apps for Office 勉強会が東京で開…

  3. Office関連

    Visual Studio Community 2015でOffice開発する。

    「Microsoft、統合開発環境「Visual Studio 201…

  4. Office アドイン

    Visio JavaScript APIで遊んでみました。

    前回の記事でプレビュー版がリリースされた「Visio JavaScri…

  5. アイコン一覧

    Office 2013 アイコン一覧(A)

    ・Office 2013 アイコン一覧 NUM…

  6. Office関連

    表の特定の列に対して処理を行うWordマクロ

    2015/6/12 追記:下記で紹介しているコードはセルの結合を考…

コメント

  • コメント (1)

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

    • こたろ~
    • 2016年 2月 03日 8:04pm

    きぬあさ様

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

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

    心から感謝いたします。

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP