AcroExch.PDDoc: ClearFlags メソッド

TOP > AcroExch.PDDoc > ClearFlags      [...]


説明

文書フラグをクリアします。

文書フラグはビット単位でクリアします。

但し、クリア出来ない場合や連鎖反応して他の文書フラグもクリアされる場合が有ります。

 

形式

VARIANT_BOOL ClearFlags(long nFlags);

 

引数

  1. 第一引数 (long nFlags):
    文書フラグの定数を指定する。
    PDDocWasRepaired, PDDocNewMajorVersion, PDDocNewMinorVersion, PDDocOldVersion 等。

 

戻り値

  • 戻り値は常に、-1 が返される。

 

動作するバージョン

Version Adobe
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

説明: AcroPDDocオブジェクトを作成して、動作確認をする。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
  • 以下のサンプルはAcrobatアプリケーションを画面表示しないで行っています。

 

Sub AcroExch_PDDoc_ClearFlags()

    'Acrobatオブジェクトの定義&作成
    'Acrobat 4,5,6 の時
'    Dim objAcroApp   As Acrobat.CAcroApp
'    Dim objAcroAVDoc As Acrobat.CAcroAVDoc
'    Dim objAcroPDDoc As Acrobat.CAcroPDDoc
'    Set objAcroApp = CreateObject("AcroExch.App")
'    Set objAcroAVDoc = CreateObject("AcroExch.AVDoc")
    
    'Acrobat 7,8,9,10,11 の時
    Dim objAcroApp As New Acrobat.AcroApp
    Dim objAcroAVDoc As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc As Acrobat.AcroPDDoc

    '以降はAcrobat全て共通
    Dim lRet As Long    '戻り値
    
    '①PDFファイルを開く。(メモリ上)
    lRet = objAcroAVDoc.Open("C:¥work¥Test01.pdf", "")
    '②Acrobatアプリケーションを起動し、画面表示する。
    'lRet = objAcroApp.Show
    
    'PDDocオブジェクトを取得する。
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
    'PDDocオブジェクトのGetFlagsメソッドの戻り値を表示する。
    Debug.Print "AcroPDDoc.GetFlags(1)=" & objAcroPDDoc.GetFlags()
    
    'ページ3から4を削除する
    lRet = objAcroPDDoc.DeletePages(2, 3)
    Debug.Print "AcroPDDoc.GetFlags(2)=" & objAcroPDDoc.GetFlags()
    
    lRet = objAcroPDDoc.ClearFlags(PDDocOldVersion)
    Debug.Print "AcroPDDoc.GetFlags(3)=" & objAcroPDDoc.GetFlags()
    
    lRet = objAcroPDDoc.ClearFlags(PDDocNeedsSave)
    Debug.Print "AcroPDDoc.GetFlags(4)=" & objAcroPDDoc.GetFlags()
    
    lRet = objAcroPDDoc.ClearFlags(PDDocIsModified)
    Debug.Print "AcroPDDoc.GetFlags(5)=" & objAcroPDDoc.GetFlags()
    
    lRet = objAcroPDDoc.ClearFlags(PDDocOldVersion + _
                                   PDDocNeedsSave + _
                                   PDDocIsModified)

    Debug.Print "AcroPDDoc.GetFlags(6)=" & objAcroPDDoc.GetFlags()
    
    'PDFファイルを閉じます。
    lRet = objAcroAVDoc.Close(1)
    'PDDocオブジェクトのGetFlagsメソッドの戻り値を表示する。
    '※以下のGetFlags()はAcrobat v4,v5,v6では実行エラーになる
    Debug.Print "AcroPDDoc.GetFlags(9)=" & objAcroPDDoc.GetFlags()
    
    'Acrobatアプリケーションを終了する。
    'lRet = objAcroApp.Hide
    lRet = objAcroApp.Exit

    'オブジェクトを強制解放する
    Set objAcroPDDoc = Nothing
    Set objAcroAVDoc = Nothing
    Set objAcroApp = Nothing

End Sub

 

実行結果

PDFファイル(Test01.pdf)のPDFバージョンは「1.3」を使用しました。

 

▼ Acrobat v4.0 の結果

※1029=1024+4+1

AcroPDDoc.GetFlags(1)=1024
AcroPDDoc.GetFlags(2)=1029
AcroPDDoc.GetFlags(3)=1029
AcroPDDoc.GetFlags(4)=1024
AcroPDDoc.GetFlags(5)=1024
AcroPDDoc.GetFlags(6)=1024

▼ Acrobat v5.0 の結果

※1152=1024+128
※1157=1024+128+4+1

AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152

▼ Acrobat v6.0 の結果

AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152

▼ Acrobat v7.0 の結果

AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
AcroPDDoc.GetFlags(9)=0

▼ Acrobat v8.0 の結果

AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
AcroPDDoc.GetFlags(9)=0

▼ Acrobat v9.0 の結果

AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
AcroPDDoc.GetFlags(9)=0

 

補足

  • 第一引数の値は数値でも指定できるが、ミスをする可能性が有るので、定数を使用する。

 

注意

  • Acrobat v4.0 ~ Acrobat v6.0 ではCloseメソッドを実行した後にGetFlagsを実行するとOLEオートメーションの実行エラーになる。
    GetFlagsメソッド実行時の実行エラー 
    実行時エラー'-2147417851 (80010105)':
    オートメーション エラーです。
    サーバーによる例外が返されました。
  • Acrobat v7.0 ~ Acrobat v9.0 ではCloseメソッドを実行した後にGetFlagsメソッドを実行すると、戻り値は「0」になる。
  • PDDocOldVersion(値:128)はクリア出来ません。
  • PDDocIsModified(値:4)をクリアすると、同時にPDDocNeedsSave(値:1)もクリアされます。
    この逆も発生します。

 

動作確認環境

  • Windows98SE( + WindowsUpdate)
    + Acrobat 4.0 + Office 2000
  • WindowsXP Pro( + SP3 + WindowsUpdate)
    + Acrobat 5.0.5 + Office 2003( + SP3)
  • 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)

 

Adobe Web 解説 URL(英語) v9.1

http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/IAC_API_OLE_Objects.103.102.html

 

戻る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください