Home » Excel VBA Rangeオブジェクト » Excel VBAのWidthとColumnWidthの違い

動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2306 ビルド16529.20000)

「EXCEL VBA WidthとColumnWidth違い」
といった検索でアクセスがありました。

Excel VBAでセルを表すRangeオブジェクトの、Widthプロパティと

ColumnWidthプロパティは

何が違うのかを調べていらしたのでしょう。

[スポンサードリンク]

Range.WidthとRange.ColumnWidthを確認するサンプルマクロ

以下のExcelマクロを実行してみてください。

Sub WidthとColumnWidthを確認する
 With ActiveCell
  Debug.Print .Width
  Debug.Print .ColumnWidth
 End With
End Sub

イミディエイトウィンドウに、

52.8
8.1

などと出力されます。

上記の例の場合「52.8」がRange.Widthで取得できる数値、「8.1」がRange.ColumnWidthで取得できる数値です。

Range.WidthとRange.ColumnWidthの違い

Range.Widthで取得できるのはポイント数で、Range.ColumnWidthで取得できるのは文字数です。

先ほどの例ならば、Range.Widthで取得できる値は52.8ポイント、Range.ColumnWidthで取得できる値は8.1文字ということです。

この文字数の基準となるのは、プロポーショナルフォントの「0(ゼロ)」です。
ヘルプには

1単位の列幅は、標準スタイルの1文字の幅に等しくなります。プロポーショナルフォントでは、数字の0の幅が列幅の単位になります。

と書かれています。

上記の例の場合、「0」が8.1個分の幅ということになります。

また、Range.Widthは読み取り専用のプロパティですから設定はできず、Range.ColumnWidthは設定もできるという違いもあります。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Excel VBAのWidthとColumnWidthの違い

「Excel VBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.