■■■

2016年4月5日火曜日

COM相互運用でエクセルファイルを操作する方法

猫でもわかるC#プログラミング 第3版 (猫でもわかるプログラミング)
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 通常版
■■■