メソッドに貼り付けるだけで機能するソースコードを多数用意しています。
Excelアプリケーション操作
Excelアプリケーション(Excel.exe)のパスを取得する
Excel.exeのフォルダの完全パスを取得します。
※操作中のファイルパスではありません、注意してください。
(32bit OSでのデフォルトはC:\Program Files\Microsoft Office…あたりだと思います。)
{ // Excel操作用オブジェクト Microsoft.Office.Interop.Excel.Application xlApp = null; // Excelアプリケーション生成 xlApp = new Microsoft.Office.Interop.Excel.Application(); // ◆Exe格納パスをメッセージボックスに表示◆ // Pathプロパティ System.Windows.Forms.MessageBox.Show(xlApp.Path); // Excelアプリケーションを解放 xlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); }
ExcelBook、アプリケーションを閉じる
Excelを閉じる処理です。
「◆Bookを閉じる◆」で、WorkBookを閉じる処理を行い、
「◆Excelアプリケーション閉じる◆」で、アプリケーションの終了処理を行っています。
{ // Excel操作用オブジェクト Application xlApp = null; Workbooks xlBooks = null; Workbook xlBook = null; Sheets xlSheets = null; Worksheet xlSheet = null; // Excelアプリケーション生成 xlApp = new Application(); xlApp.DisplayAlerts = false; // 確認メッセージを非表示に設定 // 新規のExcelブックを開く xlBooks = xlApp.Workbooks; xlBook = xlBooks.Add(); // シートを選択する xlSheets = xlBook.Worksheets; xlSheet = xlSheets[1] as Worksheet; // 1シート目を操作対象に設定する // 確認のためExcelを表示させて3秒停止 xlApp.Visible = true; System.Threading.Thread.Sleep(3000); // ■■■以下、COMオブジェクトの解放■■■ // Sheet解放 System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets); // ◆Bookを閉じる◆ // Closeメソッド xlBook.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks); // アラートを元に戻す xlApp.DisplayAlerts = true; // ◆Excelアプリケーション閉じる◆ // Quitメソッド xlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); }
Excelの確認メッセージを非表示に設定する(アラート設定)
操作対象のExcelアプリケーションのDisplayAlertsプロパティを取得・設定します。
DisplayAlertsにFalseを設定すると、Excelを閉じるときなどに表示されるメッセージの表示/非表示を制御できます。
以下の処理を実行すると、表示されたExcelの編集→閉じる操作をしても保存要否の確認メッセージが表示されません。
逆にxlApp.DisplayAlertsにTrueを設定すると、確認メッセージが表示されるようになります。
{ // Excel操作用オブジェクト Microsoft.Office.Interop.Excel.Application xlApp = null; Microsoft.Office.Interop.Excel.Workbooks xlBooks = null; Microsoft.Office.Interop.Excel.Workbook xlBook = null; Microsoft.Office.Interop.Excel.Sheets xlSheets = null; Microsoft.Office.Interop.Excel.Worksheet xlSheet = null; // Excelアプリケーション生成 xlApp = new Microsoft.Office.Interop.Excel.Application(); // ◆アラートメッセージ非表示設定◆ xlApp.DisplayAlerts = false; // 新規のExcelブックを開く // Addメソッド xlBooks = xlApp.Workbooks; xlBook = xlBooks.Add(); // シートを選択する xlSheets = xlBook.Worksheets; xlSheet = xlSheets[1] as Microsoft.Office.Interop.Excel.Worksheet; // 1シート目を操作対象に設定する // 表示 xlApp.Visible = true; // ■■■以下、COMオブジェクトの解放■■■ // Sheet解放 System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets); // Book解放 //xlBook.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks); // Excelアプリケーションを解放 //xlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); }
Excelのバージョンを取得する
Excelのバージョンを取得します。
このプロパティによって取得できる値は以下の通りです。
Excel | バージョン |
2010 | 14.0 |
2007 | 12.0 |
2003 | 11.0 |
2002 | 10.0 |
2000 | 9.0 |
97 | 8.0 |
取得方法は以下のようになります。
{ // Excel操作用オブジェクト Application xlApp = null; // Excelアプリケーション生成 xlApp = new Application(); // ◆バージョン番号をメッセージボックスに表示◆ // Versionプロパティ System.Windows.Forms.MessageBox.Show(xlApp.Version); // Excelアプリケーションを解放 xlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); }