Web Translation

This page can be translated.

最近のコメント

訪問数

: Yesterday
: Today
: Total

サイトマップ

▼ サイトの紹介

このサイトはExcel VBAから、Acrobat  アプリケーションをプログラミング操作するOLE機能について解説しています。Adobe社はこのOLE機能の事を「IAC」と表現しています。Adobe社提供のSDK資料を元にサンプルを加えて説明をしています。サイト管理人もご覧下さい。
(注意:Adobe Readerでは使用出来ません)

▼ 当サイトの使い方

当サイトをうまく使う上での手順を以下に示します。

  1. 最初に「Acrobat SDK:OLE objects and methods図を入手する」にあるオブジェクト連携図を手に入れます。出来れば印刷する方が見やすいです。1頁です。
  2. 下記の「Excel」、「Acrobat」、「ダウンロード」、「SDK」、「備考」にサッと目を通します。「その他&メモ」は特に見なくてもイイです。
  3. 自分が目的とする処理を探しながら、印刷したオブジェクト連携図を元にサイト左記「▼Object & 一覧」下を上からクリックしてザックリと内容を見ます。各オブジェクトのメソッドの詳細は後にして全体で何が出来て、何が出来ない(サポートされていない)かを把握します。
    「Acobat OLE 以外の選択」も見て下さい。
  4. 目的が解決出来ない時は、キッパリとあきらめてAdobe社の日本語「Acrobat アドビフォーラム」で相談します。 ココ ↓
    http://forums.adobe.com/community/international_forums/japanese/acrobat
    内のサイト pdf-file.nnn2.com より質が高い。
  5. それでもダメなら、当サイトにコメントを入れてみます。サイト管理人がある程度、判る範囲でお答えをします。・・タブン。(汗
    (お願い:管理人を「様」での呼び方はご遠慮下さい。管理人さ~んで十分です。)

▼ Excel

  1. Excel からAcrobatを操作する訳
  2. Excel から PDFファイル を作成&操作出来る
  3. Excel でOLEの参照設定をする
  4. Excel のオブジェクトブラウザ
  5. ExcelからAcrobatを起動する
  6. ExcelからPDFファイルを起動表示する
  7. Excel サンプル:PDFの文書プロパティを表示する
  8. 上記7のサンプルファイルの実行エラー
  9. Excel VBA 実行エラー時のメッセージ

▼ Acrobat

  1. Acrobat SDK:OLE objects and methods図を入手する
    ここで示す図は必ず入手する必要があります。
    これが無いとオブジェクト連携が判らなく、OLE(IAC)操作が出来ません。
  2. Acrobatアプリケーションを閉じる(実は簡単に出来ない)
  3. Acrobat OLE 使用上の注意事項
  4. Acrobatプログラミングにおける技術上の制約やライセンス上の制約
  5. PDFファイルを作成、及び操作する開発者に対しての注意事項
  6. Windows のコマンドラインから Acrobat や Adobe Reader を使用して印刷する方法
  7. PDF:GetInfoプロパティで取得した日付は「yyyy/mm/dd hh:mm:ss」形式では無い
  8. PDFドキュメントの文書フラグとは

▼ ダウンロード

  1. Adobe Acrobat 9.1 SDK のダウンロード
    SDKをダウンロードしてサンプル、解説PDF,HTML等を入手する必要があります。
  2. Adobe Acrobat 8.1 SDK のダウンロード
    このバージョンに用が無くてもダウンロードしておいて下さい。9.1 SDKに無いものが有るからです。
  3. Acrobat製品別ダウンロード先 URL
  4. AxAcroPDFLib.AxAcroPDF:Excel VBAサンプル(A)
  5. AxAcroPDFLib.AxAcroPDF:Excel VBAサンプル(B)
  6. Adobe Readerの各種バージョンのダウンロード

▼ SDK

  1. AcrobatプログラミングにおけるToolbar and Toolbar Button Names 一覧
  2. PDDocのGetJsObjectのオブジェクト構造図が見当たらない
  3. Acrobat SDK:正誤表
    Acrobat SDK v8.1ドキュメントに記載ミスが有ります。
  4. Acrobat 9.0に関するSDKが Acrobat Developer Center のDownloadよりダウンロード出来ます。但し、リファレンス的なSDKはPDFからURL(HTML)公開に変わりました。OLE操作(IAC)に関するSDKも同じで、HTML公開に変更されました。場所は↓ココです。
    http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?&accessible=true
    全て英語です。(涙
  5. JavaScript(JavaScriptAPI)における「Safe Path」についての注意事項

▼ 備考

  1. JavaScriptの解説はAcrobat v7 v8 共に英語版です。しかし、旧バージョンですがコメントを頂いた方から日本語版のAcrobat JavaScript解説PDFが見つかりました。以下がそのPDFです。
    http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf
  2. [2009/1/7] AcroExch.AVDoc:Open メソッド でバグ?を発見しました。Acrobat v8.1.3 v9.0が対象です。
  3. お願い:Acrobat v4.0 SDK を入手したいのですが、持っている方はサイト管理人までメールで分割(9Mb)送信して頂けないでしょうか。

▼ その他&メモ

  1. OCR機能:読んde!ココと比較した結果
  2. アドビ(Adobe)製品に関するRSSの情報
  3. 添付ファイルの扱いには注意が必要
  4. AcrobatはPDF作成ソフトの標準では無くなる?
  5. Acrobat PDF は国際標準化された
  6. メソッド「GetInfo(“Modified”)」は使えない
  7. メソッド「GetInfo(“Modified”)」は使えない (訂正版)
  8. PDF:AcroPDDocオブジェクトのSetInfoメソッド
  9. 技:「透明テキスト付きPDFファイル」を「画像文字だけPDF」に変換する
  10. 手書きPDF入門
  11. planet pdf (PDF関連の英語サイト)
  12. デフォルトプリンタを一時的に変更する方法
  13. Delphi(デルファイ,デルフィ)言語からの使用方法
  14. Acrobat使用時のレジストリ変化を取得する方法
  15. オブジェクトは値では無く、参照情報を持つ

  • 2010/4/26 「Appメソッド一覧」移行完了。かなり見直したので、結構解説が難しくなってしまったかも・・。全部の移行が完了したら、再度見直す事にして、次に行きます。
  • 2010/5/14 データの移行と再リンクが終わりました(汗)。サイトマップの構成も少し見直して・・。後は見直し(リニューアル)する必要有り。OLE(IAC)の全貌が判った時点で細かい部分の追加が必要となった。各頁にかなりの追加と再テストが必要だが既に環境は出来あがっている。本当の踏ん張ると事はココからかもしれない。
  • 2010/5/18 Appオブジェクトの移行が完了しました。

▼ Acobat OLE 以外の選択

Adobe Acrobat OLE(IAC)以外で、PDFファイルをプログラミング操作する情報を以下に提供します。

  1. PDFill PDF Writer: PDF作成ツール

[コメント入力] <-をクリックするとページの最後にコメント入力が出来ます。
名前(ニックネーム)は必須。メールアドレス(非表示)も必須ですが、適当(abc@mail.jp)で結構です。

【更新日:2011/09/18 (6版)】

AcroExch.AVDoc:Open メソッド

<説明>
PDFドキュメント(オブジェクト)、又はAcrobatがサポートしている画像ファイル(jpeg,png等)を開きます。
Acrobatアプリケーションが起動されていれば指定したファイルは画面表示されます。(<-注意事項有り)
Acrobatアプリケーションが起動されて無い時はインスタンス(オブジェクト)のみ作成します。

<形式>
VARIANT_BOOL Open(BSTR szFullPath,
     BSTR szTempTitle);

<戻り値>

  • 戻り値が-1の時は成功。
  • 戻り値が0の時は失敗。

<引数>

  1. 第一引数(BSTR szFullPath) :
    PDFファイルのフルパス。
    Acrobatがサポートしている画像ファイル(jpeg,png等)のフルパス。
  2. 第二引数(BSTR szTempTitle) :
    開く時のタイトル。指定無し””でも構わない。

<動作するバージョン>

Version Adobe
Acrobat
Adobe
Reader
備考
4
-
-
Acrobat 4.0
※Windows 98SE + Excel 2000
5
-
-
Acrobat 5.0.5
6
OK
-
Acrobat 6.0.3 Pro
7
-
-
Acrobat 7.0.9 Pro
Acrobat 7.1.4 Pro
8
OK
-
Acrobat 8.1.2 Pro
9
-
-
Acrobat 9.3.2 Extended

OK = 動作する。
NO = 動作しない。 戻り値が0を返す。
- = 未確認。 環境とテスト時間が出来次第、結果を入力します。


<サンプル:ExcelのVBA>
説明:PDFファイルを画面表示せず、インスタンスのみ作成して閉じる。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。

Sub AcroExch_AVDoc_Open()
    Dim objAcroAVDoc    As New Acrobat.AcroAVDoc
    Dim lRet            As Long

    ‘PDFファイルを開く。
    On Error Resume Next
    lRet = objAcroAVDoc.Open(“E:¥Test01.pdf”, “”)
    If lRet = False Then
        ‘Acrobatがエラーメッセージを表示する
        GoTo Skip_CommandButton01_Click
    End If

    ‘PDFファイルを全て閉じます。
    lRet = objAcroAVDoc.Close(1)
Skip_CommandButton01_Click:
    ‘PDFオブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
End Sub

 
<補足>

  • OpenしたPDFドキュメント、又はAcrobatがサポートしている画像ファイル(jpeg,png等)は必ずCloseAllDocsメソッドかCloseメソッドで閉じる必要がある。その処理をしないとAcrobatアプリケーションを再起動した時に、そのファイルが指定をしないのに再表示される。
    注)何らかに形でインスタンス情報がメモリ上に残る為です。
  • Openしたファイルを画面表示せずに処理することが可能です。これがこのOpenメソッドの最大の特徴です。

<注意①>

  • 存在しないFファイルを指定すると処理を中断し、Acrobatアプリケーションから以下のエラーメッセージ・ダイアログが表示されます。
    ※「この文書を開くときにエラーが発生しました。このファイルが見つかりません。」
    「この文書を開くときにエラーが発生しました。このファイルが見つかりません。」
  • 事前にPDFファイル、又はAcrobatがサポートしている画像ファイル(jpeg,png等)をチェックするロジックを当Openメソッドの前に入れる方が最良の方法だと思います。
    下記のサンプルはExcelファイルの拡張子をPDFにしたものです。Dir関数で先にエラーになります。

Private Sub CommandButton01A_Click()
    Dim objAcroApp      As New Acrobat.AcroApp
    Dim objAcroAVDoc    As New Acrobat.AcroAVDoc
    Dim lRet            As Long
    Const CON_FILENAME  As String = “E:¥Test01_excel.pdf”
    
    ‘PDFファイルの属性チェック
    If Dir(CON_FILENAME, vbNormal) = “” Then
        MsgBox CON_FILENAME & _
        ” ファイルは存在しないか、PDFではありません。”, _
        vbOKOnly + vbExclamation, “エラー”
        GoTo Skip_CommandButton01_Click
    End If
    
    ‘Acrobatアプリケーションを起動する。
    lRet = objAcroApp.Show
    ‘PDFファイルを開いて表示する。
    lRet = objAcroAVDoc.Open(CON_FILENAME, “”)
    If objAcroAVDoc.IsValid = 0 Then
        MsgBox CON_FILENAME & _
        ” ファイルはPDFではありません。”, _
        vbOKOnly + vbExclamation, “エラー”
        GoTo Skip_CommandButton01_Click
    End If
    ‘PDFファイルを全て閉じます。
    lRet = objAcroApp.CloseAllDocs
    ‘Acrobatアプリケーションを終了する。
    lRet = objAcroApp.Hide
    lRet = objAcroApp.Exit
Skip_CommandButton01_Click:
    ‘PDFオブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
    Set objAcroApp = Nothing
End Sub

 

<備考> 

 

<注意②> ★2009/01/07 追加

  • Acrobat v8.1.3、v9.0の場合、オブジェクトは生成され、戻り値もTrue(-1)だが、ファイルが画面表示されない現象が発生しています。
    原因不明です。
    Windows環境やExcelバージョンを変えても結果は同じ。なぜPDFドキュメント、又はAcrobatがサポートしている画像ファイル(jpeg,png等)が画面に表示されないかは、分からないです。
    Acrobat v7.0ではPDFがAcrobat上に画面表示される。

 

<動作確認環境>

  • WindowsXP Pro(+ SP3) +
    Acrobat 6.0.3 Pro + Office 2003 + MicrosoftUpdate
  • WindowsXP Pro(+ SP3) +
    Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate

 

戻る