COM相互運用でエクセルファイルを操作する方法
参照設定で「COM」「Microsoft Excel 12.0 Object Library」「Microsoft Excel 11.0 Object Library」を設定します。
VB.NET
Imports Microsoft.Office.Interop
Imports System.Runtime.InteropServices
Public Class Form2
' Excel.Applicationを有効にするため参照の追加を行なってください
' [参照の追加],[COM],[Microsoft Excel *.* Object Library]
' 参照設定に[Excel](ファイル名:Interop.Excel.dll)が追加されます
Dim oXlsApp As Excel.Application
Dim oSheet As Excel.Worksheet
Dim oRange As Excel.Range
Private Sub btn1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btn1.Click
' エクセル起動
oXlsApp = New Excel.Application()
' エクセル非表示
oXlsApp.Application.Visible = False
oXlsApp.Application.DisplayAlerts = False
' ブック追加
oXlsApp.Application.Workbooks.Add()
' シート選択
oSheet = oXlsApp.Worksheets(1)
' カラム幅設定
oSheet.Columns("C").ColumnWidth = 20
' カラムの書式設定の表示形式を文字列にする
oSheet.Columns("C").NumberFormatLocal = "@"
' セル選択
oRange = oSheet.Range("C3")
' セルのフォント設定
oRange.Font.Size = 16
oRange.Font.Name = "MS 明朝"
' セルにデータ書込み
oRange.Value = "1234567890"
' セルの背景色設定
oRange.Interior.Color = &H44FFFF
' セルの文字色設定
oRange.Font.Color = &HFF0000
' エクセル表示
oXlsApp.Application.Visible = True
End Sub
Private Sub Form2_FormClosing( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) _
Handles MyBase.FormClosing
' エクセルを閉じる
If oXlsApp Is Nothing = False Then oXlsApp.Quit()
oRange = Nothing
oSheet = Nothing
oXlsApp = Nothing
End Sub
End Class
C#
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
public partial class Form2 : Form
{
// Excel.Applicationを有効にするため参照の追加を行なってください
// [参照の追加],[COM],[Microsoft Excel *.* Object Library]
// 参照設定に[Excel](ファイル名:Interop.Excel.dll)が追加されます
Excel.Application oXlsApp;
Excel.Worksheet oSheet;
Excel.Range oRange;
private void btn1_Click(object sender, EventArgs e)
{
// エクセル起動
oXlsApp = new Excel.Application();
// エクセル非表示
oXlsApp.Application.Visible = false;
oXlsApp.Application.DisplayAlerts = false;
// ブック追加
oXlsApp.Application.Workbooks.Add(Type.Missing);
// シート選択
oSheet = (Excel.Worksheet)oXlsApp.Worksheets[1];
// カラム幅設定
//oSheet.Columns("C").ColumnWidth = 20
((Excel.Range)oSheet.get_Range(
oSheet.Cells[1, 3],
oSheet.Cells[65535, 3])).ColumnWidth = 20;
// カラムの書式設定の表示形式を文字列にする
//oSheet.Columns("C").NumberFormatLocal = "@"
((Excel.Range)oSheet.get_Range(
oSheet.Cells[1, 3],
oSheet.Cells[65535, 3])).NumberFormatLocal = "@";
// セル選択
//oRange = oSheet.Range("C3")
oRange = oSheet.get_Range(
oSheet.Cells[3, 3], oSheet.Cells[3, 3]);
// セルのフォント設定
oRange.Font.Size = 16;
oRange.Font.Name = "MS 明朝";
// セルにデータ書込み
//oRange.Value = "1234567890"
oRange.Value2 = "1234567890";
// セルの背景色設定
oRange.Interior.Color = 0x44FFFF;
// セルの文字色設定
oRange.Font.Color = 0xFF0000;
// エクセル表示
oXlsApp.Application.Visible = true;
}
private void Form2_FormClosing(
object sender, FormClosingEventArgs e)
{
// エクセルを閉じる
if (oXlsApp != null) oXlsApp.Quit();
oRange = null;
oSheet = null;
oXlsApp = null;
}
}
Microsoft Visual Studio Professional 2013 with MSDN 通常版