Skip to main content
Participant
January 24, 2020
Question

Office VBAからPDFを操作する際に、Adobe Java Scritptの動作を止めたいです

  • January 24, 2020
  • 1 reply
  • 2365 views

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を動作させない」とすることはできますでしょうか。

もし方法等ご存知の方がいらっしゃいましたら、教えて頂きたいです。

よろしくお願い致します。

This topic has been closed for replies.

1 reply

Omachi
Legend
January 24, 2020

Acrobat 7.0だと2005年5月の発売ですからWindows XPのセキュリティがガバガバだった時代のものですね。

Acrobatはその後にサンドボックス機能が付いたりして、もう、なかなか自由にコントロールさせてくれないのではないでしょうか。

それはそうと、「Adobe Java Scriptが影響している」とはどのように判断されたのでしょうか。もし、Acrobatの環境設定で、「Acrobat JavaScriptを使用」のチェックを外してうまくいったのであれば、Acrobat側でそのような設定にしておけば済むはずですが。

この項目はVBAから直接操作はできないようです。

(ちなみに「Acrobat JavaScriptを使用」のチェック項目はレジストリに登録されているので、そこを変更することでも可能です)

M.EndoAuthor
Participant
January 24, 2020

Omachi 様

ご返信、誠にありがとうございました。

「Adobe Java Scriptの削除などの変更はできません」と書きましたが、正確には変更してしまうと利用できなくなるのですが、調査のためにPDF内のAdobe Java Scriptを削除した状態で試すと値が設定できたため、そのように判断致しました。

(詳しい方に教えた頂いたのですが)

「Acrobat JavaScriptを使用」のチェックを外したいのですが、VBAで値を設定したPDFに対して手作業で追加の編集を行うのですが、その際にはPDFにあるAcrobat JavaScriptの処理が必要になります。また、他のファイルでもAcrobat JavaScriptを利用しておりまして。

そのため、VBAで処理するタイミングの時だけ止めれたらと思いました。

レジストリで変更できると教えて頂いたので、処理としては微妙ではありますがON・OFFのScriptを作って、切り替えるのという方法も考えられるかもしれません。試してみたいと思います。

大変参考になるご意見、ありがとうございました。