現在、実行中のレポートがあります
- ユーザーがレポートをトリガーする
- レポートは処理され、xml 形式で保存されます
- レポートが終了すると、ユーザーはレポートをダウンロードするオプションを取得します
- ユーザーがダウンロードをクリックすると、Web サービスが呼び出されます。
- この Web サービスは空白の Excel ブックを開きます
- 別の xml モジュール (サーバーに常駐) からマクロをコピーします。
- マクロは完成した xml レポートを処理し、それをシートに表示します
Excel 2002 (SP 3) を使用している場合、これはすべて問題なく機能します。
私たちのワークステーションは XP から Windows 7 にアップグレードする予定です。Windows 7 には Excel 2010 が付属しています。 インフラ チームが提供するテスト マシンですべての手順を試しました。
テスト中に、xml モジュールのマクロが Excel 2010 にコピーされないことがわかりました。エラーも警告もありません。
少し検索したところ、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェックを入れる必要があることがわかりました。やってみましたが無駄でした。
不明な点や詳細情報が必要な場合はお知らせください。
編集 1 これは、JS が Excel を開いて + ワークブックを追加 + モジュールを追加する方法です。
xlApp = new ActiveXObject("Excel.Application");
//Add a workbook
xlBook = xlApp.Workbooks.Add;
// This loads the modules into XL from the reporter_modules
var xlMod;
xlMod = xlBook.VBProject.VBComponents.Add(1);
xlMod.CodeModule.AddFromString(xmlModule.childNodes(i).text);
Excel 2002 には .xls しかないため、Excel をどこでも開いている間、コードは拡張子について言及しません。これをどのように達成できるか知っていますか?
ありがとう、会いましょう