動作検証バージョン: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
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の違い