EXCELをWindowsのサーバーサイドで実行する
Microsoft EXCELをWindowsのサーバーサイドで実行することは望ましくありませんが、実行させる
必要に迫られこともあります。
危険性があるため、Web上の情報も減っているようです。
その時の以下の1、2を行うと、WindowsサーバーでEXCELを実行できます。
1.DCOMの構成を行う。
コントロール パネル→システムとセキュリティ→管理ツール→コンポーネントサービスを実行します。
コンソールルート→コンピューター→マイコンピューター→DCOMの構成を展開し、Microsoft Excel Applicationを選択し、右クリックでプロパティを開きます。
コンポーネントサービスは「ファイル名を指定し実行」で以下の実行しても表示できます。
dcomcnfg.exe
64bitOSで32bitのEXCELを利用する場合、32ビットの指定が必要で、以下のように起動します。
mmc.exe comexp.msc /32
あるいは
dcomcnfg.exe /32
セキュリティタブ
・セキュリティで起動とアクティブ化のアクセス許可でカスタマイズを選択し、編集ボタンから、EXCELを起動するユーザーにローカルからの起動、および、ローカルからのアクティブ化の権限を与えます。
・同様にアクセス許可でもEXCELを起動するユーザーにローカルアクセスに許可を与えます。
IDタブ
IDタブで「このユーザー」選択し、EXCELを実行させる権限があるユーザーとします。
テスト環境などでサーバー機能と開発環境を混在させる場合、「対話ユーザー」を指定していないと、EXCEL起動時「OLEは現在使用できません」となります。
2.EXCELを起動させるユーザーでEXCELを起動、VBAエディタを一度開き、EXCELを起動できるようにしておきます
繰り返しになりますが、サーバーでEXCELを起動させる場合、危険を伴うとともにライセンスの問題もありますのでご注意ください。
Office サーバー サイド オートメーションの危険性について
http://blogs.msdn.com/b/office_client_development_support_blog/archive/2012/04/12/1-office.aspx
.NET環境でEXCELを使用するには、以下のサイトなどを参照ください。
Microsoft Visual C# .NET を使用して Microsoft Excel を自動化する方法
https://support.microsoft.com/ja-jp/kb/302084/ja
Excelファイルにアクセスするには?[C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html
なお、オブジェクトの解放を行わないと、起動したEXCELプロセスが残ってしまいますのでご注意ください
http://blog.jhashimoto.net/entry/20120826/1351042349