リンクをクリップボードにコピー
コピー完了
Access(Excelでも同じ状況です)のVBAから、PDFに値を設定して保存しています。
Acrobat 7.0では問題なく動いていましたが、Acrobat 2017に変えたところ、値の取得はできますが、値の設定ができなくなりました。
いろいろ動作を試した結果、当該PDF内に設定されているAdobe Java Scriptが影響していることまでは分かりました。
ただ、このPDFは作成済みのものを提供されていて、こちらでAdobe Java Scriptの削除などの変更はできません。
そこで、VBAから処理する際に、一時的にAdobe Java Scriptの動作を止めることができたら、値の設定ができるかもしれないと思っています。
そもそもVBAで「Adobe Java Scriptを動作させない」とすることはできますでしょうか。
もし方法等ご存知の方がいらっしゃいましたら、教えて頂きたいです。
よろしくお願い致します。
リンクをクリップボードにコピー
コピー完了
Acrobat 7.0だと2005年5月の発売ですからWindows XPのセキュリティがガバガバだった時代のものですね。
Acrobatはその後にサンドボックス機能が付いたりして、もう、なかなか自由にコントロールさせてくれないのではないでしょうか。
それはそうと、「Adobe Java Scriptが影響している」とはどのように判断されたのでしょうか。もし、Acrobatの環境設定で、「Acrobat JavaScriptを使用」のチェックを外してうまくいったのであれば、Acrobat側でそのような設定にしておけば済むはずですが。
この項目はVBAから直接操作はできないようです。
(ちなみに「Acrobat JavaScriptを使用」のチェック項目はレジストリに登録されているので、そこを変更することでも可能です)
リンクをクリップボードにコピー
コピー完了
Omachi 様
ご返信、誠にありがとうございました。
「Adobe Java Scriptの削除などの変更はできません」と書きましたが、正確には変更してしまうと利用できなくなるのですが、調査のためにPDF内のAdobe Java Scriptを削除した状態で試すと値が設定できたため、そのように判断致しました。
(詳しい方に教えた頂いたのですが)
「Acrobat JavaScriptを使用」のチェックを外したいのですが、VBAで値を設定したPDFに対して手作業で追加の編集を行うのですが、その際にはPDFにあるAcrobat JavaScriptの処理が必要になります。また、他のファイルでもAcrobat JavaScriptを利用しておりまして。
そのため、VBAで処理するタイミングの時だけ止めれたらと思いました。
レジストリで変更できると教えて頂いたので、処理としては微妙ではありますがON・OFFのScriptを作って、切り替えるのという方法も考えられるかもしれません。試してみたいと思います。
大変参考になるご意見、ありがとうございました。