ExcelのVBAを使用して、列幅や行高さを設定する際は単位の違いに注意が必要。知らないと混乱の元になるので備忘録。
具体的には、行の高さを設定するRowHeightと、列の幅を設定するColumnWidthを使って、
Rows(1).RowHeight = 30
Columns(1).ColumnWidth = 30
で、同じ"30"の設定値としても、単位が違うので数値の意味が違うということ。
列の幅を設定する際の単位は、文字数
行の高さを設定する際の単位は、ポイント
と違うので注意が必要です。
なお、文字数は、標準スタイルの 1 文字を基準に換算。プロポーショナルフォントでは、数字の 0 の幅が列幅の単位になる。
なお、VBAで、列幅を変更できるのは、前述の以下2つ。
Range.ColumnWidth プロパティ (Excel) | Microsoft Learn
Range.RowHeight プロパティ (Excel) | Microsoft Learn
次のWidth プロパティや、Height プロパティでは、列幅の読み取りだけで設定変更ができない。ただし、単位はいずれもポイント。
Range.Width プロパティ (Excel) | Microsoft Learn
Range.Height プロパティ (Excel) | Microsoft Learn
以上、Excel VBAで列幅や行高さを設定する際は単位の違いに注意が必要という備忘録でした。