TOP > AcroExch.PDAnnot > Perform [...]
説明
PDFファイル上のリンク注釈の動作を実行します。
つまりリンク先に移動します。
形式
VARIANT_BOOL Perform(LPDISPATCH iAcroAVDoc);
引数
- 第1引数(LPDISPATCH iAcroAVDoc) :
開いているAcroAVDoctオブジェクト。
戻り値
- -1 : 正常に実行された。
- 0 : 正常に実行させなかった。
動作するバージョン
Version | Adobe Acrobat | 備考 |
---|---|---|
4 | - | Acrobat 4.0 ※Windows 98SE + Excel 2000 |
5 | - | Acrobat 5.0.5 |
6 | - | 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 |
10 | - | Acrobat X (10.1.8) Extended |
11 | - | Acrobat XI (11.0.04) Extended |
- OK = 動作する。
- NO = 動作しない。 戻り値が0を返す。
- - = 未確認。
サンプル:ExcelのVBA
説明:PDFファイルの目次ページ上にあるリンク注釈を全て実行します。
- F8キーでステップ実行しながら動作確認する。又はF5キーで実行してもいいです。
- 事前に参照設定をする。
001 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
002
003 Sub AcroExch_PDAnnot_Perform()
004
005 Debug.Print "AcroExch_PDAnnot_Perform:" & Now
006 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
007 Dim objAcroAVPageView As Acrobat.AcroAVPageView
008 Dim objAcroPDDoc As Acrobat.AcroPDDoc
009 Dim objAcroPDPage As Acrobat.AcroPDPage
010 Dim objAcroPDAnnot As Acrobat.AcroPDAnnot
011 Dim lRet As Long '戻り値
012 Dim lAnnotsCnt As Long '注釈数
013 Dim j As Long '添え字
014 Dim lTextCnt As Long '件数
015 Const lPage = 2 '目次ページ番号
016
017 lTextCnt = 0
018 'PDFドキュメントを開いて表示する
019 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "")
020 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
021 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
022 '3ページ目のページオブジェクトを得る ★注意①
023 Set objAcroPDPage = objAcroPDDoc.AcquirePage(lPage)
024 'ページに存在する注釈数を得る
025 lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1
026 Debug.Print "全注釈数=" & (lAnnotsCnt + 1)
027 For j = 0 To lAnnotsCnt
028 Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j)
029 'PDFビュアーのページを移動させる
030 lRet = objAcroAVPageView.Goto(lPage) '(TEST用)
031 Call Sleep(500) '(TEST用)
032 If objAcroPDAnnot.GetSubtype = "Link" Then
033 lRet = objAcroPDAnnot.Perform(objAcroAVDoc)
034 lTextCnt = lTextCnt + 1
035 If lRet <> -1 Then
036 Debug.Print "Perform=False(" & lRet & ")"
037 End If
038 Call Sleep(500) '(TEST用)
039 End If
040 Next j
041 Debug.Print "実行件数=" & lTextCnt
042
043 'PDFファイルを保存しないで閉じる
044 lRet = objAcroAVDoc.Close(1)
045 'オブジェクトを強制解放する
046 Set objAcroAVDoc = Nothing
047 Set objAcroAVPageView = Nothing
048 Set objAcroPDAnnot = Nothing
049 Set objAcroPDPage = Nothing
050 Set objAcroPDDoc = Nothing
051
052 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
実行結果

TEST_PDAnnot_Perform:2008/08/19 21:04:43
全注釈数=41
実行件数=39
補足
- 3ページ目にリンク注釈がある頁をテストに使用しました。
- 上記サンプルはテストの動きが判りやすいようにSleep関数が入っています。
実用時には不要なので削除して下さい。 - ここで言っている「リンク注釈」とは、テキスト注釈とは全く異なります。
PDFドキュメント上にある透明テキストにリンク情報を持たせたものです。
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >