解決策
クラッシュの原因としては、追加パラメータを追加した ActiveX API への変更が考えられます。
2016年後半頃、MicrosoftはActiveX APIを更新し、これらの変更はバージョン1609でMicrosoft Office 365のユーザーに自動的にプッシュされました
。WorkIdentityという追加のパラメーターがActiveX関数呼び出しSaveAsに追加されました。これは、ExcelWorkbookメソッドです。使用しているバージョンのExcelに
WorkIdentityパラメーターがある場合、[レポートをファイルに保存]を使用して作成した実行可能ファイルは、パラメーターがない古いバージョンのExcelと下位互換性がありません。
Excelの更新ステータス | Excelバージョン | WorkIdentityパラメーター? |
---|
更新されていない | 1609より前 | 存在しない |
更新されている | 1609以降 | 存在する |
- 任意の Office アプリケーションを開き、 [ファイル] » [アカウント] に移動します。
- 画面の右側の [ Office 更新プログラム] カテゴリで Office のバージョンとビルドを確認します。
- バージョン 1609 以降のコンピュータ上でビルドされた実行可能ファイルはバージョン 1609 以降のコンピュータ上でのみ実行されます。
- 古いバージョンの Excel を使用するコンピューター上でビルドされた実行可能ファイルは、バージョン 1609 以降のコンピューターでも引き続き実行できます。
原則として、実行可能ファイルを展開するときは、開発コンピュータとターゲット コンピュータで同じソフトウェア バージョンを使用することをお勧めします。
すべてのターゲットが Excel の最新バージョンを実行していることを確認できない場合、回避策として、古い Excel バージョンがインストールされているコンピューター上の PPL に SaveAs Invoke ノードを構築することができます。PPL では、 WorkIdentityパラメーターが含まれていないにもかかわらず、SaveAs Invoke ノードは新しい Excel を搭載したマシンでも引き続き動作します。