- 締切済み
マクロ付き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 原因及び回避方法がわかる方どうぞ力をお貸しください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- arata
- ベストアンサー率49% (139/279)
ごめんなさい。VBでの書き方を持ち込んでしまいました。 Set objExcelBook = objExcelApp.Workbooks.Open("C:\temp\TestBook.xls",,True) に変更してください。
- arata
- ベストアンサー率49% (139/279)
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")
お礼
さっそくのご回答ありがとうございます。m_roadです。 arataさんに訂正していただいたソースを実行してみたのですが、 Set objExcelBook = objExcelApp.Workbooks.Open(FileName:="C:\temp\TestBook.xls",ReadOnly:=True) というところで、')'がありません。というようなエラーになってしまったのですが、arataさんのほうは普通に動いていらっしゃるのでしょうか?