プロが教える店舗&オフィスのセキュリティ対策術

ここを含めて、いろんなサイトで調べましたが分からなかったので質問させていただきます。

ASPで、画面のボタン(画像)をクリックしたときに、別のASPを呼び出してIEでEXCELを表示する画面なのですが、

(以下抜粋)
<a href="javascript:void(0)" onClick="exp.VbsExec('http://xxxxxxxx.asp')"><img src="xxx.gif" height="20" title="EXCEL表示" border="0"></a>
   ・
   ・
   ・
<object ID="exp" CLASSID="CLSID:7873326C-CB0C-4F2C-99A6-414E128922ED">
</object>

複数のPCで使用していて、同じPC・同じ環境で使用しているのに1台だけ、クリック時にスクリプトエラー「オブジェクトでサポートされていないプロパティまたはメソッドです。」となりEXCEL表示することができません。
上記ソースの「exp.VbsExec」でエラーとなっているようなのでASPの関連サイトを巡って調べましたが原因がわかりませんでした。
原因及び対処方法を教えていただけないでしょうか。
よろしくお願いします。

A 回答 (2件)

そのエラーになるPCだけ、Excelのバージョンが違うとかそういったことはございませんか?



必ずしもExcelのCLSIDは、全バージョンで一致しているとは限らないので、Excelのバージョンと、exp.VbsExecのソースの内容を拝見したいところです。

もう少し、細かい補足をお願いできればと思います。
宜しくお願いします。

この回答への補足

回答ありがとうございます。
現在、そのPCが手元にないので正確なバージョンはわかりませんが、
Excel2007で、他のPCと同一のものが入っています。

手元にあるときにレジストリエディタで「exp.Bean」と「EXCEL.Aprication」のCLSIDを比べてみたりしたのですが、正常に動作しているPCと同じ内容でした。
あと、exp.VbsExecのソースの内容ですが、ある程度省略して書きます。

Dim Books(3)
<%
Books(1)= "http://xxxxxx/xxxx.asp?xxxxxxx"
Books(2)= "http://xxxxxx/xxxx.asp?xxxxxxx"
Books(3)= "http://xxxxxx/xxxx.asp?xxxxxxx"
%>
' エクセルオブジェクトの準備
Set XL = WScript.CreateObject("Excel.Application")
XL.Visible=True' エクセル表示
DispAlerts = XL.DisplayAlerts
XL.DisplayAlerts = False
'デバッグ時はTrue
'XL.ScreenUpdating = False

' 新しいワークシート作成
Set NB = XL.Workbooks.add
Dim OldSheet()
Redim OldSheet(NB.Sheets.Count)
For ix = 0 to NB.Sheets.Count-1
OldSheet(ix) = NB.Sheets(ix+1).Name
Next

' データソースワークシートの取得
ix = 0
Do While Books(ix) <> ""
Set BK = XL.Workbooks.Open(Books(ix))
BK.Activate
BK.Sheets(1).Copy NB.Sheets(OldSheet(0)) ' 常に'Sheet1
' データソースワークシートのクローズ
BK.Saved=True
BK.Close(false)
ix = ix + 1
Loop

' 新しいワークブックのデフォルト作成されるシートを削除する
For ix = 0 to UBound(OldSheet)-1
NB.Sheets(OldSheet(ix)).Delete
Next

NB.Sheets(1).Select
XL.ScreenUpdating = True
XL.DisplayAlerts = DispAlerts

以上です。
ちょっとお尋ねしたいのですが、exp.VbsExecで指定しているASPファイルの方でエラーがある場合、エラー画面で表示されるファイル名や行数は、本来のエラー箇所ではなく、exp.VbsExecの方が表示されるのでしょうか?
よろしくお願いします。

補足日時:2008/05/01 11:20
    • good
    • 0

ご連絡が遅くなってしまい、すいません。


既に解決済みかもしれませんが、今後のために情報をUPしておきます。

Windows Media Player の例になってしまいますが、同様のエラーがWindows Media Player でも出ることがあるみたいで、Excelでも
同じことが言えるのではないかと思っております。

恐らく、http://faq.stream.co.jp/faq/w014.html で、ブラウザの
設定を変更すると、その問題PCでも、エラーなくExcel処理ができるのではないかと思います。

ひとまず、http://faq.stream.co.jp/faq/w014.html を参考に
問題PCのブラウザ設定をご確認ください。

>ちょっとお尋ねしたいのですが、exp.VbsExecで指定しているASPファ>イルの方でエラーがある場合、エラー画面で表示されるファイル名や行数は、本来のエラー箇所ではなく、exp.VbsExecの方が表示されるの>でしょうか?

これについては、実際にASPファイルをブラウザで表示した時に
生成されるHTMLの行番号です。(クライアント側のコードの場合)
サーバー側のコードであれば、ASPファイルの該当する行番号を具体的に示します。
今回のようにExcelの処理をクライアント側で実装されているので、
HTMLの行番号になります。

イメージがつきずらいかもしれませんが、エラー箇所はASPファイルが画面に表示された後、ブラウザ内で右Clickし、「ソースの表示」をしてもらうと、ASPを実行したことによって生成されたHTMLのコードが表示されますので、そのHTMLコードの行番号を見るとだいたい当たりがつきます。

ご参考にならない情報かもしれませんが、ご検討頂けると幸いです。
宜しくお願いします。

参考URL:http://faq.stream.co.jp/faq/w014.html
    • good
    • 0

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