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

初めて質問いたします。
ASPとVBAを使い、SQLサーバより取得したデータをサーバのEXCELファイルに挿入し、グラフを作成。
さらにグラフをgif化し、それをクライアントに表示するというシステムを作成したいのですが、EXCEL2000の場合のみマクロ付きのEXCELファイルをopenしたり、マクロを呼び出したりしようとすると、画面がかたまってしまいます。
最初は見えないところで「マクロを有効にする」などのメッセージがでているのかと思い、デジタル署名などを行ってみたのですが、ASPからVBAのマクロを呼び出すことができませんでした。
EXCEL97がはいっているサーバで試したところうまくいったのですが、EXCEL2000の場合のみうまくいきません。
環境は、
サーバ側:Windows2000+IIS5.0+office2000
クライアント側:IE5.0
です。

以下にソースを記します。
http://www.geocities.co.jp/SiliconValley-Cuperti …

原因及び回避方法がわかる方どうぞ力をお貸しください。よろしくお願いします。

A 回答 (2件)

ごめんなさい。

VBでの書き方を持ち込んでしまいました。

Set objExcelBook = objExcelApp.Workbooks.Open("C:\temp\TestBook.xls",,True)

に変更してください。
    • good
    • 0

Excel2000では駄目というのが不思議ですね。



WindowsNT4.0 Workstation+PWS+Office2000なので、再現性がないかもしれませんが、修正しなくても動作しました。

ちょっと気になるのは、VisibleやActivateなのですが・・・原因とは関係ないと思いますが、VisibleやActivateあと、ブックを開くときをReadOnlyにしてみました。

<%
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(FileName:="C:\temp\TestBook.xls",ReadOnly:=True)
Set objExcelSheet = objExcelBook.Sheets(1)

'''セルに値の貼り付け
for i=1 to 10
objExcelSheet.Cells(i,1).Value = i
next

'マクロの呼び出し
objExcelApp.Run("Module1.macro1")


'エクセルファイルの保存
objExcelBook.SaveAs "C:\temp\TestBook2.xls"

Set objExcelSheet = Nothing
objExcelBook.Close
Set objExcelBook = Nothing
objExcelApp.Quit
Set objExcelApp = Nothing
Response.Write("作成しました。")
End If
%>

あとは、Excel2000が起動するように意図的にバージョンを指定するぐらいでしょうか。

Set objExcelApp = CreateObject("Excel.Application.9")
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。m_roadです。
arataさんに訂正していただいたソースを実行してみたのですが、

Set objExcelBook = objExcelApp.Workbooks.Open(FileName:="C:\temp\TestBook.xls",ReadOnly:=True)

というところで、')'がありません。というようなエラーになってしまったのですが、arataさんのほうは普通に動いていらっしゃるのでしょうか?

お礼日時:2001/07/24 17:11

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