プロが教えるわが家の防犯対策術!

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

A 回答 (4件)

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 を起動するわけでなない。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/12/14 17:23

#1です


>>サーバ上にあるexcelブックをただ開く(表示)させるだけでいいんですが。

それならば#3様がおっしゃるようにHTMLレベルで十分でしょう。
<a href="/***/test.xls">***</a> とかで。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/12/14 17:25

サーバ側にExcelアプリがインストールされていないため・・とか。



クライアント側に普通に開くだけなら、
<A HREF="aaaaa.xls">Excelファイル</A>
のようなリンクで開かないですか?

あるいはBinaryWriteでバイナリ出力し、
ContentTypeにExcelを指定する。

以下に参考URL
http://www.ken3.org/asp/backno/asp059.html
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/12/14 17:28

クライアント側がexcelを見る(ダウン)ですよね?


普通にできません?
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/12/14 11:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A