「PDFファイルに差し込み印刷するVBAマクロ」で、Acrobatを操作してPDF上のフォームにデータを差し込むマクロを紹介しているのですが、“チェックボックスにチェックを入れるにはどうしたら良いか?”、という質問がありました。
答えは簡単で、getFieldメソッドで取得したフィールドのValueプロパティで、各フィールドに設定してある下図のような値を指定すれば良いのです。
例えば下図のようなPDFファイルのフィールドを操作する場合は、下記コードのようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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オブジェクトだけで操作することができるため、下記のように短いコードで処理できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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 |
きぬあさ様
早速教えてくださり,どうもありがとうございました。
テキストを入れて設定するとは,全く思いつきませんでした。自分で
調べていたら永久に分からなかったでしょう。
心から感謝いたします。