説明
PDF 上のFields コレクションの数を取得する。
テキストフィールド等だけでなく、Fields コレクションの数である事に注意が必要です。
形式
[ read-only : 読み込みのみ ] long
動作するバージョン
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上のフィールドコレクションの数を表示する。
- F8 キーでステップ実行しながら動作確認します。
- 事前に 参照設定(AFormAutの追加版) が必要です。
001 Option Explicit
002
003 Sub AFormAut_Count_test()
004
005 Dim lRet As Long
006
007 Const CON_PDF_FILE = "D:\work\ReleaseNotes.pdf"
008
009 'Acrobatオブジェクトの定義&作成
010 Dim objAcroApp As New Acrobat.AcroApp
011 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
012
013 Dim objAFormApp As AFORMAUTLib.AFormApp
014 Dim objAFormFields As AFORMAUTLib.Fields
015 Dim objAFormField As AFORMAUTLib.Field
016
017 Dim lFieldsCount As Long
018 Dim lCnt As Long
019
020 '※CreateObject("AFormAut.App")のエラー
021 '※[429 ActiveXコンポーネントはオブジェクトを作成できません。]
022 '※回避用 / メモリにAcrobatを強制ロードさせる
023 objAcroApp.CloseAllDocs
024
025 '*―――――――――――――――――――--
026 '* PDFファイルを開く
027
028 '処理対象のPDFファイルを開く
029 '※AVDocでOpenしないと"AFormAut.App"で実行エラー
030 lRet = objAcroAVDoc.Open(CON_PDF_FILE, "")
031 If lRet = 0 Then
032 MsgBox "AVDocオブジェクトはOpen出来ません" & vbCrLf & _
033 CON_PDF_FILE, vbOKOnly + vbCritical, "処理エラー"
034 GoTo Skip_AFormAut_Count_test:
035 End If
036
037 '*―――――――――――――――――――--
038 '* AFormオブジェクトの作成
039
040 Set objAFormApp = CreateObject("AFormAut.App")
041 Set objAFormFields = objAFormApp.Fields
042
043 '*―――――――――――――――――――--
044 '* フィールドコレクションの数を表示
045
046 lFieldsCount = objAFormFields.Count
047 Debug.Print "Fields.Count (" & lFieldsCount & ")"
048
049 lCnt = 0
050 For Each objAFormField In objAFormFields
051 lCnt = lCnt + 1
052 'フィールドのタイプを表示
053 Debug.Print "(" & objAFormField.Type & ")"
054 Next objAFormField
055
056 Skip_AFormAut_Count_test:
057
058 '*―――――――――――――――――――--
059 '* 終了処理
060
061 'AVDocを閉じる
062 lRet = objAcroAVDoc.Close(1)
063
064 'Acrobatアプリケーションの終了
065 objAcroApp.Hide
066 objAcroApp.Exit
067
068 'オブジェクトの開放
069 Set objAFormFields = Nothing
070 Set objAFormApp = Nothing
071 Set objAcroAVDoc = Nothing
072 Set objAcroApp = Nothing
073
074 MsgBox "End Sub"
075
076 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
実行結果
1. Acrobat 7.1.4
- objAFormFields.Count の値は 4、
テキストフィールの数は3
2. Acrobat X (10.1.8)
Acrobat 7.1.4 と結果は同じ。
3. Acrobat XI (11.0.5)
Acrobat 7.1.4 と結果は同じ。
備考
- 特になし。
注意事項
- 特になし。
Adobe Web 解説 URL(英語)
http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?href=IAC_API_FormsIntro.107.51.html&accessible=truehttp://partners.adobe.com/public/developer/en/acrobat/sdk/FormsAPIReference.pdf#nameddest=G15.1031128
< 戻る >