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

VBSにてサーバー中のエクセルファイルを開いて閉じるだけの処理を行ったところクライアントでのテストは上手くいくのですが、サーバーに移植すると下記問題点が発生し解決できません。お教え下さい・


1)サーバーで直接IEで開くと"検索中のページには問題があるため表示できません。"になる
2)クライアント側のIEで開くと"Microsoft VBScript 実行時エラー エラー '800a0046'

",書き込みできません。: 'CreateObject'になる

環境 サーバーwindows 2003 server クライアント windwos XP いずれもIIS


・クライアントPCのIIS環境に移植しクライアントPCのIEで開くと正常動作

プログラム
<%@ LANGUAGE = VBSCRIPT %>
<html>
<body>
<%
On Error Resume Next
Set objExcelApp = CreateObject("Excel.Application")

If Err <> 0 Then
' エラー処理
response.write "Excelを起動できませんでした"
response.write "エラー:" & Err.Description & ""
Else
On Error Resume Next
'確認ダイアログ非表示
objExcelApp.DisplayAlerts = False
'エクセルのオープン
Set objExcelBook = objExcelApp.Workbooks.Open("C:\Temp\2010.xls",,True)

Set objExcelSheet = objExcelBook.Sheets(1)

Set objExcelSheet = Nothing
objExcelBook.Close
Set objExcelBook = Nothing
objExcelApp.Quit
Set objExcelApp = Nothing

End If

%>
</body>
</html>

A 回答 (2件)

コード的な問題かセキュリティーでしょう。



エクセルなどの起動は、2003以降(Xp Sp2, Vista以降)は制限されていたはずです。Win2000でも同じですが、dcomcnfg 及び gpedit32.msc で解除する必要があります。

(ディスクトップ上で実行される場合と、ディスクトップにログインしていない時、だれが実行しているかですよね。システムが実行しているわけですから、エクセルが起動される出力先は? です)

コンポーネットサービス
DCOMの構成? のマイクロソフトエクセルですね。そのプロパティのセキュリティで該当箇所を変更を。

コードのほうは、No1の方の指摘事項をまず確認。

>",書き込みできません。: 'CreateObject'になる

だと、「response.write "Excelを起動できませんでした」でエラーになっていませんか? このコードが正しいか確認してください。

CreateObject("Excel.Application")

でエラーになって、後が処理が出来ない気がします。まさかエクセルが設置されていないとか? 又は、この行の後の行のえらーです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
コンポーネットサービス DCOMの構成⇒MicrosoftExcel⇒セキュリティ⇒「起動とアクティブ化のアクセス許可」 で権限を設定したら上手く行きました。
ありがとうございました。

お礼日時:2010/06/15 09:19

まさか、windows2003サーバの方に


C:\Temp\2010.xls
が無いとかってオチな気も。

ファイル開けない時のエラー処理は書きましょう。
    • good
    • 0

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

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