- PR -

ASP(.NETではない)から、マクロ付きExcelが保存できません

投稿者投稿内容
SHUN
会議室デビュー日: 2006/12/07
投稿数: 6
投稿日時: 2006-12-08 08:31
続報ですが、昨日色々と実験し、別Excelのブックをオープンし、そこのアクティブシートのセルにテスト的に文字を入れ以下のロジックを実行したところ、テンプレートのExcelのプロセスが残ってしまいます。ブラウザ側もタイムアウトエラーになってしまいます。

'別ブックをオープン
Set objWbk2 = objExcel.Application.Workbooks.Add
objWbk2.ActiveSheet.Range("B1").Value = "AAA"
objWbk2.SaveAs(exfilename)  ⇒ 上書き保存(成功)
⇒正常にファイルが作成されました

終了プロセス
objWbk2.Close      ⇒ 新たにオープンしたブックを閉じる(成功)
objWbk.Close       ⇒ テンプレートのブックオブジェクト(失敗?)
objExcel.Quit      ⇒ サーバー側にプロセスが残っているので失敗?
Set objWbk = Nothing
Set objWbk2 = Nothing
Set objExcel = Nothing

プロセスを強制的に終了させる方法、あるいは、もっと違った方法をご存知の諸兄がおられましたら、ご教授ください。皆様のお力をお貸しください。よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-08 09:21
引用:

SHUNさんの書き込み (2006-12-08 08:31) より:

テンプレートのExcelのプロセスが残ってしまいます。


提示されているソース コードから、勝手に想像して回答しますが、
テンプレート側の 「保存確認ダイアログ」 が表示されているのではないかと思います。

Web では、DisplayAlerts プロパティを false にしておくこと。
SaveChange (Saved) の状態を常に意識することが必須です。
今回の場合は、変更の破棄ですから、Close メソッドの 'SaveChange' 引数を使用しましょう。

# それでもなお、Web で使用することはお勧めできませんが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
SHUN
会議室デビュー日: 2006/12/07
投稿数: 6
投稿日時: 2006-12-11 13:30
【解 決】
続・続報です。
皆様には大変お世話になりました。数日悪戦苦闘した結果、解決しましたので報告します。
原因は、サーバー側のExcelの実行権限の問題で、既定値の「起動ユーザ」になっていたままだと、マクロを含む別名保存が出来ないことがわかりました。
解決策は、「dcomcnfg」にて「Microsoft Excelアプリケーション」を選び、「ユーザを指定」⇒「プロパティ」⇒「識別」の部分で、「次のユーザ」を選択し、「IUSR_XXXXXXX」でパスワード設定したところ、一番最初のPGで起動できました。マクロもそのまま保存できました。ちなみに、「IUSR_XXXXXXX」のパスワードは、マイコンピュータの管理の「ユーザ/グループ」で設定したパスワードと同一であることが条件です。ネットを彷徨って、ようやく見出しました。本来は、「対話ユーザ」を設定するらしいのですが、うまくいかなかったため、上記手順を踏むこととなりました。

皆様には本当に感謝いたします。
また判らないことがありましたら、ご教授頂きたく、よろしくお願い申し上げます。

スキルアップ/キャリアアップ(JOB@IT)