VB.NET DataGridView フォントサイズを設定する方法

DataGridViewのフォントを設定する方法をご紹介します。

DataGridView全体のフォントサイズ設定

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'ユーザーからのデータ追加を不可にしておく
        DataGridView1.AllowUserToAddRows = False

        '列数,行数設定
        DataGridView1.ColumnCount = 4
        DataGridView1.RowCount = 4

        '列名設定
        DataGridView1.Columns(0).HeaderText = "No"
        DataGridView1.Columns(1).HeaderText = "商品名"
        DataGridView1.Columns(2).HeaderText = "製造元"
        DataGridView1.Columns(3).HeaderText = "価格"

        '値をセット
        DataGridView1.Rows(0).HeaderCell.Value = "ヘッダー1"
        DataGridView1.Rows(0).Cells(0).Value = 1
        DataGridView1.Rows(0).Cells(1).Value = "商品A"
        DataGridView1.Rows(0).Cells(2).Value = "製造元A"
        DataGridView1.Rows(0).Cells(3).Value = 1000

        DataGridView1.Rows(1).HeaderCell.Value = "ヘッダー2"
        DataGridView1.Rows(1).Cells(0).Value = 2
        DataGridView1.Rows(1).Cells(1).Value = "商品B"
        DataGridView1.Rows(1).Cells(2).Value = "製造元B"
        DataGridView1.Rows(1).Cells(3).Value = 3000

        DataGridView1.Rows(2).HeaderCell.Value = "ヘッダー3"
        DataGridView1.Rows(2).Cells(0).Value = 3
        DataGridView1.Rows(2).Cells(1).Value = "商品C"
        DataGridView1.Rows(2).Cells(2).Value = "製造元C"
        DataGridView1.Rows(2).Cells(3).Value = 5000

        DataGridView1.Rows(3).HeaderCell.Value = "ヘッダー4"
        DataGridView1.Rows(3).Cells(0).Value = 4
        DataGridView1.Rows(3).Cells(1).Value = "商品D"
        DataGridView1.Rows(3).Cells(2).Value = "製造元D"
        DataGridView1.Rows(3).Cells(3).Value = 10000

        '列ヘッダーの高さが自動調整されるようにする
        DataGridView1.ColumnHeadersHeightSizeMode =
        DataGridViewColumnHeadersHeightSizeMode.AutoSize

        '行ヘッダーの幅が自動調整されるようにする
        DataGridView1.RowHeadersWidthSizeMode =
        DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders

        'ヘッダーとすべてのセルの内容に合わせて列幅を自動調整する
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells

        'ヘッダーとすべてのセルの内容に合わせて行高を自動調整する
        DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DataGridView1.Font = New Font(“MS ゴシック”, 20)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        DataGridView1.Font = New Font(“MS ゴシック”, 8)
    End Sub
End Class

DataGridView全体のフォントサイズを設定するには、
DataGridView.Fontを使います。

DataGridView1.Font = New Font(“MS ゴシック”, 20)

Newを使って新しいFontオブジェクトを作成し、
フォント名とサイズを指定します。

現在適用されているフォント名をそのまま使う場合は、
以下のように書きます。

DataGridView1.Font = New Font(DataGridView1.Font.Name, 20)



フォントサイズの変更に伴って、
ヘッダーや各セルの縦幅と横幅の調整が必要になりますが、
この設定を自動化するには、以下のように書いておきます。

'列ヘッダーの高さが自動調整されるようにする
DataGridView1.ColumnHeadersHeightSizeMode =
DataGridViewColumnHeadersHeightSizeMode.AutoSize

'行ヘッダーの幅が自動調整されるようにする
DataGridView1.RowHeadersWidthSizeMode =
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders

'ヘッダーとすべてのセルの内容に合わせて列幅を自動調整する
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells

'ヘッダーとすべてのセルの内容に合わせて行高を自動調整する
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

書く場所は、Form_Loadの中で問題ないでしょう。


もし、書かないと以下のような感じになってしまいます。

指定した列、行のみフォントサイズを変更する

指定した列、行のみフォントを変更したい時は、以下のように書きます。

'列
DataGridView1.Columns(0).DefaultCellStyle.Font = New Font(“MS ゴシック”, 20)

'行
DataGridView1.Rows(0).DefaultCellStyle.Font = New Font(“MS ゴシック”, 8)

「指定されたインデックス」の列のみ、フォント設定が適用されます。

スポンサーリンク

列ヘッダー、行ヘッダーのみフォントサイズを変更する

列ヘッダーのみ、行ヘッダーのみフォント変更したい場合は
以下のように書きます。

'列ヘッダー
DataGridView1.ColumnHeadersDefaultCellStyle.Font = New Font(“MS ゴシック”, 20)

'行ヘッダー
DataGridView1.RowHeadersDefaultCellStyle.Font = New Font(“MS ゴシック”, 20)

指定したセルのみフォントサイズを変更する

指定されたセルのみフォント設定したい場合は、
以下のように書きます。

DataGridView1(0, 0).Style.Font = New Font(“MS ゴシック”, 20)

フォント設定適用の優先度

フォント設定が適用される優先度が存在しますので、
注意する必要があります。

また、フォント設定が重なったセルがあっても、
フォント設定の上書きはされません。

例えば、セル(0,0)のフォントを20に設定し、
0行目のフォントを10に設定したとしても、
セル(0,0)のフォントは20のまま。
と言う事です。

上の方が優先度が高くなっています。

  1. DataGridViewCell.Style
  2. DataGridViewRow.DefaultCellStyle
  3. DataGridView.AlternatingRowsDefaultCellStyle
  4. DataGridView.RowsDefaultCellStyle
  5. DataGridViewColumn.DefaultCellStyle
  6. DataGridView.DefaultCellStyle

これでDataGridViewのフォントサイズ設定ができるようになりました。