私は 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 コマンドではありませんか?
これまでのところ、これがどのように/なぜ真実である可能性があるのか はあまり意味がありません(問題を解決する方法は言うまでもありません)。