@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

excelを開けない

投稿者投稿内容
ken
ベテラン
会議室デビュー日: 2005/11/03
投稿数: 64
投稿日時: 2006-08-30 23:35
いつもお世話になっています。

vn.net で webアプリケーションを作成しています。

今、問題が起きているのは

Dim xlApplication As Excel.Application
Dim objWBook As Excel.Workbook
Dim objSheet As Excel.Worksheet

xlApplication = CreateObject("Excel.Application")
objWBook = xlApplication.Workbooks.Open(open_file)
objSheet = xlApplication.Worksheets(2)

というコードでexcelファイルを開こうとしているのですが

objWBook = xlApplication.Workbooks.Open(open_file)

このコードのところで固まってしまいます。
一応、参照設定の追加やdcomcnfgの設定等はしました。
エラーも無く、ただ固まってしまうので、???です。

windows server 2003 を使用しています。
開発機のwindows xpでは問題無く通りました。

誰か分かる方がいましたら、教えて下さい。
宜しくお願いします。

platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2006-08-30 23:55
Windows2003ServerにExcelがインストールされていない
というオチではないでしょうね?
ken
ベテラン
会議室デビュー日: 2005/11/03
投稿数: 64
投稿日時: 2006-08-31 00:02
インストールしてあります。

uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-08-31 13:15
よくあるのは、なんらかダイアログボックスが表示される状態になってしまい、
入力待ちで止まってしまうことです。マクロを含んでいるとか、パスワードが設定
されているということはないですよね?
ken
ベテラン
会議室デビュー日: 2005/11/03
投稿数: 64
投稿日時: 2006-08-31 14:10
対象のEXCELにマクロが含まれています。

開発機のXPでは、これでも問題無く動作していたので
マクロは関係無いものだと思い込んでました。

ちなみにマクロを含んでいても
EXCELを開く方法ってありますか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-31 15:45
まだマクロのせいかどうかは分かりませんよね。マクロのないExcelファイルで試してみて
切り分ける必要があります。そもそも開発機では上手くいってるのですから。

固まるのは開発機ではないのですよね。デバッグできないのにどうやってそのコードで
固まってると分かったんですか?(ログとかかな)

あとはそのファイルを開く権限がないとかも考えられますね。(だったらエラーになるかなぁ。。)
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-08-31 15:46
引用:

kenさんの書き込み (2006-08-31 14:10) より:
対象のEXCELにマクロが含まれています。

開発機のXPでは、これでも問題無く動作していたので
マクロは関係無いものだと思い込んでました。


では、マクロが関係ないかどうかを確認するために、マクロを含まないファイルは問題なく開けるのかどうかを確認してみては如何でしょうか?

開けなければ環境の問題ということになるでしょう。その場合、以下の引用部の疑問や調査は無意味なものになります。
また、開ければマクロがあることによる何らかの原因ということになります。

引用:

kenさんの書き込み (2006-08-31 14:10) より:

ちなみにマクロを含んでいても
EXCELを開く方法ってありますか?



ukさんのお話では、マクロを含んでいることが原因ではなくて、マクロを含んでいることを知らせるメッセージボックスなどが表示されることが原因とのことです。
なので、この警告を表示させないように設定してやれば宜しいかと思いました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-31 15:53
本当に、マクロの警告ダイアログのせいなのでしょうか? (違うと思います)
もしそうであれば、マクロの 「セキュリティ レベル」 を下げることで解決しますが...

他にも、インストール仕立てで、アクティベーションが終了していないとか...
いろんな可能性を考慮して、uk さんは "なんらかダイアログボックス" と表現しています。

ところで、サーバはすぐ近くにありますか?
あるのであれば、Workbook が開けるかどうか Explorer から試してみてください。

それと、最初のご投稿にあるソースコードですが、
COM の参照カウントをデクリメントする機会を失っていますので、大変危険なコードです。
詳しくは、「ReleaseComObject」 を調べると良いでしょう。

# いずれにせよ、ASP.NET では COM Interop は、使わない方が良いでしょう...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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