TOP > AFormAut オブジェクト 一覧 [...]
概要
AFromAut オブジェクトとは、PDF のフォーム作成を支援するOLE オートメーション(ActiveX オートメーション)です。他のOLEオートメーション(IAC)と共に利用することが前提です。
ポイント
AcroForm Automation : フォーム機能のOLE Automation
- PDF上にフォームフィールド(フィールド)を作成します。
ここで言う フォームフィールドとは以下です。- テキストボックス
- ボタン
- コンボボックス
- リストボックス
- チェックボックス
- ラジオボタン
- 電子著名
- 他のOLE オブジェクトと連携して操作します。 しかし、
「オブジェクトの連携図 [ OLE objects and methods ] 」には記載無し。 - PDFへ Acrobat JavaScript の追加と実行等の機能もサポートします。
AFromAut オブジェクトのメソッドとプロパティ (階層で表示)
*AD : Adobe社のSDK解説サイト(英語)へのリンク ※後日消滅
- AFormApp *AD
- Form Automation オブジェクト
- PDF をオープンした以降に作成する。
事前にAVDoc オブジェクトを使ってPDFをオープンする必要有り。Dim objAFormApp As AFORMAUTLib.AFormApp
Set objAFormAut = CreateObject("AFormAut.App")
- AFormAup オブジェクトのメソッド
- RunDistributeFormWizard : ※使用方法は不明
- AFormAup オブジェクトのプロパティ
- Fields *: Fields オブジェクトの作成
- Fields *AD
- アクティブな文書上のフィールドのコレクション
- Fields オブジェクトのメソッド
- Add : フィールドの追加
- AddDocJavascript : PDF レベルのJavaScript 追加
- ExecuteThisJavascript : JavaScript の実行
- ExportAsFDF : FDF 形式での書き出し
- ExportAsHtml : HTML 形式での書き出し
- ImportAnFDF : FDFファイルの取り込み
- Remove : フィールドの削除
- Fields オブジェクトのプロパティ
- Count : Fields コレクション内のField オブジェクトの数を取得
- Item *AD: フィールド名を指定してField オブジェクトを作成する
- Field *AD
- アクティブな文書上のフィールド
- Field オブジェクトのメソッド
- PopulateListOrComboBox *AD:
ListBox , ComboBox の項目、出力値の設定 - SetBackgroundColor *AD: 背景色の設定
- SetBorderColor *AD: 境界線の色を設定
- SetButtonCaption *AD: ボタン表示の設定
- SetButtonIcon *AD: ボタンアイコンの設定
- SetExportValues *AD: 出力値の設定
- SetForegroundColor *AD: 前景色(文字色)の設定
- SetJavaScriptAction *AD: JavaScript 動作の設定
- SetResetFormAction *AD: ResetForm 動作の設定
- SetSubmitFormAction *AD: Sumbit 動作の設定
- PopulateListOrComboBox *AD:
- Field オブジェクトのプロパティ
- Alignment : テキストフィールドのテキストの配置の取得と設定
- BorderStyle : テキストフィールドの境界線のスタイルの取得と設定
- BorderWidth : フィールドの境界線の太さの取得とと設定
- ButtonLayout *AD: ボタンのレイアウトの外観の取得と設定
- CalcOrderIndex *AD: フィールドの計算順序の取得と設定
- CharLimit *AD: テキストフィールドに入力できる文字数の取得と設定
- DefaultValue *AD: デフォルトの値の取得と設定
- Editable *AD: コンボボックス等から選択の可否の取得と設定
- Highlight *AD: クリック時の表示方法の取得と設定
- IsHidden *AD: フィールドの表示/非表示の取得と設定
- IsMultiline *AD: テキストフィールドのマルチライン表示の取得と設定
注意)テストで機能の確認ができませんでした。その解決策がココにあります。 - IsPassword *AD: パスワード表示(文字の*表示)の取得と設定
- IsReadOnly *AD: フィールドの読み取り専用の取得と設定
- IsRequired *AD: フィールドの必須入力かの取得と設定
- IsTerminal *AD: フィールドがターミナルかの値の取得
- Name *AD: フィールドの名前(=完全修飾名)の取得
- NoViewFlag *AD: 印刷可否 ?? の取得と設定
- PrintFlag *AD: 印刷時に印刷されるかの取得と設定
- Style *AD: チェックボックスやラジオボタンのスタイルの取得と設定
- TextFont : テキストのフォントの取得と設定
- TextSize *AD: テキストのフォントサイズの取得と設定
- Type *AD: フィールドのタイプの取得
- Value *AD: フィールドの値の取得と設定
*AD : Adobe社のSDK解説サイト(英語)へのリンク。(2019/07/17:かなりのリンクが消滅しています)
動作確認の結果
必ず自分の環境下で再確認してください。
Adobe Acrobat | 結果 | 備考 |
---|---|---|
4 | △ | Acrobat 4.0 + Excel 2000 + Windows 98SE |
5 | △ | Acrobat 5.0.5 + Excel 2003 + Windows XP |
6 | △ | Acrobat 6.0.6 Pro + Excel 2003 + Windows XP |
7 | OK | Acrobat 7.1.4 Pro + Excel 2003 + Windows XP *1 |
8 | NO | Acrobat 8.3.1 Pro + Excel 2003 + Windows XP |
9 | NO | Acrobat 9.5.5 Extended + Excel 2003 + Windows XP |
10 | OK | Acrobat X (10.1.8) Extended + Excel 2003 + Windows XP |
11 | OK | Acrobat XI (11.0.5) Extended + Excel 2003 + Windows XP |
- △: 上位の PDFのバージョン は処理できない。
詳細は当サイトページ下部の「テスト結果の詳細」を参照。 - OK : 正常処理する。
- NO : 正常に処理できない。 又は実行時にエラーとなる。
- *1 : レジストリに「"idocNewerVersionWarning"=dword:00000001 」を事前に追加する必要があります。
そして、以下の警告ダイアログボックスを表示しないようにする必要があります。
Adobe Acrobat 「このファイルは、このバージョンの Acrobat ではサポートされていない新しい形式を使用している可能性があります。正しく開いたり表示できない場合があります。最新バージョンの Acrobat 製品にアップグレードすることをお勧めします。Acrobat 製品のサイト (http://www.adobe.co.jp/acrobat) を参照してください。 以後、このメッセージを表示しない
備考
- 「Interapplication Communication API Reference / Adobe® Acrobat® SDK November 2006 Version 8.0」英語版だが唯一公開されているAFormAut オブジェクトの解説書
- 「AFORMAUTlib タイムスタンプライブラリの内容」参照。
- Acrobat JavaScript の詳細な解説書/リファレンス 日本語 URL (765頁)
JavaScript for Acrobat API Reference
Adobe Acrobat SDK バージョン 8.0
※上記の解説文書のバージョンは古いが、十分に使えます。 - AcroForm Automation オブジェクト(AFormAut) の質問をされても返答できる程の知識は現在無いです。
- AcroFrom プラグイン(AcroForm.api 又は Aform32.api)に実装されたActiveX オートメーション。
- NoViewFlag , PrintFlag の違いがイマイチ判らない・・・。
その他のVBAサンプル
- PDFにページ番号を追加する方法
- PDFをWEBブラウザでしか表示出来ない様にする方法(this.path 使用)
- PDFをWEBブラウザでしか表示出来ない様にする方法(this.URL 使用) ※運用上の注意点有り
注意
- AFormAut オブジェクト操作時にあるタイミングで実行エラーが発生します。以下を参考に対策用のロジックの追加が必要です。
- AFormAut オブジェクトを使ってPDF へ処理を行うにはパソコン環境にインストールされている Acrobat アプリケーションのバージョンに制限があります。
- Acrobat 4 ~ Acrobat 6 : 操作が一部で不可
- Acrobat 7 : 操作可
- Acrobat 8 ~ Acrobat 9 : 操作不可
- Acrobat X (10) ~ Acrobat XI (11) : 操作可
- PDF のバージョン により処理が出来ない場合があります。
※これはテスト結果です。SDK 及びメーカー技術サイト で確認した内容ではありません。 - Acrobat アプリケーションをメモリ上に確実にロードする
objAcroApp.CloseAllDocs
を実行しておかないと、以下のVBAステートメント(命令)を実行する時に、
実行エラー(ランタイムエラー)が発生します。
Set objAFormApp = CreateObject("AFormAut.App")
429 ActiveXコンポーネントはオブジェクトを作成できません。
- 「Set objAFormFields = objAFormApp.Fields」を実行するには
「objAcroAVDoc.Open」で該当するPDFファイルをオープンしておく必要があります。
「objAcroPDDoc.Open」ではダメです。
< TOPへ >
サイト管理人のメモ : テスト結果の詳細
以下はサイト管理人のメモ&記録です。
見なくても結構です。
- OK : 正常処理
- NO : 処理できない。又は実行エラーになる。
- E1 :
Set objAFormApp = CreateObject("AFormAut.App")
実行時にランタイムエラー で続行不可
「429 ActiveX コンポーネントはオブジェクトを作成できません。」 - E2 :
Set objAFormFields = objAFormApp.Fields
実行時にランタイムエラー で続行不可
「-2147220991 現在Acrobatで文書が開いていません。」 - E3 :
Acrobat アプリケーション 本体が起動され
「このファイルは、このバージョンのAcrobatではサポートされてない・・・」
ダイアログボックスが表示される。
OKボタンをクリックした後のAcrobat本体をすぐに終了すれば、正常終了。
Acrobat本体をしばらくそのままにしておくと、OLEエラーになり、
次に実行エラー(-2147220991 Runtime rror)となる。 - E4 :
「別のプログラムでOLEの操作が完了するまで待機を続けます。」
ダイアログボックスが表示される。 - E5 : 警告メッセージがPDFファイルのオープン時に表示される。
なお、このメッセージはAcrobatバージョンにより、多少異なる。
Adobe Acrobat このファイルには、この Viewer でサポート可能なものより新しい情報が含まれている可能性があります。正しく開いたり表示できない可能性があります。Adobe では、Acrobat 製品の最新バージョンにアップグレードするようおすすめします。http://www.adobe.co.jp/acrobat 以後、このメッセージを表示しない - E6 :
「この文書を開くときにエラーが発生しました。ファイルが壊れています。修復できませんでした。」
で処理続行不可。
Acrobat 4
- テスト環境:Acrobat 4.0 + Excel 2000 + Win98
- PDFのバージョンが 1.7 以上は処理できない。
PDF のバージョン | 結果 | 備考 |
---|---|---|
1.2 | OK | |
1.3 | OK | |
1.4 | OK | |
1.5 | OK | |
1.6 | OK | |
1.7 | NO | 処理できない。 E6 |
1.7,Adobe Extension Level 3 | NO | 処理できない。 E6 |
1.7,Adobe Extension Level 8 | NO | 処理できない。 E6 |
Acrobat 5
- テスト環境:Acrobat 5.0.5 + Excel 2003 + Windows XP
- PDFのバージョンが 1.6 以上は処理できない。
- PDFの上位バージョンに対する警告メッセージを再表示させないレジストリ設定は無い。
NO | 結果 | 備考 |
---|---|---|
1.2 | OK | |
1.3 | OK | |
1.4 | OK | |
1.5 | OK | |
1.6 | NO | 処理できない。 E5 処理できる場合も有り。 |
1.7 | NO | 処理できない。 E6 |
1.7,Adobe Extension Level 3 | NO | 処理できない。 E6 |
1.7,Adobe Extension Level 8 | NO | 処理できない。 E6 |
Acrobat 6
- テスト環境:Acrobat 6.0.6 + Excel 2003 + Windows XP
- PDFのバージョンが 1.6 以上は処理できない。
- PDFの上位バージョンに対する警告メッセージを再表示させないレジストリ設定は無い。
PDF のバージョン | 結果 | 備考 |
---|---|---|
1.2 | OK | |
1.3 | OK | |
1.4 | OK | |
1.5 | OK | |
1.6 | NO | 処理できない。 E5 処理できる場合も有り。 |
1.7 | NO | 処理できない。 E5 処理できる場合も有り。 |
1.7,Adobe Extension Level 3 | NO | 処理できない。 E5 |
1.7,Adobe Extension Level 8 | NO | 処理できない。 E5 |
Acrobat 7
- テスト環境:Acrobat 7.1.4 + Excel 2003 + Windows XP
- PDFのバージョンが 1.7 以上はレジストリ操作が必要。
- 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
PDF のバージョン | 結果 | 備考 |
---|---|---|
1.2 | OK | |
1.3 | OK | |
1.4 | OK | |
1.5 | OK | |
1.6 | OK | |
1.7 | OK | E4 , E5 レジストリ操作で処理可能 |
1.7,Adobe Extension Level 3 | OK | E5 レジストリ操作で処理可能 |
1.7,Adobe Extension Level 8 | OK | E5 レジストリ操作で処理可能 |
Acrobat 8
- テスト環境:Acrobat 8.3.1 Pro + Excel 2003 + Windows XP
- 全 PDFのバージョン で処理できない。
- PDFの上位バージョンに対する警告メッセージを再表示させないレジストリ設定をしても処理できない。
PDF のバージョン | 結果 | 備考 |
---|---|---|
1.2 | NO | E2 |
1.3 | NO | E2 |
1.4 | NO | E2 |
1.5 | NO | E2 |
1.6 | NO | E2 |
1.7 | NO | E2 |
1.7,Adobe Extension Level 3 | NO | E3 |
1.7,Adobe Extension Level 8 | NO | E3 |
Acrobat 9
- テスト環境:Acrobat 9.5.2 Extended + Excel 2003 + Windows XP
- 全 PDFのバージョン で処理できない。
- PDFの上位バージョンに対する警告メッセージを再表示させないレジストリ設定をしても処理できない。
PDF のバージョン | 結果 | 備考 |
---|---|---|
1.2 | NO | E1 |
1.3 | NO | E1 |
1.4 | NO | E2 |
1.5 | NO | E1 |
1.6 | NO | E2 |
1.7 | NO | E2 |
1.7,Adobe Extension Level 3 | NO | E2 |
1.7,Adobe Extension Level 8 | NO | E3 |
Acrobat X (10)
- テスト環境:Acrobat X (10.1.4) Extended + Excel 2003 + Windows XP
- PDFの上位バージョンに対する警告メッセージを再表示させないレジストリ設定は出来る。[HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥10.0¥AVAlert]
[HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥10.0¥AVAlert¥cCheckbox]
"idocNewerVersionWarning"=dword:00000001
PDF のバージョン | 結果 | 備考 |
---|---|---|
1.2 | OK | |
1.3 | OK | |
1.4 | OK | |
1.5 | OK | |
1.6 | OK | |
1.7 | OK | |
1.7,Adobe Extension Level 3 | OK | |
1.7,Adobe Extension Level 8 | OK |
Acrobat XI (11)
- テスト環境:Acrobat XI (11.0) Extended + Excel 2003 + Windows XP
- PDFの上位バージョンに対する警告メッセージを再表示させないレジストリ設定は出来る。[HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥11.0¥AVAlert]
[HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥11.0¥AVAlert¥cCheckbox]
"idocNewerVersionWarning"=dword:00000001
PDF のバージョン | 結果 | 備考 |
---|---|---|
1.2 | OK | |
1.3 | OK | |
1.4 | OK | |
1.5 | OK | |
1.6 | OK | |
1.7 | OK | |
1.7,Adobe Extension Level 3 | OK | |
1.7,Adobe Extension Level 8 | OK |
< TOPへ >