VB.NET EXCEL操作 罫線を引く

VB.NETを利用して、EXCELの罫線を引く方法を紹介します。

EXCEL操作をする上で、よく使うと思います。

他にもEXCEL操作関係の記事を記載していますので、参考にしてみてください。

VB.NET EXCEL操作 新規ブック作成
VB.NET EXCEL操作 値入力
VB.NET EXCEL操作 背景色を付ける
VB.NET EXCEL操作 フィルター設定

罫線の引き方

それではさっそくサンプルを紹介します。

Dim range As Excel.Range = Nothing
range = sheet.Range(sheet.Cells(2, 2), sheet.Cells(4, 4))

Dim xlBorders As Excel.Borders
Dim xlBorder As Excel.Border

xlBorders = range.Borders
xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeLeft)
xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous
xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeRight)
xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous
xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeTop)
xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous
xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeBottom)
xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous

解説
1~2行目:エクセルの範囲を指定
4~5行目:罫線を引くための型を宣言
7~15行目:罫線の設定
8行目:指定した範囲の左端に線を引く
9行目:LineStyleの設定 Excel.XlLineStyle.xlContinuous 普通の線を指定
10行目:指定した範囲の左端に線を引く
12行目:指定した範囲の上端に線を引く
14行目:指定した範囲の下端に線を引く

結果

指定した範囲(2,2)~(4,4)の左、右、上、下に罫線が引かれていることを確認できました。

 

明細の線を引きたい場合は、

xlBorder = xlBorders(Excel.XlBordersIndex.xlInsideVertical)
xlBorder.LineStyle = Excel.XlLineStyle.xlDot
xlBorder = xlBorders(Excel.XlBordersIndex.xlInsideHorizontal)
xlBorder.LineStyle = Excel.XlLineStyle.xlDot

解説
1行目:指定した範囲の内側のすべての縦線
2行目:点線
3行目:指定した範囲の内側のすべての横線
4行目:点線

結果

明細の線を点線で引くことができていますね。

サンプルソース

サンプルソースを載せておきます。

Imports Microsoft.Office.Interop

Public Class frmExcel
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        'EXCEL変数
        Dim excelApp As New Excel.Application()
        Dim excelBooks As Excel.Workbooks = excelApp.Workbooks
        Dim excelBook As Excel.Workbook = excelBooks.Add()
        Dim sheet As Excel.Worksheet = excelApp.Worksheets("sheet1")

        Try

            excelApp.Visible = False

            Dim range As Excel.Range = Nothing
            range = sheet.Range(sheet.Cells(2, 2), sheet.Cells(4, 4))

            Dim xlBorders As Excel.Borders
            Dim xlBorder As Excel.Border

            xlBorders = range.Borders
            xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeLeft)
            xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous
            xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeRight)
            xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous
            xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeTop)
            xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous
            xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeBottom)
            xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous

            xlBorder = xlBorders(Excel.XlBordersIndex.xlInsideVertical)
            xlBorder.LineStyle = Excel.XlLineStyle.xlDot
            xlBorder = xlBorders(Excel.XlBordersIndex.xlInsideHorizontal)
            xlBorder.LineStyle = Excel.XlLineStyle.xlDot
            excelBook.SaveAs("D:\NewExcelBook.xlsx")

            MessageBox.Show("処理完了")

        Catch ex As Exception
            Throw
        Finally
            excelApp.Quit()
            Call System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet)
            Call System.Runtime.InteropServices.Marshal.ReleaseComObject(excelBook)
            Call System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
        End Try
    End Sub
End Class

結果

まとめ

EXCELの罫線の引き方を紹介しました。

実践や点線以外にも様々な線を指定することができるので是非試してみてください。

 

~罫線を引く場所~

Excel.XlBordersIndex.xlEdgeLeft            '範囲の左側
Excel.XlBordersIndex.xlEdgeRight           '範囲の右側
Excel.XlBordersIndex.xlEdgeTop             '範囲の上側
Excel.XlBordersIndex.xlEdgeBottom          '範囲の下側

Excel.XlBordersIndex.xlInsideVertical      '範囲の内側の縦線
Excel.XlBordersIndex.xlInsideHorizontal    '範囲の内側の横線

Excel.XlBordersIndex.xlDiagonalDown        '斜めの線 左上から右下
Excel.XlBordersIndex.xlDiagonalUp          '斜めの線 左下から右上

 

~罫線の種類~

xlBorder.LineStyle = Excel.XlLineStyle.xlContinuous
xlBorder.LineStyle = Excel.XlLineStyle.xlDash
xlBorder.LineStyle = Excel.XlLineStyle.xlDashDot
xlBorder.LineStyle = Excel.XlLineStyle.xlDashDotDot
xlBorder.LineStyle = Excel.XlLineStyle.xlDot
xlBorder.LineStyle = Excel.XlLineStyle.xlDouble
xlBorder.LineStyle = Excel.XlLineStyle.xlLineStyleNone
xlBorder.LineStyle = Excel.XlLineStyle.xlSlantDashDot

 

VB.NETの記事一覧

おすすめの記事