shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】VBAで列幅と行高さを設定する際は単位の違いに注意

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で列幅や行高さを設定する際は単位の違いに注意が必要という備忘録でした。