AFormAut : Remove メソッド

TOP > AFormAut > Remove メソッド


説明

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

AFormAut : Remove メソッド 2つのフィールドを削除

形式

void Remove  ( LPCTSTR  bstrFieldName ) ;

引数

  1. 第一引数 ( LPCTSTR  bstrFieldName ) :
    フィールド名。
    フィールド名の完全修飾名は、Acrobatのフォームから削除します。
    フィールド名は、複数の子を持つ表現を有する場合、それらのすべてが削除されます。
    複数のフィールドが同じ名前を持っている場合は、すべてが削除されます。

"Text1"  と指定すると、"Text1." のフィールド名が頭に付いたのは削除されます。

つまり、"Text1.AA"、"Text1.url"、"Text1.name"、等は削除されます。

"Text1-AA"、"Text1url"、"Text1name" は削除されません。

戻り値

  • 無し。

動作するバージョン

Adobe
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.5 Extended + Excel 2003
※当Acrobatバージョンでは全面的に不可
10OKAcrobat X (10.1.8) Extended + Excel 2003
11OKAcrobat 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 」を削除する。

AFormAut : Remove メソッド
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 」 は残る。 
      
AFormAut : Remove メソッド 実行結果

2. Acrobat X (10.1.8)

Acrobat 7.1.4 と結果は同じ。

3. Acrobat XI (11.0.5)

Acrobat 7.1.4 と結果は同じ。

備考

  1. Remove メソッドは連続で実行しても構わない。
    但し、既に削除されて存在しないフィールド名を指定すると、実行エラーになります。

注意事項

  1. Remove の引数で該当するフィールド名が存在しないと、実行エラーになります。
    実行時エラー '-2147319765 (8002802b)'

    Microsoft Visual Basic
    実行時エラー '-2147319765 (8002802b)'
    'Remove' メソッドは失敗しました: 'IFields' オブジェクト

      
  2. Acrobat 7 環境下でAVDoc.Close でPDFファイルの保存をしてはダメです。
    lRet = objAcroAVDoc.Close(0)
    OLE(IAC)が処理出来なくなり、以下のメッセージを出して終了出来なくなります。
    Microsoft Excel 別のプログラムでOLEの操作が完了するまで待機を続けます。

    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=true
  • http://partners.adobe.com/public/developer/en/acrobat/sdk/FormsAPIReference.pdf#nameddest=G14.1031544

戻る

コメントを残す

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

CAPTCHA


★ 文章での質問は難しいですよネ。でも、早く解決して、家に帰りたい。


SAMURAI Plugin

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

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



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

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