AFormAut : Add メソッド

TOP > AFormAut > *


説明

1つのフィールドを追加します。追加できるフィールドは テキストボックス、ボタン、コンボボックス、リストボックス、チェックボックス、ラジオボタン、電子著名です。

形式

LPDISPATCH Add (LPCTSTR bstrFieldName , 
       LPCTSTR bstrFieldType , 
       short pageNum , 
       float left , 
       float top , 
       float right , 
       float bottom);

引数

  1. 第一引数 (LPCTSTR bstrFieldName) :
    フィールドの名称
    例 : “Text1“ "Name.First"
     
  2. 第二引数 (LPCTSTR bstrFieldType) :
    フィールドの以下のタイプ
    • "text” : テキストボックス
    • "button” : ボタン
    • "combobox” : コンボボックス
    • "listbox” : リストボックス
    • "checkbox” : チェックボックス
    • "radio button” : ラジオボタン
    • "signature" : 電子著名
  3. 第三引数 (short pageNum) :
    該当するPDF のページ番号。1ページ目はゼロです。
     
  4. 第四引数 (float left) :
    PDFページ上の左の座標
     
  5. 第五引数 (float top) :
    PDFページ上の上の座標
     
  6. 第六引数 (float right) :
    PDFページ上の右の座標
     
  7. 第七引数 (float bottom) :
    PDFページ上の下の座標

戻り値

  • 追加されたフィールドのオブジェクト。
  • 指定したPDF には該当するフィールドが追加されます。

動作するバージョン

Acrobat動作備考
4NOAcrobat 4.0 ※Windows 98SE + Excel 2000  *1
※古いPDFのバージョンはOK!
5NOAcrobat 5.0.5 + Excel 2003 *1
※古いPDFのバージョンはOK
6NOAcrobat 6.0.6 Pro + Excel 2003 *1
※古いPDFのバージョンはOK
7OKAcrobat 7.1.4 Pro + Excel 2003 *2 
※レジストリ操作で全面的に可能になる
8NOAcrobat 8.3.1 Pro + Excel 2003
※当Acrobatバージョンでは全面的に不可
9NOAcrobat 9.5.2 Extended + Excel 2003
※当Acrobatバージョンでは全面的に不可
10OKAcrobat X (10.1.4) Extended + Excel 2003
11OKAcrobat XI (11.0) Extended + Excel 2003
  • OK : 正常処理します。
  • NO : 動作しない。 又は実行時にエラーになります。
  • *1 : 「PDF のバージョン」によっては正常処理出来ない場合があります。詳細は下の 注意 を参照ください。
  • *2 : 全ての「PDF のバージョン」での処理を可能にしたければ、
    処理前のレジストリに以下を追加する必要があります。
    [HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥7.0¥AVAlert]
    [HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥7.0¥AVAlert¥cCheckbox]
    "idocNewerVersionWarning"=dword:00000001

サンプル:Excel のVBA

PDF の全ページにテキストボックスを追加します。

001 Option Explicit 002 003 Sub AFormApp_Field_Add_01() 004 On Error GoTo Err_AFormApp_Field_Add_01: 005 006 Dim i As Long 007 Dim iPageNum As Long 008 Dim bRet As Boolean 009 Dim bEnd As Boolean 010 Dim sFilePath_new As String 011 012 Dim objAFormApp As New AFORMAUTLib.AFormApp 013 Dim objAFormFields As AFORMAUTLib.Fields 014 Dim objAFormField As AFORMAUTLib.Field 015 016 '初期値 017 Const sFilePath = "D:\work\sample.pdf" 018 bEnd = True 019 020 If Dir$(sFilePath, vbNormal) = "" Then 021 MsgBox sFilePath & vbCrLf & _ 022 "ファイルが存在しない。", _ 023 vbOKOnly + vbCritical, "実行時のエラー" 024 Exit Sub 025 End If 026 027 'Acrobatオブジェクトの定義&作成 028 029 'Acrobat 4,5,6 の時 030 ' Dim objAcroApp As Acrobat.CAcroApp 031 ' Dim objAcroAVDoc As Acrobat.CAcroAVDoc 032 ' Dim objAcroPDDoc As Acrobat.CAcroPDDoc 033 ' Dim objAcroPDPage As Acrobat.CAcroPDPage 034 ' Dim objAcroPoint As Acrobat.CAcroPoint 035 ' Set objAcroApp = CreateObject("AcroExch.App") 036 ' Set objAcroAVDoc = CreateObject("AcroExch.AVDoc") 037 ' Set objAcroPDDoc = CreateObject("AcroExch.PDDoc") 038 039 'Acrobat 7,8,9,10,11 の時 040 Dim objAcroApp As New Acrobat.AcroApp 041 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 042 Dim objAcroPDDoc As New Acrobat.AcroPDDoc 043 Dim objAcroPDPage As Acrobat.AcroPDPage 044 Dim objAcroPoint As Acrobat.AcroPoint 045 046 '※CreateObject("AFormAut.App")のエラー 047 '※[429 ActiveXコンポーネントはオブジェクトを作成できません。] 048 '※回避用 / メモリにAcrobatを強制ロードさせる 049 objAcroApp.CloseAllDocs 050 objAcroApp.Hide 051 052 '処理対象のPDFファイルを開く 053 bRet = objAcroAVDoc.Open(sFilePath, "") 054 055 If bRet = False Then 056 MsgBox "AVDocオブジェクトはOpen出来ません", _ 057 vbOKOnly + vbCritical, "処理エラー" 058 bEnd = False 059 GoTo Skip_AFormApp_Field_Add_01: 060 End If 061 062 ' Set objAFormApp = CreateObject("AFormAut.App") 063 Set objAFormFields = objAFormApp.Fields 064 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc 065 iPageNum = objAcroPDDoc.GetNumPages 066 067 For i = 0 To iPageNum - 1 068 069 'PDFページサイズを取得 070 Set objAcroPDPage = objAcroPDDoc.AcquirePage(i) 071 Set objAcroPoint = objAcroPDPage.GetSize 072 073 'PDFの指定ページにテキストフィールドを追加 074 '※ページ全体を覆うテキストボックス 075 Set objAFormField = _ 076 objAFormFields.Add("Text" & (i + 1), "text", _ 077 i, 0, objAcroPoint.y, objAcroPoint.x, 0) 078 079 'テキストフィールドの設定 080 With objAFormField 081 .SetBackgroundColor "RGB", 1, 1, 1, 0 082 .Alignment = "center" 083 .TextFont = "HeiseiMin-W3-UniJIS-UCS2-H" 084 .Value = "閲覧不可" '表示する文字 085 .IsReadOnly = True '読み込み専用 086 .IsHidden = False '表示 087 End With 088 089 '設定後に開放 090 Set objAFormField = Nothing 091 092 Next 093 094 'PDFファイルを別名で保存 095 sFilePath_new = Replace(sFilePath, ".pdf", "_new.pdf") 096 bRet = objAcroPDDoc.Save(1, sFilePath_new) 097 If bRet = False Then 098 MsgBox "PDFファイルへ保存出来ませんでした", _ 099 vbOKOnly + vbCritical, "エラー" 100 bEnd = False 101 End If 102 103 'PDFファイルを閉じる 104 bRet = objAcroAVDoc.Close(False) 105 If bRet = False Then 106 MsgBox "AVDocオブジェクトはClose出来ませんでした", _ 107 vbOKOnly + vbCritical, "処理エラー" 108 bEnd = False 109 End If 110 111 Skip_AFormApp_Field_Add_01: 112 On Error Resume Next 113 '変更しないで閉じます。 114 bRet = objAcroAVDoc.Close(False) 115 116 'Acrobatアプリケーションの終了 117 objAcroApp.Hide 118 objAcroApp.Exit 119 120 'オブジェクトの開放 121 Set objAFormFields = Nothing 122 Set objAFormApp = Nothing 123 Set objAcroPDPage = Nothing 124 Set objAcroPoint = Nothing 125 Set objAcroPDDoc = Nothing 126 Set objAcroAVDoc = Nothing 127 Set objAcroApp = Nothing 128 129 If bEnd = True Then 130 MsgBox "処理は正常に終了しました。", _ 131 vbOKOnly + vbInformation, "正常終了" 132 End If 133 Exit Sub 134 135 Err_AFormApp_Field_Add_01: 136 MsgBox Err.Number & vbCrLf & Err.Description, _ 137 vbOKOnly + vbCritical, "実行時のエラー" 138 bEnd = False 139 GoTo Skip_AFormApp_Field_Add_01: 140 End Sub

 

 


実行結果

テキストボックス(フィールド)をページ全体を隠す様に貼り付けました。

AFormAut.Fields.Add 実行結果

備考

  1. このAdd メソッドの後でフィールドオブジェクトの詳細なプロパティを設定する必要があります。

注意

  1. 全OLEを実行する前に objAcroApp.CloseAllDocs で強制的にAcrobat アプリケーションをメモリ上にロードしないと
    Set objAFormApp = CreateObject("AFormAut.App")
    で実行エラー(ランタイムエラー)が発生する場合があります。
    429 ActiveXコンポーネントはオブジェクトを作成できません。
    429 ActiveXコンポーネントはオブジェクトを作成できません。

動作確認の環境

  • Acrobat 4.0 + Office 2000
    +  Windows98SE( + WindowsUpdate)
  • Acrobat 5.0.5 + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat 6.0.6 Pro + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat 7.1.4 Pro + Office 2003( + SP3)
    +  WindowsXP Pro( + SP2 + WindowsUpdate)
  • Acrobat 8.3.1 Pro + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat 9.5.2 Extended + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat X (10.1.4) Extended + Office 2003( + SP3) 
    + WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat XI (11.0) Extended + Office 2003( + SP3)
    + WindowsXP Pro( + SP3 + WindowsUpdate)

Adobe Web 解説

OLE Automation / AFormAut / Add (公式サイト・英語)

戻る




これ以降はサイト管理者が当サイト又は当ページを維持&管理するためのメモです。見る必要も無く公開用にも書いてません。

  1. E1:AVDoc.OpenはOK,
       CreateObject("AFormAut.App")
    で実行エラー:Runtime rror
       (429 ActiveXコンポーネントはオブジェクトを作成できません。)
  2. E2:AVDoc.OpenはOK,
       Set objAFormFields = objAFormApp.Fields
       で実行エラー(-2147220991 Runtime rror)
  3. E3:AVDoc.OpenはOKだが、Acrobat本体が起動され
       「このファイルは、このバージョンのAcrobatではサポートされてない・・・」
       ダイアログボックスが表示される。
       OKボタンをクリックした後のAcrobat本体をすぐに終了すれば、正常終了。
       Acrobat本体をしばらくそのままにしておくと、OLEエラーになり、
       次に実行エラー(-2147220991 Runtime rror)となる。
  4. E4:OLE待機になります。
  5. E5:AVDoc.OpenはOKだが、Acrobat本体が起動され無いで
       「このファイルは、このバージョンのAcrobatではサポートされてない・・・」
       ダイアログボックスが表示される。
       OKをクリックすると正常処理される。
  6. E6:objAcroAVDoc.Open(sFilePath, "")で
      「この文書を開くときにエラーが発生しました。ファイルが壊れています。修復できませんでした。」
      で処理続行不可。
  • ▼Acrobat 4 + Excel 2000 + Win98SE 環境 ★環境不可★
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : E6
    sample-1.7L3.pdf (9) : E6
    sample-1.7L8.pdf (10) : E6
  • ▼Acrobat 5 + Excel 2003 + WinXP 環境 ★環境不可★
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK,
    sample-1.6.pdf (7) : OK,E5
    sample-1.7.pdf (8) : E6
    sample-1.7L3.pdf (9) : E6
    sample-1.7L8.pdf (10) : E6
  • ▼Acrobat 6 + Excel 2003 + WinXP 環境 ★環境不可★
    ※レジストリ操作不可・不良
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK,E5
    sample-1.7.pdf (8) : OK,E5
    sample-1.7L3.pdf (9) : OK,E5
    sample-1.7L8.pdf (10) : OK,E5
  • ▼Acrobat 7 + Excel 2003 + WinXP 環境
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : E4,E5        ※idocNewerVersionWarning レジストリを1でOK
    sample-1.7L3.pdf (9) : OK,E5    ※idocNewerVersionWarning レジストリを1でOK
    sample-1.7L8.pdf (10) : OK,E5    ※idocNewerVersionWarning レジストリを1でOK
  • ▼Acrobat 8 + Excel 2003 + WinXP 環境 ★環境不可★
    sample-1.2.pdf (3) : E2
    sample-1.3.pdf (4) : E2            ※idocNewerVersionWarning レジストリを1もNG
    sample-1.4.pdf (5) : E2
    sample-1.5.pdf (6) : E2
    sample-1.6.pdf (7) : E2
    sample-1.7.pdf (8) : E2
    sample-1.7L3.pdf (9) : E3        ※idocNewerVersionWarning レジストリを1もNG
    sample-1.7L8.pdf (10) : E3
  • ▼Acrobat 8 + Excel 2007 + Win7 64bit 環境 ★環境不可★
    sample-1.2.pdf (3) : E2
    sample-1.3.pdf (4) : E2
    sample-1.4.pdf (5) : E2
    sample-1.5.pdf (6) : E2
    sample-1.6.pdf (7) : E2
    sample-1.7.pdf (8) : E2
    sample-1.7L3.pdf (9) : E3
    sample-1.7L8.pdf (10) : E3
  • ▼Acrobat 9 + Excel 2003 + WinXP 環境 ★環境不可★
    sample-1.2.pdf (3) : E1
    sample-1.3.pdf (4) : E1
    sample-1.4.pdf (5) : E2
    sample-1.5.pdf (6) : E1
    sample-1.6.pdf (7) : E2
    sample-1.7.pdf (8) : E2
    sample-1.7L3.pdf (9) : E2
    sample-1.7L8.pdf (10) : E3
  • ▼Acrobat X (10) + Excel 2003 + WinXP 環境
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : OK
    sample-1.7L3.pdf (9) : OK
    sample-1.7L8.pdf (10) : OK
  • ▼Acrobat XI (11) + Excel 2003 + WinXP 環境
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : OK
    sample-1.7L3.pdf (9) : OK
    sample-1.7L8.pdf (10) : OK

戻る

コメントを残す

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

CAPTCHA



SAMURAI Plugin

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

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

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