TOP > AcroExch.App > *
説明
開いているAVDocオブジェクトのリストの中のインデックスからAcroExch.AVDocオブジェクトを取得します。
形式
LPDISPATCH GetAVDoc(long nIndex);
戻り値
- 収録成功時は該当するAcroExch.AVDocオブジェクト。
- 収録失敗時は Nothing。
引数
- 第一引数(long nIndex) : ウィンドウの番号。0から開始する。
動作するバージョン
| Acrobat | 動作 | 備考 |
|---|---|---|
| 4 | OK | Acrobat 4.0 ※Windows 98SE + Excel 2000 |
| 5 | OK | Acrobat 5.0.5 |
| 6 | OK | Acrobat 6.0.3 Pro |
| 7 | OK | Acrobat 7.0.9 Pro Acrobat 7.1.4 Pro |
| 8 | OK | Acrobat 8.2.2 Pro |
| 9 | OK | Acrobat 9.3.2 Extended |
| 10 | ― | Acrobat X (10.1.8) Extended |
| 11 | ― | Acrobat XI (11.0.04) Extended |
- OK:動作します。
- NO:動作しない。 戻り値が0を返します。
- ― :未確認。
サンプル:ExcelのVBA
PDFファイルを2つ画面表示して、2番目に表示したPDFファイルのタイトルをメッセージ表示します。
- 参照設定を事前に行ないます。
- 以下のサンプルはテスト用です。F8キーでステップ実行して動作確認します。
001 Sub AcroExch_App_GetAVDoc()
002
003 'Acrobatオブジェクトの定義&作成
004 'Acrobat 4,5,6 の時
005 ' Dim objAcroApp As Acrobat.CAcroApp
006 ' Dim objAcroPDDoc1 As Acrobat.CAcroPDDoc
007 ' Dim objAcroPDDoc2 As Acrobat.CAcroPDDoc
008 ' Dim objAcroAVDoc As Acrobat.CAcroAVDoc
009 ' Dim objAcroAVDoc1 As Acrobat.CAcroAVDoc
010 ' Dim objAcroAVDoc2 As Acrobat.CAcroAVDoc
011 '
012 ' Set objAcroApp = CreateObject("AcroExch.App")
013 ' Set objAcroPDDoc1 = CreateObject("AcroExch.PDDoc")
014 ' Set objAcroPDDoc2 = CreateObject("AcroExch.PDDoc")
015 ' Set objAcroAVDoc = CreateObject("AcroExch.AVDoc")
016 ' Set objAcroAVDoc1 = CreateObject("AcroExch.AVDoc")
017 ' Set objAcroAVDoc2 = CreateObject("AcroExch.AVDoc")
018
019 'Acrobat 7,8,9,10,11 の時
020 Dim objAcroApp As New Acrobat.AcroApp
021 Dim objAcroPDDoc1 As New Acrobat.AcroPDDoc
022 Dim objAcroPDDoc2 As New Acrobat.AcroPDDoc
023 Dim objAcroAVDoc As Acrobat.AcroAVDoc
024 Dim objAcroAVDoc1 As Acrobat.AcroAVDoc
025 Dim objAcroAVDoc2 As Acrobat.AcroAVDoc
026
027 '以降はAcrobat全て共通
028 Dim lRet As Long '戻り値
029 Const CON_PDF1 = "C:\work\Test01.pdf"
030 Const CON_PDF2 = "C:\work\Test02.pdf"
031
032 'Acrobatを起動表示する
033 lRet = objAcroApp.Show '(TEST用)
034
035 'PDFドキュメントを開く
036 lRet = objAcroPDDoc1.Open(CON_PDF1)
037 If lRet = False Then
038 '実行エラー
039 MsgBox "ERR1:ファイルが無い=" & CON_PDF1
040 GoTo AcroExch_App_GetAVDoc_Skip:
041 End If
042 lRet = objAcroPDDoc2.Open(CON_PDF2)
043 If lRet = False Then
044 '実行エラー
045 MsgBox "ERR2:ファイルが無い=" & CON_PDF2
046 GoTo AcroExch_App_GetAVDoc_Skip:
047 End If
048 'テスト確認用に画面表示する
049 objAcroPDDoc1.OpenAVDoc CON_PDF1
050 objAcroPDDoc2.OpenAVDoc CON_PDF2
051
052 Set objAcroAVDoc = objAcroApp.GetAVDoc(0)
053 ' Set objAcroAVDoc = objAcroApp.GetAVDoc(1)
054 If objAcroAVDoc Is Nothing Then
055 MsgBox "実行エラー"
056 Exit Sub
057 Else
058 MsgBox objAcroAVDoc.GetTitle
059 End If
060
061 AcroExch_App_GetAVDoc_Skip:
062 '注意:以下のCloseの順番を変更すると実行エラー
063 lRet = objAcroApp.CloseAllDocs
064 lRet = objAcroPDDoc1.Close
065 lRet = objAcroPDDoc2.Close
066
067 'アプリケーションの終了
068 lRet = objAcroApp.Hide
069 lRet = objAcroApp.Exit
070
071 'オブジェクトの強制開放
072 Set objAcroAVDoc1 = Nothing
073 Set objAcroAVDoc2 = Nothing
074 Set objAcroPDDoc1 = Nothing
075 Set objAcroPDDoc2 = Nothing
076 Set objAcroAVDoc = Nothing
077 Set objAcroApp = Nothing
078
079 End Sub
テスト結果
objAcroAVDoc.GetTitleの内容をMsgBoxで表示します。
補足
- 上記サンプルは確認しやすいようにShowメソッドを使っているが、実際はShowメソッドは必要ないです。
- 引数(インデックス)は0からです。
- 存在しないウインドウのインデックス(番号)を指定しても戻り値が Nothing になるだけです。この時点で実行エラーにはならないです。
- ラベル『AcroExch_App_GetAVDoc_Skip』以降の終了処理は順番を1つでも間違えると実行エラーになります。結果としてAcrobatアプリケーションのプロセスがメモリ上に残る事態になりますますので、要注意です。
Adobe Web 解説
OLE Automation / AcroExch.App / GetAVDoc (公式サイト・英語)
動作確認環境
- Windows98SE( + WindowsUpdate) +
Acrobat 4.0 + Office 2000 - WindowsXP Pro( + SP3 + WindowsUpdate) +
Acrobat 5.0.5 + Office 2003 - WindowsXP Pro( + SP3 + WindowsUpdate) +
Acrobat 6.0.3 Pro + Office 2003( + SP3) - WindowsXP Pro( + SP2 + WindowsUpdate) +
Acrobat 7.0.9 Pro + Office 2003 - WindowsXP Pro( + SP3 + WindowsUpdate) +
Acrobat 7.1.4 Pro + Office 2003( + SP3) - WindowsXP Pro( + SP3 + WindowsUpdate) +
Acrobat 8.2.2 Pro + Office 2003( + SP3) - WindowsXP Pro( + SP3 + WindowsUpdate) +
Acrobat 9.3.2 Extended + Office 2003( + SP3)
< 戻る >
