TOP > AcroExch.PDPage > *
説明
ページ指定された注釈のインデックス(頁注釈配列の中)を返します。
形式
long GetAnnotIndex(LPDISPATCH iPDAnnot);
引数
- 第1引数(LPDISPATCH iPDAnnot) :
注釈オブジェクト(PDAnnot)を指定します。
戻り値
- ページ指定された注釈のインデックス値。
動作するバージョン
| 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 | NO | 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
GetAnnotIndex メソッドの結果を検証します。
以下サンプルは動作が不安定です。F8でステップ実行すれば正常に動作しましたが、F5で一気に実行すると失敗します。
- 事前に参照設定をします。
- F8キーでステップ実行しながら動作確認します。
001 Sub AcroExch_PDPage_GetAnnotIndex()
002
003 Debug.Print "TEST_PDPage_GetAnnotIndex:" & Now
004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
005 Dim objAcroPDPage As Acrobat.AcroPDPage
006 Dim objAcroAVPageView As Acrobat.AcroAVPageView
007 Dim objAcroPdAnnot As Acrobat.AcroPDAnnot
008
009 Dim lAnnots, i, lIndex As Long
010 Dim lRet As Long
011
012 'PDFドキュメントを開く
013 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "")
014 'AVPageViewを取得する
015 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
016 '先頭ページへ移動(表示)する
017 lRet = objAcroAVPageView.Goto(0)
018 Set objAcroPDPage = objAcroAVPageView.GetPage()
019
020 'ページ上に有る注釈数を得る
021 lAnnots = objAcroPDPage.GetNumAnnots
022 For i = 0 To lAnnots - 1
023 '該当ページから注釈オブジェクト(i)を作成する
024 Set objAcroPdAnnot = objAcroPDPage.GetAnnot(i)
025 '該当注釈のインデックスを取得する ★バグ?
026 lIndex = objAcroPDPage.GetAnnotIndex(objAcroPdAnnot)
027 Debug.Print i & ":" & " Index=" & lIndex
028 ' Debug.Print i & ":" & lIndex & " - " & _
029 ' objAcroPdAnnot.GetContents
030 ' Debug.Print i & ":" & lIndex & " - " & _
031 ' objAcroPdAnnot.GetSubtype
032 Next i
033
034 'PDFファイルを保存しないで閉じる
035 lRet = objAcroAVDoc.Close(1)
036
037 'オブジェクトを強制解放する
038 Set objAcroAVPageView = Nothing
039 Set objAcroAVDoc = Nothing
040 Set objAcroPDPage = Nothing
041 Set objAcroPdAnnot = Nothing
042
043 End Sub
実行結果
以下はExcelのVBA開発環境のイミディエイトウィンドウの内容です。
TEST_PDPage_GetAnnotIndex:2008/07/25 9:39:07
0: Index=0
1: Index=1
2: Index=0
3: Index=1
TEST_PDPage_GetAnnotIndex:2008/07/25 9:39:43
0: Index=0
1: Index=1
2: Index=2
3: Index=3
2回実行しました。1回目はF5で一気に実行。2回目はF8でステップ実行。2回目は正常処理です。
補足
- GetAnnotIndexメソッドは使用しない事をお薦めします。
Adobe Web 解説
OLE Automation / AcroExch.PDPage / GetAnnotIndex (公式サイト・英語)
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >