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 通常版