HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > 列幅を設定する(ColumnWidthプロパティ)

即効テクニック

セル操作関連のテクニック

列幅を設定する(ColumnWidthプロパティ)

(Excel 2000)
指定したセル範囲のすべての列幅を、標準スタイルのフォントで表示できる文字数で設定します。プロポーショナルフォントの場合は、1文字分の幅の基準値は「0」になります。標準スタイルは、ツールバーの[書式]−[スタイル]で表示されるダイアログボックスで、ブック単位で設定できます。[ツール]−[オプション]の[全般]パネルからはExcelのシステム単位でも設定できますが、この場合、変更を反映させるにはExcelの再起動が必要です。

 構文 Object.ColumnWidth	取得/設定

 設定項目  内容
 Object   Rangeオブジェクト

次のサンプル1は、A〜C列の幅を標準スタイルのフォントで12文字表示できる幅に設定します。
●サンプル1●
Sub ColumnWidthSamp1()

    Columns("A:C").ColumnWidth = 12
'   Range("A1:C1").ColumnWidth = 12    こちらでも結果は同じです
    Range("A1") = "A列〜C列の列幅は" & Columns("A:C").ColumnWidth

End Sub
なお、列幅の取得時に複数列を指定した場合、すべての列幅が同じでなければNullを返します。

●解説●
WidthプロパティはColumnWidthプロパティに似ていますが、こちらは列幅をポイント単位で取得します。この違いは、次のサンプル2で確認できます。プログラム中で標準フォントのサイズを変更しているのですが、ColumnWidthプロパティが影響を受けないのに対し、Widthプロパティは値が変わっています。
●サンプル2●
Sub ColumnWidthSamp2()

    With ActiveWorkbook.Styles("Normal").Font
	'標準スタイルのフォントサイズを10に設定する
        .Size = 10
    End With
    'セルA〜C列の列幅を10に設定する
    Columns("A:C").ColumnWidth = 10
    'セルA1にColumnWidthプロパティ
    Range("A1") = Columns("A").ColumnWidth
    'セルA3にWidthプロパティ
    Range("A3") = Columns("A").Width
    With ActiveWorkbook.Styles("Normal").Font
	'標準スタイルのフォントサイズを11に設定する
        .Size = 11
    End With
    'セルB1にColumnWidthプロパティ
    Range("B1") = Columns("B").ColumnWidth
    'セルB3にWidthプロパティ
    Range("B3") = Columns("B").Width

End Sub
複数の列を指定した場合にもWidthプロパティは返す結果が異なります。