Excel VBA 逆引き集 | セル幅・高さの設定

Excel VBA
スポンサーリンク

セル幅・高さの設定

表を見やすくするために「列幅」「行高さ」を調整する方法を、初心者向けにわかりやすくまとめました。基本は ColumnWidthRowHeight プロパティを使います。自動調整は AutoFit が便利です。


基本:列幅・行高さを指定する

Sub SetWidthHeight_Basic()
    '列幅を設定(A列を20文字分)
    Columns("A").ColumnWidth = 20

    '行高さを設定(1行目を30ポイント)
    Rows(1).RowHeight = 30

    '特定セル範囲にまとめて設定
    Range("B2:D2").RowHeight = 25
    Range("B2:D2").ColumnWidth = 15
End Sub
VB
  • ポイント:
    • ColumnWidth: 文字数基準で幅を指定。
    • RowHeight: ポイント単位で高さを指定。
    • 範囲指定: Range に対しても一括で設定可能。

自動調整(AutoFit)

Sub AutoFitExample()
    'A列の幅を内容に合わせて自動調整
    Columns("A").AutoFit

    '2行目の高さを内容に合わせて自動調整
    Rows(2).AutoFit

    '表全体を自動調整
    Range("B2:E20").Columns.AutoFit
    Range("B2:E20").Rows.AutoFit
End Sub
VB
  • ポイント:
    • AutoFit: 内容に合わせて最適な幅・高さに自動調整。
    • 見出しが長い場合: AutoFitすると幅が広がりすぎることがあるので、必要なら ColumnWidth で制限。

複数列・複数行をまとめて設定

Sub SetMultipleWidthsHeights()
    'B〜D列を幅15に
    Columns("B:D").ColumnWidth = 15

    '3〜5行を高さ25に
    Rows("3:5").RowHeight = 25
End Sub
VB
  • ポイント: 範囲指定で複数列・行をまとめて設定できる。見出し行やデータ列を一括整形すると効率的。

表の見出しを整えるテンプレート

Sub FormatHeader()
    With Range("B2:E2")
        .RowHeight = 30
        .Font.Bold = True
        .HorizontalAlignment = xlCenter
        .Interior.Color = RGB(217, 217, 217)
    End With
    Columns("B:E").ColumnWidth = 18
End Sub
VB
  • ポイント: 見出しは「高さを少し広め」「太字」「中央揃え」「背景色」で見やすく。

例題で練習

例題1:売上表の列幅を自動調整+行高さを固定

Sub Example_SalesTableFormat()
    Columns("B:E").AutoFit
    Rows("2:20").RowHeight = 22
End Sub
VB

例題2:コード列は幅を固定(等幅フォントと相性良し)

Sub Example_CodeColumn()
    Columns("A").ColumnWidth = 12
    Columns("A").Font.Name = "MS Gothic"
End Sub
VB

例題3:見出し行を高さ30、本文行を高さ20に

Sub Example_HeaderBodyHeight()
    Rows(2).RowHeight = 30
    Rows("3:100").RowHeight = 20
End Sub
VB

実務の落とし穴と対策

  • AutoFitで幅が広がりすぎる: 長い文字列があると列幅が極端に広がる。必要なら最大幅を ColumnWidth で制限。
  • 結合セルのAutoFitが効かない: 結合セルは AutoFitできない。結合を避けるか、RowHeight/ColumnWidth を手動指定。
  • 大量範囲で遅い: ScreenUpdating=False を併用すると高速化。
  • 見た目と印刷のズレ: 印刷時は「ページレイアウト」で確認。列幅・行高さは画面と印刷で印象が変わることがある。
タイトルとURLをコピーしました