TOP > *
説明
Acrobatアプリケーションの指定されたメニュー項目が使用可能かをチェックします。メニュー項目が存在するかのチェックでは無く、使用可能状態(=Enabled)になっているかをチェックする点に注意が必要です。
例:ファイルメニューにある「印刷」はPDFドキュメントを開いて、セキュリティ上で印刷が許可されてないと灰色の状態で、選択(使用)出来ないです。つまり使用可能状態(=Enabled)では無い事を意味します。
形式
VARIANT_BOOL MenuItemIsEnabled(BSTR szMenuItemName);
引数
- 第1引数(BSTR szMenuItemName):
Acrobatアプリケーションのメニュー項目を英文字で指定します。
詳細は「AcrobatのMenu and Toolbar Button Names 一覧」を参照。
戻り値
- -1 : True(真)で成功した。
- 0 : False(偽)で失敗した。
動作するバージョン
| 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.1 Pro |
| 9 | OK | Acrobat 9.3.1 Extended ※レジストリに情報無し |
| 10 | ― | Acrobat X (10.1.8) Extended |
| 11 | ― | Acrobat XI (11.0.04) Extended |
- OK:動作します。
- NO:動作しない。
- ―:未確認。
※レジストリに情報無し=[HKEY_LOCAL_MACHINE¥SOFTWARE¥Policies¥Adobe¥Adobe Acrobat¥8.0¥FeatureLockDown¥cDefaultExecMenuItems] 無し
サンプル:ExcelのVBA
Acrobatアプリケーションで印刷が出来るかをチェックします。
- 参照設定を事前に行ないます。
- 以下のサンプルはテスト用です。F8キーでステップ実行して動作確認します。
001 Sub AcroExch_App_MenuItemIsEnabled()
002 On Error GoTo AcroExch_App_MenuItemIsEnabled_SKIP
003
004 'Acrobatオブジェクトの定義&作成
005 'Acrobat 4,5,6 の時
006 Dim objAcroApp As Acrobat.CAcroApp
007 Dim objAcroPDDoc As Acrobat.CAcroPDDoc
008 Dim objAcroAVDoc As Acrobat.CAcroAVDoc
009
010 Set objAcroApp = CreateObject("AcroExch.App")
011 Set objAcroPDDoc = CreateObject("AcroExch.PDDoc")
012 Set objAcroAVDoc = CreateObject("AcroExch.AVDoc")
013
014 'Acrobat 7,8,9,.10,11 の時
015 ' Dim objAcroApp As New Acrobat.AcroApp
016 ' Dim objAcroPDDoc As New Acrobat.AcroPDDoc
017 ' Dim objAcroAVDoc As New Acrobat.AcroAVDoc
018
019 '以降はAcrobat全て共通
020 Dim lRet As Long '戻り値
021 Const CON_PDF_FILE = "C:\work\Test01.pdf"
022
023 lRet = objAcroApp.Show
024 lRet = objAcroPDDoc.Open(CON_PDF_FILE)
025 objAcroPDDoc.OpenAVDoc CON_PDF_FILE
026 lRet = objAcroApp.MenuItemIsEnabled("Print")
027
028 'PDFファイルを変更無しで閉じます。※TEST用
029 lRet = objAcroAVDoc.Close(1)
030 'アプリケーションの終了
031 lRet = objAcroApp.Hide
032 lRet = objAcroApp.Exit
033
034 AcroExch_App_MenuItemIsEnabled_SKIP:
035 'オブジェクトの強制開放
036 Set objAcroAVDoc = Nothing
037 Set objAcroPDDoc = Nothing
038 Set objAcroApp = Nothing
039 End Sub
補足
- 第一引数はレジストリにある HKEY_LOCAL_MACHINE¥SOFTWARE¥Policies¥Adobe¥Adobe Acrobat¥8.0¥FeatureLockDown¥cDefaultExecMenuItems¥tWhiteList にある文字列を指定します。
「AcrobatのMenu and Toolbar Button Names 一覧」を参照。
注意:↑上記は管理人が勝手に判断(想像)した解釈です。 - 引数はメニュー項目の名前を指定します。
例:PageSetup,Print,NewBookMark,Edit,SelectAll,Copy、Open、SaveAs etc.
参照:このメニュー項目に関しては
「AcrobatのMenu and Toolbar Button Names 一覧」も見て下さい。 - このメソッドはメニュー項目を使う前に使用可能かを事前にチェックするのに使います。
- 上記VBAサンプルの場合はPDFファイルを開いているのでTrueが戻り値になります。何もPDFファイルが開いてない時はFalseが戻り値になります。
- lRet = objAcroApp.MenuItemIsEnabled("NextPage")
上記ステートメントは次ページが使用可能状態になっているかをチェックします。最終ページで実行するとFalseが戻り値になります。
Adobe Web 解説
OLE Automation / AcroExch.App / MenuItemIsEnabled (公式サイト・英語)
作確認環境
- 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 - 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.1 Pro + Office 2003( + SP3) - WindowsXP Pro( + SP3 + WindowsUpdate) +
Acrobat 9.3.1 Extended + Office 2003( + SP3)
< 戻る >