似たような質問があったのですが、解決できませんでしたので質問させて頂きます。
下記のプログラムで、ASPでExcelを起動後、マクロを実行させてたいと考えています。

Set objEx = Server.CreateObject(Excel.Application)
objEx.Application.Visible = True
objEx.Workbooks.Open "C:\Excel\hoge.xls"
objEx.Run("hoge.xls!Module1.macro1()")

しかし、excelがバックグラウンドで実行されて表示されないので困っています。表示させる方法はあるのでしょうか?
アドバイスお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

> excelがバックグラウンドで実行されて表示されないので困っています。



サーバーからすると、ASP から命令されて Excel を起動しようにも、表示させる場所がなくて困っていることでしょう。
というかどこに表示させたいのでしょうか?

サーバーにインストールされている Excel を ASP がキックして起動し、サーバーの画面に表示させたい、と?
Excel を起動させるユーザー アカウント は誰になるでしょうか?
そのユーザー アカウント でサーバーにログオンしてあり、起動した Excel を表示させられる状態になっている?
そうなっていないと思います。

ASP を実行しているのは多くの場合 IWAM_xxxx (xxxx はサーバーのホスト名) というアカウントですが、このアカウントが Excel を対話型に起動するためのデスクトップは無い状態ですよね。

こちらの情報をご確認ください。
http://support.microsoft.com/?id=257757
サーバーサイドで Excel 等をオートメーションで利用する事を考えている人への注意事項がまとめられています。
    • good
    • 0
この回答へのお礼

とても詳しい解説ありがとうございました。
スタンドアローンでテストしていたので、詳しいことが書けず申し訳ありません。
各クライアントごとにサーバー上のエクセルファイルを表示できるかということなのですが、参考サイトが為になりました。何か別の方法を考えてみます。
javaでできたので、できるかと思ったのですが。。。
ありがとうございました。

お礼日時:2009/05/25 21:13

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBA(マクロ)を勉強したい

VBAを勉強したいのですが、オススメの本等教えて下さい。
今FOM出版のマクロ入門を買って勉強しています。大体の基本操作は分かった気がします。

Aベストアンサー

こんにちは。

ここら辺が参考になると思います。

日本VBA協会の参考書籍
の準拠本
http://www.vbaa.jp/training/books.htm

アマゾンのExcelVBA
http://www.amazon.co.jp/exec/obidos/ASIN/4774119660/vbaajpn-22/249-7235447-7367506

QCreateObject("Excel.Application")でVBScript実行時エラー

ActiveServerPage(サーバーサイド)でExcelを起動させ
データベース(SQLServer)より取得したデータをExcelに貼付け
保存させたいのですが。

2台のPCでは正常に動作するものの、もう1台のPCで実行すると
以下エラーが発生します。
----------------------------------------------
Microsoft VBScript 実行時エラー
エラー'800a01ad'
ActiveXコンポーネントはオブジェクトを作成できません。
:'Excel.Application'
/××/××/××.asp 行705
----------------------------------------------
↓705行目
<%
..
set ○○ = CreateObject("Excel.Application")
..
%>

Microsoftサポート技術情報の
[IIS]ASPがVBScript実行時エラー"800a01ad"を返す
http://support.microsoft.com/default.aspx?scid=kb;ja;JP194801
レジストリを確認しましたが、3台とも同じ設定でした。
またExcelファイルのアクセス権をEveryOneフルコントロールに設定し
実行してみましたが状況が変わらず・・・。

クライアントサイドのVBScriptでExcelを起動させて
見た所、問題なく起動終了しました。
IISの問題なのでしょうか?

ちなみに環境はWinNT4.0、IIS4.0(SP6)、Excel2000(SR-1)です。

同様のケースで過去に解決された方、または良い案がある方。ご教授下さい。

ActiveServerPage(サーバーサイド)でExcelを起動させ
データベース(SQLServer)より取得したデータをExcelに貼付け
保存させたいのですが。

2台のPCでは正常に動作するものの、もう1台のPCで実行すると
以下エラーが発生します。
----------------------------------------------
Microsoft VBScript 実行時エラー
エラー'800a01ad'
ActiveXコンポーネントはオブジェクトを作成できません。
:'Excel.Application'
/××/××/××.asp 行705
----------------------------------------------
↓705行目
<...続きを読む

Aベストアンサー

set ○○ = Server.CreateObject("Excel.Application")

ではどうですか?

QマクロとVBAの違いは?

最近officeのVBAを勉強してるのですが「マクロ」と「VBA」って何が違うのでしょうか?

アクセスはマクロとVBA(VBE)が別れてるけど、
エクセルは「マクロの記録」でVBAコードが取得できますよね。

マクロとVBAは同じ意味なのか、違う意味なのか教えていただけますか?

Aベストアンサー

こんにちは。

#2さんの引用先と同じ内容ですが、日本語として出ていたはずです。

マクロとVBAを、一応、定義として把握していないと、きちんと人には教えられないと思いますね。アクセスには、一般的に、VBA側で作られたものは、マクロとは呼べません。

理由は、「マクロ」というのは、その取り扱い言語は別として、ひとつの作業(タスク)の自動実行を目的とする機能のことです。逆にいうと、ひとつの作業を実行できないものは、マクロとは呼びません。例えば、引数を必要とするユーザー定義関数は、マクロの範疇から外れます。

マイクロソフトでは、こう定義しています。

以下は、内容的に、あくまでも、VBAの範疇に対して書かれています。

マクロは、より意味の限定された用語で、引数を持たないパブリックなSub プロシージャのことだけを指します。すべてのマクロはプロシージャですが、すべてのプロシージャがマクロであるとは限りません。マクロの記録機能を使って生成されるプロシージャとOffice アプリケーションの[マクロ]ダイアログボックスから実行できるプロシージャは、すべてマクロです。

それに反して、VBAというのは、アプリケーション用のVisual Basic プログラミング言語です。

「VBA」で書かれたものを総称して、プロシージャと呼び、マクロとは厳密には意味が異なります。また、Ver.4 の「マクロ関数」で書かれたものも、プロシージャで自動実行で作業をするものも、総称してマクロと呼びます。また、ひとつのブックにあるモジュール(=プロシージャを呼び出すためのオブジェクト)群をプロジェクトと呼び、「モジュール」を組み合わせ一貫した仕事をするようにしたものを「システム」と呼んだりします。

これで、違いが分かっていただけたかと思います。

こんにちは。

#2さんの引用先と同じ内容ですが、日本語として出ていたはずです。

マクロとVBAを、一応、定義として把握していないと、きちんと人には教えられないと思いますね。アクセスには、一般的に、VBA側で作られたものは、マクロとは呼べません。

理由は、「マクロ」というのは、その取り扱い言語は別として、ひとつの作業(タスク)の自動実行を目的とする機能のことです。逆にいうと、ひとつの作業を実行できないものは、マクロとは呼びません。例えば、引数を必要とするユーザー定義関数は、マクロの...続きを読む

QIUSR でCreateObject("Excel.Application")ができない。

こんにちは。

ASPでCreateObject("Excel.Applilcation")
を行いたいのですが、
認証ユーザがIUSRのときに
------------------------------------------------
Microsoft VBScript 実行時エラー エラー '800a0046'

書き込みできません。: 'CreateObject'
------------------------------------------------
と、失敗してしまいます。

認証ユーザをAdministratorにすると正常動作しました。
どこかのフォルダにIUSRの権限設定を行えばよいのかなと思うのですが、
ご存知の方教えてください。

------------------------
環境
------------------------
Windows Server 2003
IIS 6.0
Excel 2000

Aベストアンサー

IUSRの権限設定を変更するよりも、そのASPを動かすための専用ユーザを作成し、匿名アクセスアカウントとして設定した方が良いと思います。

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;257757

QVBAとマクロ

お世話になります。田吾作7です。

ふと思ったのですが。。。

VBAとマクロの違いって何でしょう?
「マクロの記録」ボタンを押したのがマクロですか?
VBAは、MS-Officeのモジュールにユーザ自身が書き込んだら、それはVBAですか?
もしそうなら、[マクロの記録]ボタンはなぜ[VisualBasicツールバー]にボタンがあるのでしょうか。マクロを編集しやすくするためでしょうか?

記録で
Range("A1").select
それを編集で
Range("A2").select
としたらVBA?

さらに最初っから
Range("A2").select
と記録したマクロは、やっぱりマクロ?


VBAとマクロって違いあるのでしょうか?
いつも疑問に感じて、モヤモヤしてます。
だれか、このモヤモヤ感を解消してください。

よろしくお願いします。


余談ですが・・・
VBAは[VB for Application]ですよね?
Office関連のためのVBってことですよね。
でもAPIを使ってWINDOWSを制御することもできるから[for App]の意味が無いような気がする今日この頃・・・

お世話になります。田吾作7です。

ふと思ったのですが。。。

VBAとマクロの違いって何でしょう?
「マクロの記録」ボタンを押したのがマクロですか?
VBAは、MS-Officeのモジュールにユーザ自身が書き込んだら、それはVBAですか?
もしそうなら、[マクロの記録]ボタンはなぜ[VisualBasicツールバー]にボタンがあるのでしょうか。マクロを編集しやすくするためでしょうか?

記録で
Range("A1").select
それを編集で
Range("A2").select
としたらVBA?

さらに最初っから
...続きを読む

Aベストアンサー

マクロという言語があるわけではないので
決まった処理を登録しておいて後で実行できる機能を
マクロと呼んでいるんじゃないですか?

そのマクロの情報をスクリプトとして保存しておきますので
そのスクリプトがVBAという事だと思いますが。

Qcreateobect(excel.application)のインスタンス化

ActiveServerPageでExcelを起動させたいと思います。
set ○○ = createobject("excel.application")でインスタンス化させています。

1台のWin2000(officeインストール済)のIISでは問題なく起動できたのですが、もう1台のWin2000(officeインストール未)ではエラーとなります。

エラーの内容は、”ActiveXコンポーネントはオブジェクトを作成できません。”です。

この原因は、OFFICEをインストールしていないからなのでしょうか?

Aベストアンサー

> この原因は、OFFICEをインストールしていないからなのでしょうか?

そうです。

QVBAとマクロの違い

こんばんは。エクセル初心者です。
VBAとマクロの違いについて教えてください。
VBAというのは、プログラミング言語のことで
よろしいのでしょうか?
そのVBAで記述されたものをマクロとよぶ
といったイメージでよろしいのでしょうか?

たとえば、あるエクセルにはいってるマクロを
実行する、ということを作業マニュアルに記述
する場合
「○○マクロを実行する」というのが
正しいのでしょうか?それとも
「VBAを実行する」というのが正しいのでしょうか?

まったく見当違いのご質問だったら申し訳ありません。
教えてください。

Aベストアンサー

「○○マクロを実行する」というほうが正しいです。

VBAは言語のことです。
マクロとは特定の操作手順をプログラムとして記述して自動化することです。

今回の場合、特定の処理なので「マクロ」という表現を使いましょう。

QCreateObjectの同時実行時について

Excelで入力された複数の台帳から集計する帳票を出力するシステムがあります。
質問の内容は単独で帳票を出力した場合はうまくいきますが、2台のPCから同時に
帳票作成処理を走らせたときに、片方は延々と読み込み中から止まった状態になります。
サーバのメモリを見ると、止まっているとみられるExcel.EXEが残っておりゾンビ状態になっております。
これを2台以上のPC(8台程)で同時にやるとメモリリークが発生してしまい帳票自体が作成できなくなってしまいました。その際はサーバの再起動で解決致しましたがそう何度も再起動が出来る環境ではないので何とか同時に実行出来る方法はないでしょうか。同時に出来ない場合は処理が終わるまで他のPCからの処理はウェイトをかけれればよいと考えています。

環境を以下に記します。
OS:WindowsServer2008Standard 32bit SP1
Webサーバ:IIS7
言語:asp(vbs)

帳票作成自体の処理は以下のようになっております。

Dim objExcelApp
Err.Clear

Set objExcelApp = Server.CreateObject("Excel.Application")

If Err.number <> 0 Then
  ' エラー処理
  Response.write "<font color=red>"
  Response.write "Excelを起動できませんでした<br>"
  Response.write "エラー:" & Err.Description & "<br>"
  Response.write "</font><br>" & vbCrLf
  fncPrintModule = False
  objExcelApp.Terminate
Else
  (…処理)
  objExcelApp.Quit
  Set objExcelApp = Nothing
End If

以上、解決策があればよろしくお願いいたします。

Excelで入力された複数の台帳から集計する帳票を出力するシステムがあります。
質問の内容は単独で帳票を出力した場合はうまくいきますが、2台のPCから同時に
帳票作成処理を走らせたときに、片方は延々と読み込み中から止まった状態になります。
サーバのメモリを見ると、止まっているとみられるExcel.EXEが残っておりゾンビ状態になっております。
これを2台以上のPC(8台程)で同時にやるとメモリリークが発生してしまい帳票自体が作成できなくなってしまいました。その際はサーバの再起動で解決致しましたがそ...続きを読む

Aベストアンサー

どういう仕組みなのか質問の内容だけでは不明ですが、Excelのプロセスが残る理由はなんとなく見えます

objExcelApp.Quit
Set objExcelApp = Nothing
エラー時にも入れてください

QVBAとマクロの違い

VBA初心者です。
会社の人からVBAとマクロの違いについて質問され、ちゃんと説明できませんでした。
なにがちがうんでしょうか?
私は「VBAのプログラミング=マクロを組む」と思ってました。
よろしくお願いします。

Aベストアンサー

こんにちは。maruru01です。

Excel(2000)については、No.1の方の説明通り、
「マクロ = VBAというプログラミング言語で記述された一塊の動作」
です。
したがって、miyacさんの、
「VBAのプログラミング=マクロを組む」
で、おおよそあっています。
また、自分で書いたコードをマクロとして登録することも出来ます。
しかし、Access(2000)での"マクロ"は少しニュアンスが異なります。
Accessの場合は、マクロはいくつかの動作・操作は順に登録しておき、それを自動実行させる、という使い方です。自分で書いたコードをマクロとして登録するというやり方ではありません。(本当はそういうやり方も出来ますが。)
したがって、VBAとマクロは何となく別物のような印象を受けます。
それにAccessでは、「マクロを組む」という表現は通常使いません。
ただし、マクロをVBAに変換することが出来ますし、マクロに登録する各動作・操作も、VBAで自分で書くことが出来ます。
ですから、結局同じことなんですけどね。
まとめると、「マクロは自動実行処理を登録すること」で、「VBAはそのアプリケーションのあらゆる操作を記述すること」ですかね。
では。

こんにちは。maruru01です。

Excel(2000)については、No.1の方の説明通り、
「マクロ = VBAというプログラミング言語で記述された一塊の動作」
です。
したがって、miyacさんの、
「VBAのプログラミング=マクロを組む」
で、おおよそあっています。
また、自分で書いたコードをマクロとして登録することも出来ます。
しかし、Access(2000)での"マクロ"は少しニュアンスが異なります。
Accessの場合は、マクロはいくつかの動作・操作は順に登録しておき、それを自動実行させる、という使い方です。...続きを読む

QC#で作成したDLLをExcelに内蔵してVBAで実行する方法

Excel VBAで開発しているのですが制約が多く限界を感じています。C#でDLLを作成してExcelVBAから呼ぶことはできると思いますが、DLLを外付けにするのではなく内蔵することは可能ですか?

Excel 2003
.Net Framework 3.5

Aベストアンサー

アドインという形ではどうでしょうか?

VSTOというものがあります。

VS2008であればPro以上のエディションで開発できます。

参考にどうぞ。

http://www.microsoft.com/japan/msdn/vstudio/office/


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング