トップ回答者
APPVで配信したVS2003(VB)で作成したシステムからEXCEL出力が出来ない

質問
-
タイトル内容で困っています。
現在の環境は、
サーバー:Windows2008Sever R2
クライアント:Windwos XP SP3
APP-V:APP-V 4.5
作成したシステムは、Visual Studio 2003 (VB)で作成しています。
このシステムから、Excel出力(Interop.Excel.DLL を使用しています)を行うと、出力先ダイアログボックスは表示されるのですが、その後
このメッセージが表示され、『いいえ』を押すと
このメッセージが表示され、EXCELは出力されません。
クライアントパソコンのOfficeは2003です。また、完全インストールでインストールしています。
取り込みも同じように処理できません。
同システムをローカルドライブにインストールして起動した場合は、正常にEXCEL出力できました。
よろしくお願いします。
- 編集済み momotaro10 2011年12月24日 7:37
2011年12月24日 5:13
回答
-
どうもです。
念のため、本当にVBAに関するモジュールがOfficeにインストールされているかを確認してみるのもいいと思います。また、最小限の再現コードをVBScriptなどで簡単に記述すると、切り分けがスムーズに行くかもしれません。
ExcelオブジェクトをCOM操作で、作成できるのか、できないのか提示されたエラーメッセージは、XLSファイルにあるマクロを実行した際に表示されたものと思いますので
まずは、Excelオブジェクトの作成ができるか?
マクロの実行ができるか?
と順番で確認してみます。雰囲気だけのVBScriptのコード例です。(hoge.vbs)
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
msgbox "Excel 起動した?"
'その後、XLSファイルを開いて
'マクロ実行
objExcel.Quit
set objExcel = Nothing
みたいな簡単なVBScriptを作成します。
これを、非App-V環境のネイティブで動作を確認してから
App-V環境からWScript.exeを実行してみます。
仮想環境で任意のプログラムを起動する方法は、こんな感じです。
sfttray.exe /exe cmd.exe /launch "仮想アプリの名前"
※App-Vで配信されたショートカットのパラメータに /exe cmd.exeを加えると
cmd.exeが実行されます。
その後cmd.exe(仮想空間で動作しているもの)でwscript.exe "hoge.vbs"として実行してみます。
問題あれば、次の調査に進みます。
Officeに関する、仮想レジストリ、仮想ファイルシステムが
パッケージに含まれてしまっているために、中途半端な状態のOfficeが起動されてしまっている
可能性があるので、
シーケンサーで仮想レジストリのOfficeに関連しそうな物があれば
消すか、ローカルキーの上書きを行います。
仮想ファイルシステムにもOffice関連の物があれば
消すか、ローカルのマージを設定します。
最悪、App-Vのパッケージに対象のVBアプリと、Office2003を丸ごといれた
大きなパッケージを作成して、そもそも、動作するのかを確認します。
あとは、App-Vクライアント、シーケンサー含め最新のVersion4.6SP1を利用してみます。
まとまらない、文章ですが
がんばってください。
tune- 回答としてマーク 田中夢 2012年1月17日 5:40
2011年12月28日 5:04
すべての返信
-
どうもです。
念のため、本当にVBAに関するモジュールがOfficeにインストールされているかを確認してみるのもいいと思います。また、最小限の再現コードをVBScriptなどで簡単に記述すると、切り分けがスムーズに行くかもしれません。
ExcelオブジェクトをCOM操作で、作成できるのか、できないのか提示されたエラーメッセージは、XLSファイルにあるマクロを実行した際に表示されたものと思いますので
まずは、Excelオブジェクトの作成ができるか?
マクロの実行ができるか?
と順番で確認してみます。雰囲気だけのVBScriptのコード例です。(hoge.vbs)
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
msgbox "Excel 起動した?"
'その後、XLSファイルを開いて
'マクロ実行
objExcel.Quit
set objExcel = Nothing
みたいな簡単なVBScriptを作成します。
これを、非App-V環境のネイティブで動作を確認してから
App-V環境からWScript.exeを実行してみます。
仮想環境で任意のプログラムを起動する方法は、こんな感じです。
sfttray.exe /exe cmd.exe /launch "仮想アプリの名前"
※App-Vで配信されたショートカットのパラメータに /exe cmd.exeを加えると
cmd.exeが実行されます。
その後cmd.exe(仮想空間で動作しているもの)でwscript.exe "hoge.vbs"として実行してみます。
問題あれば、次の調査に進みます。
Officeに関する、仮想レジストリ、仮想ファイルシステムが
パッケージに含まれてしまっているために、中途半端な状態のOfficeが起動されてしまっている
可能性があるので、
シーケンサーで仮想レジストリのOfficeに関連しそうな物があれば
消すか、ローカルキーの上書きを行います。
仮想ファイルシステムにもOffice関連の物があれば
消すか、ローカルのマージを設定します。
最悪、App-Vのパッケージに対象のVBアプリと、Office2003を丸ごといれた
大きなパッケージを作成して、そもそも、動作するのかを確認します。
あとは、App-Vクライアント、シーケンサー含め最新のVersion4.6SP1を利用してみます。
まとまらない、文章ですが
がんばってください。
tune- 回答としてマーク 田中夢 2012年1月17日 5:40
2011年12月28日 5:04 -
こんにちは。
フォーラム オペレーターの田中夢です。tunemicky さん
参考になるアドバイスをありがとうございます。momotaro10 さん
その後の方針についてご連絡を頂きありがとうございます。
今回、tunemicky さんの投稿を参考をトラブルシューティングの参考にしていただけたようですので、勝手ながら私のほうで [回答としてマーク] とさせていただきますね。
また何かありましたら、TechNet フォーラムをご利用くださいね。
---------------------------------------------------------------------
日本マイクロソフト株式会社 フォーラム オペレーター 田中夢2012年1月17日 5:40 -
だいぶ時間が経ってしまいましたが、Interop.Excel.DLLのエラーなので、
Excelをインストール+キャプチャする際に、.netframeworkがWindowsXPにインストールされていないと
Excelをフルインストールしても、そのアッセンブリは、インストールされませんね。
インストールオプションに表示されなかったきがします。(.netが入っていない場合は、インストールすることができないので、選択肢にそもそも現れない)なので、シーケンスする際に、.netframeworkも含めて、キャプチャするか。
シーケンサーを動かす前に、.netframeworkを予めインストールしておいてから、
シーケンサーを動かしてExcelのフルインストールを行えば、Interop.Excel.DLLもキャプチャされると思います。
tune
2012年4月9日 2:41