6

私は Excel-VBA で小さなユーティリティを作成しました。このユーティリティは、いくつかの個別の .pdf ファイルで Acrobat Javascript ともやり取りします。

コードは広範囲にテストされており、私のデスクトップ PC で意図したとおりに動作します。ただし、最終的には、このコードを Microsoft Surface プラットフォームに実装する必要があります。Microsoft Surface で Excel ファイルから同じコードを実行しようとすると、"GetJSObject" を使用している行でコードが停止します。

例えば。以下は PC では問題なく動作しますが、Surface では「オブジェクトまたはメソッドがサポートされていません」というエラーが発生します。

Set gAPP = CreateObject("AcroExch.App")

Set gPDDOC = CreateObject("AcroExch.PDDoc")

If gPDDoc.Open(pdfFileName) Then Set jso = gPDDOC.GetJSObject

これまでのところ、GetJSObject が 64 ビット環境でうまく機能せず、Surface が 64 ビット Windows 10 と 32 ビット Excel を実行しているというヒントをオンラインで見つけることができました。

ただし、これだけで両方のマシンの動作の違いを説明できるとは思いません。私のデスクトップは 64 ビットの Windows 7 と 32 ビットの Excel を実行しており、すべてが意図したとおりに動作します。

問題の原因 (および解決策) を発見するには、どこを見ればよいですか?

編集/更新: VBA コードを実行する前に、Acrobat で関連する .pdf ファイルのいずれかのコピーを手動で開くという追加の手順を実行すると、getJSObject ステートメントは実際に意図したとおりに機能します。これは、Surface で私の PC とは異なる動作をしているのがオブジェクト定義 (例: などSet gAPP = CreateObject("AcroExch.App")) であることを意味していると思います。最初に考えられていたように、具体的には getJSObject コマンドではありませんか?

これまでのところ、これがどのように/なぜ真実である可能性があるのか​​ はあまり意味がありません(問題を解決する方法は言うまでもありません)。

4

1 に答える 1

1

これがまだ答えられているかどうかはわかりませんが、調査のために私が取る行動は2つあります。

1.

次を使用して、コンストラクターなしで起動できるかどうかを確認します。

Set AcroApp = New AcroApp

それよりも

Set AcroApp = CreateObject("AcroExch.App")

2.

同じバージョンの acrobat を使用していることを確認してください。私の調査によると、このエラーは、検索クエリに対する Google の最初の結果から発生します。

createobject acroexch.app error 429
You cannot do this with Adobe Reader, you need Adobe Acrobat.

この OLE インターフェイスは、Adobe Reader ではなく、Adobe Acrobat で利用できます。

于 2016-04-01T04:19:27.273 に答える