こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

マクロ付きEXCELファイルがASPで操作できない

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

以下にソースを記します。
http://www.geocities.co.jp/SiliconValley-Cupertino/8836/sample.html

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

投稿日時 - 2001-07-24 12:10:05

QNo.108584

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

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

に変更してください。

投稿日時 - 2001-07-24 17:49:36

ANo.1

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")

投稿日時 - 2001-07-24 15:29:17

お礼

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

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

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

投稿日時 - 2001-07-24 17:11:53

あなたにオススメの質問