• 締切済み

ASP.NETからEXCEL起動

初投稿です。よろしくお願いします。 現在、諸事の事情により、ASP.NETからサーバ上のEXCELのマクロを実行しようとしてますが、起動できずに困っております。 過去ログを探してみて、偽装とDCOMの構成は行いました。 EXCELが実行できるならと思い、ATコマンドでもbatでもたたいてみましたが、 マクロの実行はできませんでした。 諸兄のご助言をお願いしたく思います。 【環境】 OS:WinXP Pro SP2 VisualStadio.Net 2003 Framework1.1 IIS 5.1 MicrosoftOffice 2003 【やりたいこと】 ASP.NETで作成したプログラム上でブラウザのボタンを押したとき、 サーバーのC:\check.xlsを Dim p As Process = Process.Start("EXCEL", "C:\check.xls") で起動し、 書いてあるマクロを実行したい。 【現状】 タスクマネージャで確認したところ、 EXCEL.exe ユーザ名ASPNET は表示されたが マクロは動かなかった。 デバッグで System.Security.Principal.WindowsIdentity.GetCurrent().Name を行ったところ、"マシン名\testuser"となり、 偽装は成功しているよう。 【準備したこと】 1.DCOMの構成のユーザ追加: 管理ツール/コンポーネントサービス/コンポーネントサービス/コンピュータ/マイコンピュータ/DCOMの構成/Microsoft Excel アプリケーションのプロパティ/セキュリティ/ の 「起動とアクティブ化のアクセス許可」のカスタマイズ項目を編集し、testuser とASPNETを追加 「アクセス許可」のカスタマイズ項目を編集し、testuserと ASPNETを追加 2.偽装の有効化: Web.configに <identity impersonate="true" userName="testuser" password="testuser" /> を追加 testuserはAdministrator権限 何とかしたいのですが、方法のご指導をよろしくお願いします。

みんなの回答

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

可能性として考えられるのは、「マクロ」ですね。 マクロを含んだExcelファイルを普通に開いた場合、 マクロの警告がでますよね。(セキュリティレベルにも よりますが) ですから、ASP.NETで同様なことを行っても、 マクロの警告が出ていて、応答待ち状態になっていませんか? もしそうだとしたら、 ・セキュリティレベルを下げる ・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。 ・・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。 こんなところでしょうか?

niccky
質問者

補足

すみません、書き忘れてました。 ・セキュリティレベルを下げる EXCELファイルをダブルクリックしてマクロが動く(ファイルを書き出す)ことは確認してます。 セキュリティも「低」にしております。 ・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。 それはごもっともなのですが、大人の事情というやつで・・・ ・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。 やはり、vbs等でおこなうほうがいいのかな・・・と思ったりしています。

関連するQ&A

  • ASPでExcel起動後マクロ実行

    似たような質問があったのですが、解決できませんでしたので質問させて頂きます。 下記のプログラムで、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がバックグラウンドで実行されて表示されないので困っています。表示させる方法はあるのでしょうか? アドバイスお願い致します。

  • ASP.NETについて

    ASP.NETについて教えてください。 VisualStudio2010、VBでASP.NETを開発しています。 クラインアントで起動した時に、自分の端末のC:\test.xlsをオープンしたいのですが、サーバー側の Excelが開いてしまいます。 どのような設定、構文を書けばクライアントのExcelを起動する事ができるのでしょうか?

  • ASPでEXCELを扱うには?

    こんにちは。 ASPでEXCELを起動させたいのですが、 Set objExcel = CreateObject("Excel.Application") ここでエラーが出ます。 ”ActiveX コンポーネントはオブジェクトを作成できません。: 'Excel.Application'” 環境はwindows2000とEXCEL2000です。 最終的には、EXCELの各シートをCSVで保存したいと思っています。 初心者ですがよろしくお願いします。

  • aspでExcelが起動できない

    aspでexcelにデータを挿入し、印刷をしたいのですが、frontpageのブラウザでプレビューを実行するとExcelが起動しますが、Webに発行し、IEで見てみるとExcelが起動しません。IISの設定等がおかしいのではと、いろいろ変更してみましたがうまくゆかず、困っています。 宜しくお願いします。 環境は WindowsXP Professional Ver 2002 Service pack 1 IIS V5.1

  • IIS6 ASP Oracle接続

    環境 Windows Server 2003 (IIS6) ASP.NET 2 Oracle10g Session("OraSession") = Server.CreateObject("OracleInProcServer.XOraSession") ここでエラーが発生しています。 エラー内容 CLSID {3893B4A0-FFD8-101A-ADF2-04021C007002} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80070005。 説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 例外の詳細: System.UnauthorizedAccessException: CLSID {3893B4A0-FFD8-101A-ADF2-04021C007002} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80070005。 この ASP.NET は、要求されたリソースへのアクセスを許可されていません。要求された ASP.NET へのリソースへアクセスを許可するかどうかを検討してください。ASP.NET プロセスには、アプリケーションに偽装が実行されていない場合は、通常、インターネット インフォメーション サーバー 5 では {コンピュータ名}\ASPNET、インターネット インフォメーション サーバー 6 ではネットワーク サービスが使用されます。<identity impersonate="true"/> 経由でアプリケーションに偽装が実行されている場合、ユーザーは、通常 IUSR_MACHINENAME に設定された匿名ユーザーか、または認証された要求ユーザーになります。 色々と試してみましたが、だめです。 何が不足しているのでしょうか?

  • エクセルの起動

    ExcelXPを利用しています。 マクロの勉強を始めたのですが、それ以降エクセルを起動すると、personal.xlsというファイルが最初に開いてくるようになってしまいました。 それを初期に戻すにはどうすればよいでしょうか? personal.xlsというのはシートが1枚しかなく不便なんです。

  • asp内に記述したvbsでEXCELを起動したい

    こんにちは。 asp内に記述したvbsで、EXCELを起動したいのですが、どうしてもうまくいきません。 <html> <head> <SCRIPT language='VBScript'> <!-- MsgBox "Hello !" With CreateObject("Excel.Application") .Visible = True .Workbooks.Add.ActiveSheet.Range("A1").Value = "Hello !" End With --> </SCRIPT> </head> <body> てすと </body> </html> vbsの部分だけを、asp内記述ではなくvbsファイルで実行すれば問題なくEXCELが起動できます。 また、asp内に記述したメッセージのHello!は出てくるのでプログラムaspのプrグラム自体は動いています。 このことから、間違いはないと思うのですがどうしても起動できません。 どなたか、原因が分かる方はいらっしゃらないでしょうか?

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

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

  • 起動中のEXCELファイル(EXCELプロセスではなく)のうちひとつを終了したい(C#.NET2003)

    例えば、プロセスのEXCELではなく、 起動中の~.xlsをプログラムで強制終了させたいと考えています。 他のEXCELファイルを閉じたくはないので、 EXCELのプロセスを終了する方法は駄目でした。 また、既に起動中なので、一度開いて閉じようとすると二重起動になってしまい駄目でした。 良い方法がありましたらご教授願います。 (C#.NET2003、Office2000、xpsp2)

  • excelが別プロセスで起動してしまう

    自分ではお手上げ状態なので、どうか教えてください。 エクセルが常に別プロセスで開いてしまいます。 同一プロセスで開きたいのですが、どうしたら良いでしょうか。 作業環境は、業務の都合でWindowsXPにexcel2000と2007が入っています。 通常使用しているのは2000です。 また、不特定多数のエクセルでマクロを使用するため、personalにマクロを設定しています。 複数のエクセルを開こうとするときに、2つ目以降から 「personal.xlsを読み取り専用で開きますか?」というメッセージが毎回出てきてとても手間がかかります。 personalファイルを削除すれば問題は解決するのですが、 どうしてもpersonalのマクロが必要です。 ちなみに、2つ目以降のエクセルを 右クリック⇒プログラムから開く⇒excel2007 で開くと、 なぜか同一プロセスで開けます。 personalのマクロを残したまま、同一プロセスで開く方法はないでしょうか。 宜しくお願いします。