TOP > AcroExch.App > MenuItemExecute [...]
説明
Acrobatアプリケーションのメニュー項目を実行します。
但し、そのメニュー項目が実行可能状態(=Enabled)に成っている必要があります。
形式
VARIANT_BOOL MenuItemExecute(BSTR szMenuItemName);
引数
- 第1引数(szMenuItemName):Acrobatアプリケーションにあるメニュー項目名。
詳細はMenu and Toolbar Button Names 一覧 を参照。
戻り値
- -1 : True(真)で成功した。
- 0 : False(偽)で失敗した。
動作するバージョン
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.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 = 動作しない。
- - = 未確認。
サンプル:ExcelのVBA
説明:PDFファイルを開いて、印刷ダイアログボックスを画面表示する。
- 参照設定を事前に行う。
- 以下のサンプルはテスト用です。
F8キーでステップ実行して動作確認します。
001 Sub AcroExch_App_MenuItemExecute()
002 On Error GoTo AcroExch_App_MenuItemExecute_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
015
016 'Acrobat 7,8,9,10,11 の時
017 Dim objAcroApp As New Acrobat.AcroApp
018 Dim objAcroPDDoc As New Acrobat.AcroPDDoc
019 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
020
021 '以降はAcrobat全て共通
022 Dim lRet As Long '戻り値
023 Const CON_PDF_FILE = "C:\work\Test01.pdf"
024
025 lRet = objAcroApp.Show
026 lRet = objAcroPDDoc.Open(CON_PDF_FILE)
027 objAcroPDDoc.OpenAVDoc CON_PDF_FILE
028 '[印刷]メニューが有るか(使えるか)チェックする
029 lRet = objAcroApp.MenuItemIsEnabled("Print")
030 If lRet = True Then
031 '実行可能です
032 lRet = objAcroApp.MenuItemExecute("Print")
033 '印刷ダイアログを閉じるまで次のステートメントは
034 '実行されない。
035 End If
036
037 lRet = objAcroApp.CloseAllDocs
038 'アプリケーションの終了
039 lRet = objAcroApp.Hide
040 lRet = objAcroApp.Exit
041
042 AcroExch_App_MenuItemExecute_SKIP:
043 'オブジェクトの強制開放
044 Set objAcroAVDoc = Nothing
045 Set objAcroPDDoc = Nothing
046 Set objAcroApp = Nothing
047 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
補足
- 引数はメニュー項目の名前を指定します。
例:PageSetup,Print,NewBookMark,Edit,SelectAll,Copy,Open,SaveAs etc. - 「AcroExch.App:MenuItemIsEnabled メソッド」で実行可能をチェックする必要があります。
- 「MenuItemIsEnabledメソッドで実行できるメニュー項目」も参照。
- このサンプルの実行結果で以下の画面が表示される。
注意:画面表示だけです。印刷はしません。 - このメソッドはAcrobatのFAQ「技術上の制約やライセンス上の制約」で問題点に上がっている。
使用するには再確認が必要です。
「Developer FAQ / Acrobat Developer support / Adobe Acrobat 8.0 SDK」Acro_faq.pdf 12頁より。 - 以下は実行OK ※Acrobat v8.2.1
"NewBookmark":しおり作成、"Web2PDF:OpnURL":WEBぺーじからPDFを作成、”SAVEAS” 、”Scan” - 以下は実行不可 ※Acrobat v8.2.1
”Highlight” 、”DigSig:ToolsDiff ”、”Hilite”、”highlights”、”highlighted”
動作確認環境
- 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)
Adobe Web 解説 URL(英語) v9.1
< 戻る >
ブラウザ画面の文字サイズを変更するショートカットキー
|
いつも、参考にさせていただいています。
あまりに初歩的な質問で恐縮ですが、MenuItemExecute (Web2PDF:OpenURL)を使ったサンプルファイルを作ってください。
URLからPDFを作成し、保存したいだけなのですが、なかなか、うまく動きません。 lRet = objAcroApp.MenuItemIsEnabled("Web2PDF") で、TRUEすら返ってこない状況です。よろしくお願いいたします。
倉崎さんへ。
MenuItemIsEnabled("Web2PDF")
MenuItemExecute (Web2PDF:OpenURL)
では無く
MenuItemIsEnabled("Web2PDF:OpnURL")
MenuItemExecute("Web2PDF:OpnURL")
が正解です。
OpenURL は間違いで OpnURL が正解です。 e は入りません。
メニュー項目名はパンチせず、該当ページからコピーして下さい。
それと
>・・URLからPDFを作成し、保存したいだけ・・
「だけ」とは言っても人間の言う事をPCにやらせるのは大変な事です。
上記のMenuItemExecuteメソッドだけを実行してもURLをPDF化することは出来ません。
PDF化する為のダイアログ画面を表示する「だけ」です。
ただ、ヒントは有ります。
Acrobat のアクション、バッチ処理を実行する (Acrobat 6~10)
これと同じ手法を使えば出来ます。(タブン)
ですが、作成にはかなりの時間を要するでしょう。
上記の手法を使えるようになるまで1週間以上は掛かりました。
>サンプルファイルを作ってください。
1つのメニューに対するサンプルは量的に無理です。
アドバイス、ありがとうございました。
いろいろと、試してみます。
また、よろしくお願いいたします。
はじめまして、いつも参考にさせていただいております。
ExcelVBAでPDFファイルの操作を行うプログラムを作っているのですが、
引数にPageSetUpを使うことで、PDFファイルの用紙サイズを変更することは可能でしょうか。
行いたい処理としては、
既存PDFファイルの用紙サイズをA4からA3へ変更し、別名で保存(もしくは上書き保存)する、となります。
ExcelもしくはWordファイルをPDF変換する際に用紙サイズ設定を行うことは出来ているのですが、
既存のPDFファイルの用紙サイズの変更が色々と調べているのですが良い方法が見つからずにおります。
突然で申し訳ありませんが、どうぞよろしくお願いいたします。
Eby さん はじめまして。
イロイロと検証してみましたが、ご希望の内容は当サイトには存在しません。PageSetUpでも無理です。残念ですが。
ご回答ありがとうございます、またお手数をおかけして申し訳ありません。
やはり難しいということがわかっただけでも質問させていただいて良かったです。
今後も参考にさせていただきます、ありがとうございました。