NonSoft

エクセルを操作する小技のサンプル(VB.NET)


 サンプル(ソース/コード)
<このサンプルの概要>
エクセルを起動しいろんな操作をするサンプルソース(VB.NET)です。

エクセルは便利ですね。
表形式の画面を表示するとすぐに、エクセルやCSVに出力したいという要望が発生します。
特にDataGridViewとエクセルの関係は深そうです。そんな時に役立つ小技のサンプルです。

具体的には以下の事を試しています。
 1.エクセル起動
 2.エクセル非表示
 3.ブック追加
 4.シート選択
 5.カラム幅設定
 6.カラムの書式設定
 7.セルの選択
 8.セルのフォント設定
 9.セルの背景色設定
10.セルの文字色設定
11.エクセル表示
12.エクセルを閉じる

エクセル関係のその他ののサンプルはこちらです。
エクセルを使用した帳票印刷のサンプル(VB.NET)
エクセルを使用した帳票印刷のサンプル(C#.NET)
エクセルを操作する小技のサンプル(C#.NET)
エクセルを起動しいろいろ操作するサンプル(VB6)
エクセルを起動しいろいろ操作するサンプル(VBS)
エクセルへデータをコピーし表示するサンプル(VB6)

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 Button1_Click( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles Button1.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