• ベストアンサー

ASPから既存のexcelブックを開きたいです

件名どおり、ASPから既存のexcelブックを開きたいです。 サーバ上にあるexcelブックをただ開く(表示)させるだけでいいんですが。 できないものなのでしょうか。 エラー的には「オブジェクトがありません」がでてしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Set objExcel = Server.CreateObject("Excel.Application") これはサーバーの内部で Excel を起動するためのコード。 恐らくはこの後にサーバー内にある Excel のデーターファイルを開く処理を記述したいんだと思うが、サーバーが Excel ファイルを開いてみ意味がないし、サーバーに Excel をインストールしてるはずもないだろうし、一度に複数人がそのページを開こうとすると、同時閲覧者の数だけ Excel が起動するし、サーバーの内部で ASP の処理をしているアカウントはサーバーにログオンしたことがないアカウントだろうから Excel を起動させることもできないだろうし、、、 やっぱり意味がない。 ASP 云々の話ではなく、根本的な勘違いをしている。 今回の要望は、クライアント側のブラウザ上で、サーバーにある Excel ファイルを開きたいわけなので、ASP は特に関係ない。 Excel のデーターファイルにハイパー リンクを張る、通常の HTML の書き方だけで良い。 もし仮に Set objExcel = Server.CreateObject("Excel.Application") とかやるんだったら、サーバー側で Excel のデーターファイルを開き、シート上のセル値を読み取って、HTML のテーブルで表を作成して、読み取ったセル値を表示させる方法になってくる。 この場合、ブラウザ上に表示されるのは単なる HTML のテーブルであるので、ユーザーは Excel を起動するわけでなない。

arimasouitirou
質問者

お礼

そうか! 勘違いしてるんですね。すみません。自分で袋小路に入っていたようです。 ありがとうございます。たすかりました。

その他の回答 (3)

回答No.4

#1です >>サーバ上にあるexcelブックをただ開く(表示)させるだけでいいんですが。 それならば#3様がおっしゃるようにHTMLレベルで十分でしょう。 <a href="/***/test.xls">***</a> とかで。

arimasouitirou
質問者

お礼

asteroid-b様、ご親切に複数回の回答ありがとうございます。 どうやら私が根本的な間違いをしていたようで、お手数おかけしました。

回答No.2

サーバ側にExcelアプリがインストールされていないため・・とか。 クライアント側に普通に開くだけなら、 <A HREF="aaaaa.xls">Excelファイル</A> のようなリンクで開かないですか? あるいはBinaryWriteでバイナリ出力し、 ContentTypeにExcelを指定する。 以下に参考URL http://www.ken3.org/asp/backno/asp059.html

arimasouitirou
質問者

お礼

回答ありがとうございます。 やっぱり<A HREF="aaaaa.xls">Excelファイル</A>ですよね。 ちょと自分の考えかたに誤りがあったようで、お手数おかけしました。

回答No.1

クライアント側がexcelを見る(ダウン)ですよね? 普通にできません?

arimasouitirou
質問者

お礼

返信ありがとうございます。 できないんですよ。なぜか。 例えば Set objExcel = Server.CreateObject("Excel.Application") とか指定しても、無視されるか、エラー:オブジェクトがありませんと 表示されます。 既存のエクセルブックはサーバ上にあり、パスは絶対値を指定しています。そのパスをエクスプローラに入力すれば、ちゃんと開きます。 でもASP上だと開かない。なぜでしょう?? Set WshShell = CreateObject("Wscript.Shell") もためしましたが、結果は同じです・・・

関連するQ&A