説明
PDF 上のAcrobat フォームとFields コレクションから指定したフィールドを削除します。

形式
void Remove ( LPCTSTR bstrFieldName ) ;
引数
- 第一引数 ( LPCTSTR bstrFieldName ) :
フィールド名。
フィールド名の完全修飾名は、Acrobatのフォームから削除します。
フィールド名は、複数の子を持つ表現を有する場合、それらのすべてが削除されます。
複数のフィールドが同じ名前を持っている場合は、すべてが削除されます。
"Text1" と指定すると、"Text1." のフィールド名が頭に付いたのは削除されます。
つまり、"Text1.AA"、"Text1.url"、"Text1.name"、等は削除されます。
"Text1-AA"、"Text1url"、"Text1name" は削除されません。
戻り値
- 無し。
動作するバージョン
Adobe Acrobat | 結果 | 備考 |
---|---|---|
4 | NO | Acrobat 4.0 ※Windows 98SE + Excel 2000 *1 ※古いPDFのバージョンはOK! |
5 | NO | Acrobat 5.0.5 + Excel 2003 *1 ※古いPDFのバージョンはOK |
6 | NO | Acrobat 6.0.6 Pro + Excel 2003 *1 ※古いPDFのバージョンはOK |
7 | OK | Acrobat 7.1.4 Pro + Excel 2003 *2 ※レジストリ操作で全面的に可能になる |
8 | NO | Acrobat 8.3.1 Pro + Excel 2003 ※当Acrobatバージョンでは全面的に不可 |
9 | NO | Acrobat 9.5.5 Extended + Excel 2003 ※当Acrobatバージョンでは全面的に不可 |
10 | OK | Acrobat X (10.1.8) Extended + Excel 2003 |
11 | OK | Acrobat XI (11.0.5) Extended + Excel 2003 |
- OK : 正常処理。
- NO : 動作しない。 又は実行時にエラーになる。
- *1 : 「PDF のバージョン」によっては正常処理出来ない場合がある。
- *2 : 処理前のレジストリに以下を追加する必要があります。
[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上のフィールド名「 Text1.email 」、「Text1.name 」、「Text2.email 」を削除する。
- F8 キーでステップ実行しながら動作確認します。
- 事前に 参照設定(AFormAutの追加版) が必要です。

001 Option Explicit
002
003 Public Const PDSaveFull = &H1
004 Public Const PDSaveLinearized = &H4
005 Public Const PDSaveCollectGarbage = &H20
006
007 Sub AFormAut_Remove_test()
008
009 Dim lRet As Long
010
011 Const CON_PDF_FILE = "D:\work\VBJavaScript.pdf"
012 Const CON_PDF_FI_S = "D:\work\VBJavaScript-S.pdf"
013
014 'Acrobatオブジェクトの定義&作成
015 Dim objAcroApp As New Acrobat.AcroApp
016 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
017 Dim objAcroPDDoc As New Acrobat.AcroPDDoc
018
019 Dim objAFormApp As AFORMAUTLib.AFormApp
020 Dim objAFormFields As AFORMAUTLib.Fields
021
022 '※CreateObject("AFormAut.App")のエラー
023 '※[429 ActiveXコンポーネントはオブジェクトを作成できません。]
024 '※回避用 / メモリにAcrobatを強制ロードさせる
025 objAcroApp.CloseAllDocs
026
027 '*―――――――――――――――――――--
028 '* PDFファイルを開く
029
030 '処理対象のPDFファイルを開く
031 '※AVDocでOpenしないと"AFormAut.App"で実行エラー
032 lRet = objAcroAVDoc.Open(CON_PDF_FILE, "")
033 If lRet = 0 Then
034 MsgBox "AVDocオブジェクトはOpen出来ません" & vbCrLf & _
035 CON_PDF_FILE, vbOKOnly + vbCritical, "処理エラー"
036 GoTo Skip_AFormAut_Remove_test:
037 End If
038
039 '*―――――――――――――――――――--
040 '* AFormオブジェクトの作成
041
042 Set objAFormApp = CreateObject("AFormAut.App")
043 Set objAFormFields = objAFormApp.Fields
044
045 '*―――――――――――――――――――--
046 '* テキスト・フィールドを削除
047
048 objAFormFields.Remove "Text1"
049 objAFormFields.Remove "Text2"
050
051 Skip_AFormAut_Remove_test:
052
053 '*―――――――――――――――――――--
054 '* 終了処理
055
056 '変更したPDFファイルの保存はPDDoc.Saveで必ず行う
057 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
058 lRet = objAcroPDDoc.Save( _
059 PDSaveFull + PDSaveCollectGarbage + PDSaveLinearized, _
060 CON_PDF_FI_S)
061 If lRet = 0 Then
062 MsgBox "05: PDFファイルへ保存出来ませんでした" & vbCrLf & _
063 CON_PDF_FI_S, vbOKOnly & vbCritical, "エラー"
064 End If
065
066 'AVDocを閉じる
067 lRet = objAcroAVDoc.Close(1)
068
069 'Acrobatアプリケーションの終了
070 objAcroApp.Hide
071 objAcroApp.Exit
072
073 'オブジェクトの開放
074 Set objAFormFields = Nothing
075 Set objAFormApp = Nothing
076 Set objAcroAVDoc = Nothing
077 Set objAcroApp = Nothing
078
079 MsgBox "End Sub"
080
081 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
実行結果
1. Acrobat 7.1.4
- フィールド名「 Text1.email 」、「Text1.name 」、「Text2.email 」は削除され、
「 Text1.sonota 」 は残る。

2. Acrobat X (10.1.8)
Acrobat 7.1.4 と結果は同じ。
3. Acrobat XI (11.0.5)
Acrobat 7.1.4 と結果は同じ。
備考
- Remove メソッドは連続で実行しても構わない。
但し、既に削除されて存在しないフィールド名を指定すると、実行エラーになります。
注意事項
- Remove の引数で該当するフィールド名が存在しないと、実行エラーになります。
Microsoft Visual Basic
実行時エラー '-2147319765 (8002802b)'
'Remove' メソッドは失敗しました: 'IFields' オブジェクト
- Acrobat 7 環境下でAVDoc.Close でPDFファイルの保存をしてはダメです。
lRet = objAcroAVDoc.Close(0)
OLE(IAC)が処理出来なくなり、以下のメッセージを出して終了出来なくなります。
Microsoft Excel 別のプログラムでOLEの操作が完了するまで待機を続けます。
Adobe Web 解説 URL(英語)
http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?href=IAC_API_FormsIntro.107.49.html&accessible=truehttp://partners.adobe.com/public/developer/en/acrobat/sdk/FormsAPIReference.pdf#nameddest=G14.1031544
< 戻る >