▼ サイトの紹介
このサイトはExcel VBAから、Acrobat アプリケーションをプログラミング操作するOLE機能について解説しています。
Adobe社はこのOLE機能の事を「IAC」と表現しています。
(注意:Adobe Readerだけでは使用出来ません)
Adobe社提供のSDK資料を元にサンプルを加えて説明をしています。
サイト管理人もご覧下さい。
▼ 当サイトの使い方
当サイトをうまく使う上での手順を以下に示します。
- 最初に「Acrobat SDK:OLE objects and methods図を入手する」にあるオブジェクト連携図を手に入れます。出来れば印刷する方が見やすいです。1頁です。
- 下記の「Excel」、「Acrobat」、「ダウンロード」、「SDK」、「備考」にサッと目を通します。「その他&メモ」は特に見なくてもイイです。
- 自分が目的とする処理を探しながら、印刷したオブジェクト連携図を元にサイト右記「Object & List」下を上からクリックしてザックリと内容を見ます。各オブジェクトのメソッドの詳細は後にして全体で何が出来て、何が出来ない(サポートされていない)かを把握します。
「Acobat OLE 以外の選択」も見て下さい。 - 目的が解決出来ない時は、キッパリとあきらめてAdobe社の日本語「Acrobatフォーラム」で相談します。当サイトより質が高い。
- それでもダメなら、当サイトにコメントを入れてみます。サイト管理人がある程度、判る範囲でお答えをします。
(お願い:管理人を「様」での呼び方はご遠慮下さい。管理人さん、で十分です。)
▼ Excel
- Excel からAcrobatを操作する訳
- Excel から PDFファイル を作成&操作出来る
- Excel のオブジェクトブラウザ
- Excel からAcrobatを起動する
- Excel からPDFファイルを起動表示する
- Excel サンプル:PDFの文書プロパティを表示する
- 上記7のサンプルファイルの実行エラー
- Excel VBA 実行エラー時のメッセージ
- Excel でOLEの参照設定をする
- Excel でOLEの参照設定をする (AFormAut の追加)
- Excel でOLEの参照設定をする (Stream の追加)
- Excel でOLEの参照設定をする (MSXMLの追加)
▼ Acrobat
- Acrobat SDK:OLE objects and methods図を入手する
ここで示す図は必ず入手する必要があります。
これが無いとオブジェクト連携が判らなく、OLE(IAC)操作が出来ません。 - Acrobatアプリケーションを閉じる(実は簡単に出来ない)
- Acrobat OLEのエラーを防ぐVBAロジック
- Acrobat OLE 使用上の注意事項
- Acrobatプログラミングにおける技術上の制約やライセンス上の制約
- PDFファイルを作成、及び操作する開発者に対しての注意事項
- Windows のコマンドラインから Acrobat や Adobe Reader を使用して印刷する方法
- PDFドキュメントの文書フラグとは
- PDF バージョンとは
- PDFバージョンの変化
- ExportTask.xml
- 一括で複数ファイルを処理(アクション、バッチ処理)
- PDF の3つのパスワード
- PDFのパスワードは32文字まで
- 印刷の問題点を解決
- PDF内での座標の起点
- Acrobatとレジストリ
- PDF上のテキストとその座標
▼ ダウンロード
- 各種サンプルのダウンロード
- Adobe Acrobat 9.1 SDK のダウンロード
SDKをダウンロードしてサンプル、解説PDF,HTML等を入手する必要があります。
Adobe Acrobat X SDK のダウンロード情報も入ってます。 - Adobe Acrobat 8.1 SDK のダウンロード
この 8.1 バージョンのSDKは現時点(2013/10/03)で一般公開されてません。
情報が入り次第、掲載します。 - Acrobat製品別ダウンロード先 URL
- AcroPDFLib.AxAcroPDF:Excel VBAサンプル(A)
- AcroPDFLib.AxAcroPDF:Excel VBAサンプル(B)
- Adobe Readerの各種バージョンのダウンロード
▼ SDK
- AcrobatプログラミングにおけるMenu and Toolbar Button Names 一覧
- PDDocのGetJsObjectのオブジェクト構造図が見当たらない
- Acrobat SDK:正誤表
Acrobat SDK v8.1ドキュメントに記載ミスが有ります。 - Acrobatに関するSDKが Acrobat Developer Center からダウンロード出来ます。
- Acrobat JavaScript における「Safe Path:セーフパス」についての注意事項
- Acrobat SDK公開Webサイト URLの取得方法
▼ 備考
- JavaScriptの解説はAcrobat v7 v8 共に英語版です。しかし、旧バージョンですがコメントを頂いた方から日本語版のAcrobat JavaScript解説PDFが見つかりました。以下がそのPDFです。
http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf - [2009/1/7] AcroExch.AVDoc:Open メソッド でバグ?を発見しました。Acrobat v8.1.3 v9.0が対象です。
▼ その他&メモ
- OCR機能:読んde!ココと比較した結果
- アドビ(Adobe)製品に関するRSSの情報
- 添付ファイルの扱いには注意が必要
- AcrobatはPDF作成ソフトの標準では無くなる?
- Acrobat PDF は国際標準化された
- 「手書きPDF入門」 リンク
- planet pdf (PDF関連の英語サイト) リンク
- デフォルトプリンタを一時的に変更する方法
- Delphi(デルファイ,デルフィ)言語からの使用方法
- Acrobat使用時のレジストリ変化を取得する方法
- オブジェクトは値では無く、参照情報を持つ
- Adobe Reader で PDF ファイルを表示 / 印刷する方法
- サンプル:RGB値の一覧(カラー番号)
- 「・・このバージョンの Acrobat ではサポートされていない新しい形式・・」警告メッセージへの対応
▼日本語の資料
日本語版で公開されている技術情報が非常に少なく、また対応バージョンも古く、作成年度も古いのが多いです。しかし、PDF 又はAcrobat のエンジニア向けの基本的な技術はこの10年間はそれ程進歩していません。よって思った以上に使える事に気がつくはずです。
公開されている情報は今後消滅すると予想されます。必要な情報はバックアップする事をお勧めします。
▼ Acrobat SDK 関連
Acrobat JavaScript Object Specification バージョン 5.0.5テクニカルノート# 5186 改訂日:2001年9月14日
(297頁) Acrobat 5.0 JavaScript リファレンスマニュアル。
PDF ドキュメントでJavaScript を使用するために必要なすべての情報。
※2018/10 リンク先は消滅しました。- Developing Acrobat Applications Using JavaScript
Adobe Acrobat SDK バージョン 8.0
(220頁) JavaScript を使用してAdobe Acrobat での開発や拡張したりする方法について
説明したマニュアル。必読! - JavaScript for Acrobat 3D Annotations API Reference
Adobe Acrobat SDK 2007年4月バージョン 8.1
(105頁) 3D 機能(3D注釈のJavaScript API)をユーザに提供したい開発者を対象にしたマニュアル - Parameters for Opening PDF Files(日本語版)
Adobe Acrobat SDK Version 8.1 April 2007
(8頁) PDF ファイルをURL やコマンドの中で開く際に使用できるパラメータについて説明したマニュアル - Adobe Acrobat Workshop
(78頁) Acrobat 7.0 JavaScript、API、IAC等の開発環境に関する概念の説明図 - Adobe Acrobat 7.0 Acrobat JavaScript Scripting Guide 2005年1月7日
(276頁) Acrobat JavaScript を使用して開発したり拡張したりする方法について簡単に説明ししたもの - Programming Acrobat JavaScript Using Visual Basic
Technical Note #5417 バージョン:Acrobat 6.0 2003年5月
(14頁) Acrobat 6.0 提供のJSObject と言うOLE オートメーション機能のプログラミング環境に関しての概念を説明したもの - Acrobat JavaScript Scripting Guide
Technical Note #5430 バージョン:Acrobat 6.0 2003年5月
(90頁) Acrobat 6 Pro に搭載されている JavaScript 開発環境を使用して Acrobat アプリケーションを開発したり拡張したりする方法を簡単にまとめたもの - Upgrading Plug-ins From Acrobat 5 to Acrobat 6
Technical Note #5424 バージョン:Acrobat 6.0 2003年7月
(28頁) Acrobat 6 API の概要を説明し、Acrobat 5 およびそれ以前のプラグインを Acrobat 6 にアップグレードする際に開発者が理解しておくべきことについて説明したマニュアル - Adobe® Solutions Network Developer Program FAQ for Members
Version 3.0 MAY 2002
(461頁) ASNディベロッパーサポートプログラム会員から頂いたAcrobat Plug-in API,IAC,Readerに関する質問を整理した情報 - Acrobat Developer FAQ
Adobe Developer Relations 改定:1999年9月2日
(37頁) 質問および回答形式を整理した情報 - Parameters for Opening PDF Files(日本語版)
Adobe Acrobat SDK Version 8.1 April 2007
(24頁) Acrobat SDK でよくある質問と回答を整理したもの - Adobe Acrobat 7.0 Acrobat SDK ユーザガイド 2004年12月14日
(124頁) Acrobat SDKで提供されている機能、Acrobatで提供されている機能とその操作説明等 - JavaScript for Acrobat API Reference
Adobe Acrobat SDK バージョン 8.0
(765頁) Acrobat JavaScript の詳細な解説書/リファレンス
▼ Acrobat 一般資料
- Adobe Acrobat Security ディベロッパーサポート 2005年4月7日
(43頁) Acrobat 7.0 の各種セキュリティに関する概念
管理人の独り言
- 2010/4/26 「Appメソッド一覧」移行完了。かなり見直したので、結構解説が難しくなってしまったかも・・。全部の移行が完了したら、再度見直す事にして、次に行きます。
- 2010/5/14 データの移行と再リンクが終わりました(汗)。サイトマップの構成も少し見直して・・。後は見直し(リニューアル)する必要有り。OLE(IAC)の全貌が判った時点で細かい部分の追加が必要となった。各頁にかなりの追加と再テストが必要だが既に環境は出来あがっている。本当の踏ん張ると事はココからかもしれない。
- 2010/5/18 Appオブジェクトの移行が完了しました。
- 2012/11/12 AFormAut オブジェクトが IAC に含まれていない盲点に orz
- 2013/10/14 JavaScriptAPIと言う当サイト独自の表現を JSObject と本来の表現に変更する。
- 2015/5/9 サイトのレイアウトを変更。
▼ Acobat OLE 以外の選択
Adobe Acrobat OLE(IAC)以外で、PDFファイルをプログラミング操作する情報を以下に提供します。
VBA の Shell 関数(又はWscriptのExec関数)で起動する事により、IACには無い機能で複数ファイルの自動化処理が可能だと思われます。
- Qpdf
PDF をコマンドラインで操作するツール
セキュリティ(パスワード)の設定が出来る! - Poppler
PDF をコマンドラインで操作するツール
Xpdf をペースした機能拡張版
注意:公式サイトからはWin版EXEは配布されてません。 - pdf2htmlEX
PDF をHTMLへ変換する高性能なツール - Coherent PDF Command Line Tools
非常に多機能なコマンドラインツール
ライセンスに注意が必要 - Xpdf
PDF をコマンドラインで操作するツール
Popplerの旧バージョン。安定版。 - PDFtk * ※検証予定(時期未定)
PDF をコマンドラインで操作するツール - PDFill PDF Writer: PDF作成ツール
コマンドラインの使用は有償版のみ。
無償版と有償版。表示は英語。 - ★その他の各種ソフトとツール★
各種のPDFソフトウェアを一覧でまとめたサイトです。
たぶん、ココの情報が最新で内容も充実してると思われます。
[コメント入力] <-をクリックするとページの最後にコメント入力が出来ます。
名前(ニックネーム)は必須。メールアドレス(非表示)も必須ですが、適当で結構です。
【更新日:2019/06/05 (11版)】
管理人様
いつもお世話になっております。
先日はご回答いただきありがとうございます。
パスワードをかける際ですが、パスワードの長さに制限はありますでしょうか。
今、最終試験を行っておりますが、パスワードをかけたファイルが一致しないパスワードを入力しても開けてしまう現象が発生しています。
お手数をおかけしますが、ご確認のほどよろしくお願いいたします。
NAO さんへ
とりあえず判った範囲で返答します。
QPDFでパスワードを掛けたPDFに対して、イロイロと再現テストをしたら、確かに短いパスワードでも開く事を確認しました。
同様にAdobe Acrobat XI Proアプリ本体でもパスワードを掛けてみました。
パスワードは Acrobat 7.0互換 128-bit AESです。(40では無いです。)
結果は同じで短いパスワードでも開きます。
よって、これはPDFファイル本体のパスワード・セキュリティの問題と推測されます。
それで対策案も考えてみました。
パスワードのキー長を40bitから256bitにすると短いパスワードで開かなくなります。
qpdf.exe --encrypt youser@pass "" 256 -- in.pdf in-pass.pdf
但し、これでも完璧かは確認できない。(・・
以上はQPDFコマンドライン・ツールの話です。
スイマセン。時間切れです。
パスワード関連もセキュリティ関連の話も詳しくないので、全て1つ1つ調べながら返答しています。
最後に Cpdf でもパスワードは掛けれます。
Acrobat X互換の256ビットAES暗号化(AES256ISO)。
cpdf -encrypt AES256ISO youser@pass charles in.pdf -o in-pass.pdf
NAO さんへ
パスワードの文字数が32文字までは 40 bit でも大丈夫でした。
キー長(bit)を上げると、PDFを見れる Acrobat Reader のバージョンが上がってしまいます。まだまだ低いバージョンのPDFビュアー(Acrobat Reader等)を使っているユーザーがいますから、その点を考慮する必要があるのではないかと思っています。
逆にその方がイイのなら bit を上げた方がイイでしょう。
長いパスワード(50文字以上?)を設定して、実際に使う時は48文字でも開けてしまう件をネット検索してみましたが、それらしき情報は無かったです。ひょっとして誰も気が付いてない?のではないでしょうか。
この長いパスワードの件は人力での調査はチョット不可能です。出来たら検証プログラムを作ろうかと検討しています。
昨日から調査した結果をひとまず、ご連絡します。
<22:11 追加>
31文字でした。人力調査です。
この現象はユーザーパスワード、オーナーパスワード共に同じ現象です。
検証プログラムで調査出来る事がある程度は推測できたので、もう一度、最初から見直して、そしてチョット時間を置いて、それから再度検証を行います。
重要な部分です。焦ると見落とす事が結構有るので、こうゆう場合は途中で少し時間を置く様に心がけています。
<2017/10/05 22:49 追加>
検証プログラムを作りました。
訂正します。32文字までです。
暗号化方式は「40、128」のどちらでも良いです。下位の互換性を考えると「40」がイイかもしれません。
なお、この結果は(再検証後に)後日まとめページを追加する予定です。
以上、報告します。
管理人さんへ
このサイトを作っていただき,ありがとうございます。
エクセルのマクロを勉強し始めて1ヶ月弱の,完全な初心者の私でもPDFのテキストを検索して検索語句に該当するページを抽出することが出来ました。あまり理解はできてないのですが…一応動くモノが作れました。日常的な事務作業が自動化でき,業務が効率化されました。なんとお礼を申し上げて良いのかわかりませんが,一応コメントさせて頂きます。
masahiko さん はじめまして。
当サイトの目的はまさに「自動化」です。
お役に立ったみたいでホント嬉しいです。 v(^_^)
管理人さんへ
2月初めにこのサイトに入らせていただきました。PDFの扱い満載なので驚いております。これからいろいろと参考にさせていただきます。
ところでひとつ悩んでいることがあります。PDF内のあるテキストを検索すして、それにファイルへのリンクを埋め込みたいと思うのですが、リンクを埋めるのにはどのようにしたらよいのでしょうか、よろしければご教示いただけないでしょうか。
西村 さん はじめまして。
< ▼ 2020-02-18 17:19 >
大変遅くなりました。
その様な機能は無かった様な気がしますが・・。
現在、再度の確認中です。
もうしばらくお待ち下さい。
< ▼ 2020-02-19 19:21 >
記憶の範囲で調べましたが、テキストにファイルを開くアクションを設定するプログラミング的な機能は見つかりませんでした。
しかし、制限は有りますが「似たような機能」を持たせることは可能かもしれません。現在、その部分で「技術的な可能性」を確認中です。
その制限ですが。
・PDFファイル、又はHtmlファイル以外は開けない。
と言うものです。
リンクしたいファイルの種類を教えて下さい。
管理人さん
西村です。早速のご連絡をありがとうございます。出張のため返事が遅くなりまして申し訳ございません。お手数をおかけし恐縮です。
リンクしたいのはPDFファイルです。
PDF内で「ある接続名」がありまして、これにリンクを埋めたいと考えていました。「ある接続名」は拡張子なしのファイル名となっております。
現在以下のようにやっております。
1)この接続名をトリプルクリックして選択状態にする
2)AcroExchApp.MenuItemExecute("Copy")でクリップボードにコピー
3)クリップボードから接続名を取得
4)接続名からフルパスを作成し、PDFファイルを開く
という手順でやってみたのですが、これ(トリプルクリック)がなんともまどろっこしかったので、リンクを埋められないかと、お尋ねした次第です。お手数をおかけしますが、よろしくおねがいします。
西村 さんへ。
こちらで提案できる機能のイメージが以下です。
テキスト「PDF」の上の破線の枠にマウスポインターを持って行くとクリック操作が可能になります。そこをクリックすると指定したPDFファイルを開きます。
実際は「PDF」テキストの上に破線の枠を表示した透明のボタンを配置しています。そのボタンにはローカルファイルのPDFファイルを開くためのAcrobatJavaScriptが埋め込まれています。
この処理は全てVBAで行いました。
サンプルをダウンロードできるようにこの後で行います。
<2020/02/23 21:53 追加>
以下のDropBoxからダウンロードして下さい。
ダウンロード先:LinkText-012.zip
※非常に難解なロジックのサンプルです。
「標準モジュール:AddButtonFields」の中の関数「Func_AddButtonFields」の形で入っています。
サンプルは完成形では無く、特殊な文字列(半角英字の複数行)での検索の場合のロジックが④に入っていますが、未完成です。それ以外は十分にテストしたつもりです。
但し、西村さんの希望にそう形にするには改造が更に必要になると勝手に予想しています。
上記サンプルは過去で度々質問を受けた部分がいくつか含まれているので、時間ができたら整理してサイトで公開する予定です。
ご検討ください。
<2020/02/23 22:24 追加>
サンプル中の以下のコード
.SetBorderColor "RGB", 0, 0, 1, 0
の第2から第4引数の部分「0,0,1」は色指定のコードです。UIColorコードで指定します。サンプルファイルの"UIColor"シートに一覧が有るので参考にしてください。
サンプルには当サイトに解説が無いコードが有ります。ネット検索すれば出てきますが、英語での解説ばかりで、しかも参考にならないものが多いです。こちらに聞いていただいても結構です。
管理人さん
早々とご教示いただきまして有難うございます。ダウンロードいたしました。これから勉強させていただきます。PDFへの操作が必要のことがありまして2月のはじめから勉強をしていましたが、なかなか思うようにいかず、管理人さんのページにめぐりあいました。このようなページを作り上げていることに驚いてしまいました。
ダウンロードコードを勉強し頑張りたいと思います。ただ恐らく私にとってかなりの難関かと思いますが、管理人さんのご教示を無駄にしないよう心得るつもりです。
本当にありがとうございました。
西村 さんへ
現在、ツギハギだらけのロジックの①、②、③、④の部分を縮小化中です。出来次第、アップします。それ以外の部分はそのままです。
それと「ある接続名」の部分の説明をもう少し詳しく教えていただければ、多少は考慮した関数に出来上がるかもしれません。公開できる範囲での例で結構です。「ある接続名」は複数の種類が有るのか。無限なのか。等。
管理人さん
ご連絡をありがとうございます。ご親切な対応をいただきまして、ますます恐縮の限りです。
申し遅れましたが、私は3D-CADでプラント配管設備の設計をしております。ご存知かと思われますが、そのさい工事用図面として配管のひとつの範囲をスプール図(=アイソメ図=2.5次元的に一本線で配管ラインと寸法や属性が描画されたもの)をPDFファイルで出力いたします。このPDFは多いときで1000枚前後になることもあります。
スプール図一枚はそれで完結している場合もありますが、殆どは部分的(いわば途切れ途切れの状態)に出力されます。このとき途切れた位置に接続先が、例えば次のような表現で1行に描画されます。
「SD-001-50A-B1-H75」
しかし、一段前には必ず「CONT. ON」または「CONT. FROM」という空白を含む文字列があります。次のようにすべて1行ずつの描画です。
CONT. ON
SD-001-50A-B1-H75
「接続先」には空白は許されません。この接続先に「.pdf」をつけて保存をいたします。ここまではマクロで自動で処理できています。
いままでは接続先名に番号をつけて探しやすいようにしておりましたが、プロジェクトによってはそれが許されない場合があります。
図面のチェックは必須なので、数百枚ともなりますと、これが実は大変な苦労なのです。いままでは都度ファイルを検索しておりましたが、これほどバカバカしい作業はありません。
前々から改善したいと思っておりましたが、ついに2月「これではあかん!」の結果が先のコメントさせていただきました内容です。
たびたび管理人さんのご親切に甘えることになり、本当に申し訳ない気持ちです。
管理人さん
西村です。申し訳ありません。追記いたします。
>>「ある接続名」は複数の種類が有るのか。無限なのか。等。
「接続名」は無限ではありません。一枚のPDFに最大でも20くらいかなと思います。だいたいは5、6くらいかと思われます。
西村 さんへ。
具体的な説明をありがとうございます。
サンプルは出来上がりましたが、公開は少し後にします。
少し質問が有ります。
Q1)「一段前」とは「一行前」の意味でしょうか?
Q2)「CONT.ON」+「SD-001-50A-B1-H75」が頁をまたがる場合がありますか?
Q3)「SD-001-50A-B1-H75」 の桁数(17桁)は固定ですか?
Q4)「SD-001-50A-B1-H75」 のフォーマット(ハイフンの位置)は固定ですか?
Q5)「SD-001-50A-B1-H75」 の接続先ファイル名は「x:\aaa\bbb\SD-001-50A-B1-H75.pdf」みたいな感じになるのでしょうか?
Q6)サンプルを頂けますか? テスト用に2ファイルお願いします。接続先のPDFは不要です。これに関してはまたご連絡します。
出来るだけ実用的なサンプルを作りたいと思っています。
管理人さん
いつも早速のご連絡をありがとうございます。お手数ばかりをおかけして申し訳ございません。。
Q1)「一段前」とは「一行前」の意味でしょうか?
■一行前です。ただ図面ですので、行としての定義は私の説明不足です。つまり、接続先と一行前の文字列は、他の接続先の定義がある場合、同じ行(この行と表現してしまったのが私のミスです)にあることもあるかもしれません。数センチ離れたりしているケースです。ただ文字列としてはお互い一つのカタマリで、必ずCONT. xxは接続先のその一行前にあります。
Q2)「CONT.ON」+「SD-001-50A-B1-H75」が頁をまたがる場合がありますか?
■ご質問にうまく答えているのか心配ですが、文字列が分断されることは決してありません。ただ接続名が違うシートに複数あることはザラです。
先のコメントにお伝えしていなかったのですが、一つのファイルには場合によっては数ページが出力されます。その理由は、ある部分の配管がひとつのページに描画するにはスペースがないというケースです。そのときはひとつのファイルに数ページのPDFが出力されます。
Q3)「SD-001-50A-B1-H75」 の桁数(17桁)は固定ですか?
■いいえ、固定ではありません。プロジェクトによって様々です。
この例は、「スチーム配管」の「ドレン(余分な流体を本来の目的がいに使わず捨てる」が「001というエリア(認識のための番号に過ぎません)」で、口径が「パイプ外形が50A(60.5mm)」で、枝分かれとしての認識記号が「B1」で、「保温が75mm」ですよ、といった例ですが、これはプロジェクトによって表現は様々です。ただ、全てにおいて似かよっています。
Q4)「SD-001-50A-B1-H75」 のフォーマット(ハイフンの位置)は固定ですか?
■いいえ、そうではありません。これこそは前の説明を裏切る場合が多くあります。例えば、流体の後ろに口径を持ってきたり、流体名が長かったり違ったり、プロジェクトによって様々です。
Q5)「SD-001-50A-B1-H75」 の接続先ファイル名は「x:\aaa\bbb\SD-001-50A-B1-H75.pdf」みたいな感じになるのでしょうか?
■ご指摘のとおりです。
Q6)サンプルを頂けますか? テスト用に2ファイルお願いします。接続先のPDFは不要です。これに関してはまたご連絡します。
■了解いたしました。ご連絡をお待ちいたします。送付方法をお知らせいただけますでしょうか。
最後に、私は、このように管理人さんにお手数をおかけして、また管理人さんのご都合も無視してしまうようなご厚意に甘えて良いものか、何度も自問しております。都合の良い私の気持ちかもしれませんが、そのうえでお願いを申し上げることをお許しください。
西村さんへ
連絡方法を送りました。
御覧ください。
管理人様
スキャナーで取り込んだPDFファイルの処理をVBAでしようとしています。
スキャナーで取り込んだデータは名称未設定.PDFで表示されているのですが、そのデータを選ぶ方法がわかりません。
スキャナーで取り込んだデータだけにして
Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
にしても 0が入るだけで
そのあと別名で保存しようとして
lRet = objAcroPDDoc.save(PDSaveFull, BkName)
としても0となりエラーとなります。
どのサンプルみても最初にファイルオープンしてファイルのオブジェクトを割り当ててから始まっています。
すでにオープンしているファイルにオブジェクトを割り当てる方法はどうすればよいのでしょうか?
OS WINDOWS10
エクセル2016
アクロバット プロ DC
瀬尾 さん はじめまして。
申し訳有りませんが、質問内容が理解できません。
なお、当サイトはVBA言語に関する質問は受けていません。VBAに関する解説もしていません。VBAに関しては他の立派な解説サイトへお願いします。
管理人さんへ
VB6で表示中の任意のフォームを指定したファイル名でPDFにしたいのですが、ご教授願えませんか。(ビットマップをPDFに変換するサンプルは見かけるのですが)
・Windows10
・Acrobat Pro DC
・VB6
ひーさん はじめまして。
指定した画面(VB6)のイメージをPDFファイルに直接変換する方法は当サイトには無い(はず?)です。
ただ、(記憶が間違いでなければ)VB6のフォームならばデスクトップ上の位置(Top , Left)と自身フォームのサイズ(Height , widht)が分かるので、その画面をキャプチャーできると思っています。VB6からのキャプチャーのサンプルはネット上にも多数見受けられます。それを使って
1)指定画面(=フォーム)をキャプチャーし、画像ファイルに保存。
2)その画像ファイルをPDFへ変換。
となると思っています。
ご検討下さい。
管理人さんへ
早速のご教授ありがとうございました。
管理人さん
このサイトのサンプルを参考に、vbaからPDFのしおりを作成し、JavaScriptの[this.getURL('http://~’);]でwebのリンクを自動設定しています。
作成されたPDFのしおりをクリックすると、AcrobatReaderからはurlが表示されるのですが、Acrobatからでは反応がありません。
手動で[しおりのプロパティ]ー[アクション]の[Webリンクを開く]でurlを設定するとAcrobatでも表示されます。
vbaで[Webリンクを開く]を設定する事は可能でしょうか?
サイトの内容を理解しきれず恐縮ですが、ご教示お願いします。
Windows10 64bit
Acrobat DC pro
M さん はじめまして。
>・・Acrobatからでは反応がありません。
>手動で[しおりのプロパティ]・・・Acrobatでも表示されます。
環境の問題と思われます。予想です。
1)Acrobatの「環境設定」で分類「JavaScript」の「Acrobat JavaScriptを使用」がオフ(=使用不可)になっている。オンにして下さい。
動作確認はしてませんが・・。ご確認ください。
▼2021/6/18 14:25 追加
どうやら予想は外れたみたい?です。
別の原因を考えます。
管理人さん
早々のご回答ありがとうございます。
気づかずお礼が遅れてしまい申し訳ございません。
おっしゃる通り予想とは違うようです。
しおりのアクションをvbaで設定するのは難しいでしょうか?
重ねての質問で申し訳ございませんが、ご指導よろしくお願いします。
M さんへ。
Readerでは開くのに、Acrobatでは駄目と言う事は、
Acrobat内の(Acrobat JavaScriptの)動作環境と考えられます、・・が。
>手動で[しおりのプロパティ]ー[アクション]の[Webリンクを開く]・・
開くと言うことはファイアウォールでAcrobatアプリがブロックされたない証拠です。またWebリンクが動作すると言うことは、その環境設定に関する部分は問題ない。Webリンクはブロック設定になってない。
つまり、現時点で考えられるのは「Acrobat JavaScriptの環境設定」です。
>しおりのアクションをvbaで設定するのは難しいでしょうか?
そんな事は無いです。
1)どこのサンプルを使ったのか教えていただけますか? ココですか?
2)Acrobat JavaScriptですが。「this.getURL('http://~’);」を「getURL('http://~’);」にして、ReaderとAcrobatで動作確認もお願いします。実行エラーになるかもしれませんが。
3)出来たら別のPCがあれば、そこでも上記修正前の状態で動作確認をお願いします。やはり、Acrobatの環境設定が気になります。4)
Acrobat上でしおりをクリックしたときに以下ののような画面は表示されますか?▼2021/06/19 16:46 追加
再現しました。原因と対策も分かりました。
かなり長文になるので来週の月曜までお待ち下さい。
Acrobatのバグっぽい部分も少し有るので整理に時間がかかります。
お急ぎならば、
[環境設定]->[信頼性管理マネージャー]->[設定の変更]->「Webサイト」に有るURLを全て削除 -> OKで戻る -> Acrobatの再起動
しおりのクリックで、上記の4画面が出ます。この時に常に「すべてのPDF文書に関してこのサイトに対する操作を記憶」をオフにして「許可」をクリックします。オンで許可すると、次回以降はなぜ?か動作しません。
詳細は後で。