Back to Top

プログラムの覚書

Category: VB.NET

VB.NET

VB.NET COMオブジェクトを解放する

ComObjectを解放する方法を説明します。

VB.NETからExcelを起動すると、Excelが落ちない現象があるときは、メモリーの解放を

Marshal.ReleaseComObject() ではなく

Marshal.FinalReleaseComObject() で行ないます。

COMオブジェクトを解放する

Marshal.FinalReleaseComObject(objCom)

'以下と同じになる

Dim I As Integer
Do
    I = Marshal.ReleaseComObject(objCom)
Loop Until I <= 0

※Marshal.ReleaseComObject()は参照数が0になるまで、ループで解放を繰り返さなければならないみたいです。

 

Posted in Excel | Leave a reply

ClosedXML のインストールおよび使い方

Excelファイル(xlsx形式)を作成する事が出来る ClosedXML の説明をします。

ClosedXMLというライブラリは、このOpenXML SDKをラップして、簡単に操作できるライブラリです。

ClosedXMLは、 NuGet を使ってパッケージをインストール出来ます。Nugetで「ClosedXML」で検索してインストールして下さい。

簡単な出力サンプル

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim FilePath As String = "C:\work\HelloWorld.xlsx"

    Using book As XLWorkbook = New XLWorkbook()
        Dim wksheet As IXLWorksheet = book.Worksheets.Add("MySheet")

        wksheet.Cell("B2").Value = "Hello World!!"

        book.SaveAs(FilePath)
    End Using
End Sub

属性追加したサンプル

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim FilePath As String = "C:\work\HelloWorld.xlsx"

    Using book As XLWorkbook = New XLWorkbook()
        Dim wksheet As IXLWorksheet = book.Worksheets.Add("MySheet")

        Dim cell As IXLCell = wksheet.Cell("B2")
        With cell
            .Value = "Hello World!"
            .Style.Font.FontSize = 24
            .Style.Font.FontColor = XLColor.Red
            .Style.Border.OutsideBorder = XLBorderStyleValues.DashDotDot
        End With

        Dim cell2 As IXLCell = wksheet.Cell(5, 3)
        With cell2
            .Value = "Hello World!"
            .Style.Font.FontSize = 24
            .Style.Font.FontColor = XLColor.Red
            .Style.Border.OutsideBorder = XLBorderStyleValues.DashDotDot
        End With

        book.SaveAs(FilePath)
    End Using
End Sub