• 締切済み

マクロ付き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 原因及び回避方法がわかる方どうぞ力をお貸しください。よろしくお願いします。

みんなの回答

  • arata
  • ベストアンサー率49% (139/279)
回答No.2

ごめんなさい。VBでの書き方を持ち込んでしまいました。 Set objExcelBook = objExcelApp.Workbooks.Open("C:\temp\TestBook.xls",,True) に変更してください。

  • arata
  • ベストアンサー率49% (139/279)
回答No.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")

m_road
質問者

お礼

さっそくのご回答ありがとうございます。m_roadです。 arataさんに訂正していただいたソースを実行してみたのですが、 Set objExcelBook = objExcelApp.Workbooks.Open(FileName:="C:\temp\TestBook.xls",ReadOnly:=True) というところで、')'がありません。というようなエラーになってしまったのですが、arataさんのほうは普通に動いていらっしゃるのでしょうか?

関連するQ&A

  • C#でASPでEXCELをマクロ動かすものを作ろうと思うのですが、

    C#でASPでEXCELをマクロ動かすものを作ろうと思うのですが、 どうやって作ったらよいでしょうか。 具合的にいいますと、 クライアントで表示した画面のあるボタンを押すと、 サーバにあるExcelのマクロが起動して結果(Excelの表)を クライアント側で表示する。 といったものです。 サーバ側にはExcelは入ってないので、 クライアント側にダウンロードしてきてマクロを起動すると いったものになると考えています。 ざっくりとした説明ですが、 どうやって実現すればいいか分からない状況です。 自分でも調べていますが、 どなたか教えていただければと思います。 ここを見ればとかヒントのようなものでも かまいませんので是非お願いします。

  • Excelのマクロ有効ファイルの署名について

    Excel2007で、マクロ有効ファイル(.xlsm)を作成しました。 VisualBasicを使っています。 会社にはサーバーがあり、サーバー内に社員全員が見ることのできるフォルダを作ってあり、 ファイルをそのフォルダ内に保存しました。 社員のだれもが自分のPCでファイルの変更・保存ができるようにします。 全員のPCについて「開発タブ」を表示してもらい、マクロの実行を各自のPCでできるようにしました。 作成した私のPCでは、問題なくこのファイルを開いて変更・保存をすることができますが、 他の社員のPCでは、マクロの実行ができませんでした。 開発タブのマクロのセキュリティから、「全てのマクロを有効にする」を選んだらできるようになりましたが、推奨しません とありますし、できれば避けたいと思います。 色々と調べてみたのち、デジタル署名をしてみました。 作成した私のPCの「すべてのプログラム」から MicrosoftOffice→MicrosoftOfficeツール→VBAプロジェクトのデジタル署名 で署名を作成し、 VisualBasicの「ツール」で署名を選択し設定しました。 この後の各社員のPCの設定について、どのようにするのが適切か、 アドバイスいただけましたらと思います。 どうぞよろしくお願いいたします。 なお、各社員のPCでは、Excel2007とExcel2010があります。

  • excelファイルをASPで作る方法

    ASPでホームページを作っています。 クライアントが、ある表を表示するホームページを見るとサーバー側に表示されている表と同じエクセルファイルを 作成させたいです。 そして、そのファイルにアンカー タグを張ったページから、エクセルファイルをダウンロードさせたいのです。 注意)エクセルファイルは、CSVではなく純粋なエクセルファイル(vbsでセル幅を変更できる)です。 どなたか、アドバイスをよろしくお願いします。

  • excelのマクロ操作

    excelで以下の操作をマクロを用いて繰り返し行いたいのですがどのようになプログラムにしたらいいでしょうか? テキストファイルをexcelで読み込む            ↓         グラフの作成            ↓           excelの保存

  • Excel マクロ無効化

    Micorsoft Excelで、VBAで以下のように指定のExcelファイルのマクロを無効化したいのですが、やりかたを調べてもよくわかりません。できないのでしょうか?アドバイスいただけると幸いです。 具体的にやりたいこと (1)マクロ有効にしたExcelファイルのVBAから他のExcelファイルをマクロ無効で開く (2)マクロ有効にしたExcelファイルのVBAで、開いているExcelファイルのマクロを無効に設定する。(有効だったものを無効にする)

  • 複数ファイルダウンロードについて

    いつもお世話になっております。 さて、今回は表題の件について、仕組みまたは、他の解決方法について知恵をお借りしたいと思っています。 【環境】 Windows2000ro+Sp4(Excel導入されていない)+IIS ASP(.NETではない) 【やりたいこと】  ASPでCSVファイル(もとねた)をEXCEL帳票で クライアントに見せたいという要望があります。  但し、サーバ用途:Win2000にEXCELがないので、サーバ側でEXCEL帳票を生成してダウンロードさせる案は無理なのではと思っています。 【実現案】  今のところ下記の方法しか思い浮かびません。  ・CSVファイル、EXCELマクロ(帳票テンプレート付)を各クライアントはダウンロードした後、マクロを手動実行 【質問内容】  ・まず、上記内容以外で何かしら良い仕組み、方法はあるでしょうか?  ・もし上記実現案しかない場合は、複数ファイルダウンロードが問題になってくると思います。 (単一ファイルダウンロードは作成済み)何か良い技術的方策などないでしょうか? 宜しくお願いします。

  • レガシーASPでのグラフ作成について

    レガシーASPで棒グラフの作成を試みています。 当初はimgのheightを変数にすることで対応しようとしていましたが、どうも、見た目がしょぼい。。。 そこで、この方法以外に、(もっとエクセルで作成したときのように)見た目が綺麗なグラフをWEB上で出力させたいと思っています。 良い方法をご存知でしたら教えてください。 (※ちなみに、予算がありませんので、グラフ作成ツールを作成する、というのは難しいです。) (※ASP.NETであれば、excelグラフをimgとしてクライアント側に見せることはできるようですが、、 http://japan.internet.com/developer/20051213/print26.html こんなことが、レガシーASPでもできたらいいのですが。)

  • EXCELからASPにログインできるマクロ

    各ASPのボタンをシート上に作成し、ASPの URL ID パスワード情報を入力して そのASPのマクロ完成となり、次回からはASPのボタンをクリックするとそのASP に自動ログインできる。 どなたかEXCELのマクロに詳しい方よろしくお願いします。

  • 超お馬鹿。 ASPって?

    OS: クライアント Windows2000, サーバ NT4, IIS4 Editor: FrontPage2000 ASP未体験者につき、皆さんに失礼な質問をしてしまいますがお許しください。 Webのクライアント側で何か動作をさせるときにはVBScriptやJAVAなんかでスクリプトを記述することは以前やったことがあります。 ASPは、ASPの文法で書いたスクリプトが記述してあるHTML(拡張子はasp)をWebサーバ(IIS?)に発行するだけで動作するようになるのでしょうか。 それとも、サーバ側にログインして何か作業が必要なのでしょうか。 まったく理解していませんが、見捨てずに教えてください。 よろしくお願いします。

  • ASPでCSVファイルを作成しダウンロードさせる

    ASPファイルで、動的にCSVファイルを作成し、クライアントにダウンロードさせたいのですが、実際には、ファイルは作成せずに、ASPで直接、CSVフォーマットのファイルをダウンロードさせているように振舞わせることはできないでしょうか? 手順 クライアント        サーバー あるURL(A.ASP)にアクセス              A.ASPのスクリプトでCSVフォーマットを作成              クライアントに送信(多分、Response.Writeで) ダウンロードダイアログが開く 「A.CSVをダウンロードしますか?」 のような感じ ダウンロード、またはExcelが開く というようなイメージです。 CSVファイルを作ってしまうと、複数のユーザーからほぼ同時に要求があった場合、望むCSVにならない可能性があり、また、毎回ファイル名を変えると、Webサーバー上にCSVファイルが沢山できてしまうため、何とかこの方法でやりたいのですが、何かよい方法はありませんでしょうか? ちなみに次のようなASPファイルをしてみましたが、うまくいきません。 <% Response.Content-Type="application/vnd.ms-excel" Response.Write "1,2" & vbNewLine Response.Write "3,4" & vbNewLine %> また、「vnd.ms-excel」を「oct-stream」でもだめでした。 何かよい知恵をお貸しください。

専門家に質問してみよう