dポイントプレゼントキャンペーン実施中!

VS2003でASP.NETのプログラムを作成しているのですが、ASP.NETからexcel.exeなどのexeプログラムは呼び出せるのでしょうか?
shell関数を使っても、何も反応がありません。
すいませんが、出来る方法を教えて下さいますようお願いします。

A 回答 (3件)

コンポーネントサービスで、「Microsoft Office Access アプリケーション」を探す。


プロパティのセキュリティタブに、3つアクセス許可があるので、カスタマイズを選択して、XPなら「ASPNET」、2003なら「NETWORK SERVICE」のアカウントで起動できるようにする。

VSのプロジェクトの参照の追加の「COM」タブに「Microsoft Access 11.0 Object Library」がある(はず)ので追加する。

あとは、
>Dim myaccess As New Microsoft.Office.Interop.Access.Application
として、アクセスの起動ができているのか確認する。

ここから、どうするのかは、アクセスでなにかしたことがないので、下記を参照してみてください。

http://support.microsoft.com/kb/825796/ja
http://www.microsoft.com/japan/msdn/office/acces …
http://support.microsoft.com/kb/317114/ja?spid=1 …
http://support.microsoft.com/default.aspx?scid=k …
http://msdn2.microsoft.com/ja-jp/library/microso …

HELP
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/odeopg/html/deovrotherobjectspropertiesmethodsofapplicationobject.htm
    • good
    • 0
この回答へのお礼

qteaさまへ
解答ありがとうございます。
明日会社で実験してみますので、また連絡させてもらいます。
ずっと困っていまして、親切な方で大変嬉しく思います。

お礼日時:2006/11/16 23:59

詳しいことは、会社にいかないとVSがないので書けませんけど…


COMを利用するのが普通(?)かな…
簡単にポイントだけを書くと…

◯ASP.NETを動作させるPCにExcelをインストールする
◯プロジェクトの参照設定で、Excel Application を参照するようにする
◯コントロールパネル->管理ツール->コンポーネントサービスを起動して、\コンピュータ\マイコンピュータ\DCOMの構成の下にある、Microsofot Excel Applicationのプロパティを開いて、ASP.NETの実行ユーザー(OSやIISのバージョンによって、ユーザ名はかわる。XPだとASP NETだったかな。)にアクセス権限をあたえる

ってところでしょうか。

注意点としては、COMオブジェクトをきちんと開放しなければ、起動したExcelは、おわってくれません。

http://jeanne.wankuma.com/tips/programing/releas …

起動しても、ExcelのWindowは開かないので、起動しているのかどうかを確認するには、タスクマネージャーでプロセスを見てください。
Windowを開かないので、もし、Excelの実行中に、メッセージボックス等が出たら…そのメッセージボックスのOKを押せないので、困ったことになります。なので…

・メッセージボックスが出ない設定にしないといけない。
・マクロ等を実行するのなら、マクロセキュティを低に設定しないといけない。
・マクロにエラーがないことをしっかり確認しなければいけない

など、考慮しないといけないです。
他には…ちゃんと確認はしていませんが、Excelのライセンスあたりも微妙そうです。クライアント側もExcelのライセンスがないとダメとかいう話も…ほんとうかどうかは不明ですが。
あと…Excelは軽いソフトとはいえないので、たくさんのユーザーが、動作させたら…どうなるんでしょうね^^;
このあたりは、イントラネットならさほど問題にはならないと思いますが…

でも、PDFを出力するのが目的なら、ActiveReportsを利用するというのも手ですよ。購入する余裕があれば…ですが。

http://www.grapecity.com/japan/support/database/ …

他にはこういう記事もあります。
http://www.atmarkit.co.jp/fdotnet/dotnettips/309 …
    • good
    • 0
この回答へのお礼

qteaさんありがとうございます。

確かにタスクマネージャーでプロセスを見ると立ち上がっていました。
ASP.NETからACCESSのMDBをshell関数で呼んでも、MSACCESS.EXEしか
タスクマネージャに存在していません。
また、呼んだMDBでは何の処理もされていませんでした。
出来ればもう少し分かりやすく説明していただければうれしいのですが。
よろしくお願いします。

お礼日時:2006/11/16 14:42

>何も反応がありません


何を理由に「反応がない」と判断したのでしょうか?
Webサーバ側でExcelを実行してもGUI(デスクトップ)がないのでエラーになるか見えないだけだと思いますよ。

>出来る方法を教えて下さいますようお願いします
Excelを使って何をしたいのかで方法が変わってくると思います。
ワークブックを作ったりデータを変更したいならば
http://msdn2.microsoft.com/ja-jp/library/microso …
この辺りのサンプルコードを参考にすればできるかも知れません。

もう少し具体的に何をしたいのか書かれると具体的な回答がもらえると思います。

この回答への補足

Bonjinさんありがとうございます。
ASP.NETからexcelも呼びたいのですが、今考えているのは、ACCESSのデータベースに書き込み、レポート出力を「いきなりPDF」みたいなツールを
使ってサーバーにあるフォルダーに保管させ、Response.Writeでクライアントにダウンロード出来ないかなと思っております。
ASP.NETからACCESSのレポート出力が出来れば一番いいのですが。
出来ますでしょうか?

補足日時:2006/11/11 21:23
    • good
    • 0

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