メソッドに貼り付けるだけで機能するソースコードを多数用意しています。
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);
}