列の幅と行の高さを揃えるExcelVBAコード(マクロ)

スポンサーリンク

列の幅と行の高さを揃えるのにもマクロは役立つ

最近Excelで表を作っているときに、見栄えを良くするのに列の幅を変更することがあったのですが、いくつもの列を同じ幅に揃えるのって面倒に感じました。

全部の列を一気に選択して一回で済ませられればすぐに済むのですが、実際は作業しながらレイアウトを考えたりもするので、途中で変更しないといけないことが多く、そんな時に微妙な1ピクセルの違いが妙に気になり、ムダに時間がかかりました。

そこで今回は列の幅、行の高さを変更するVBAコードを使い作業負担を軽くする方法を考えてみました。

列の幅・行の高さを変更するVBAコードは簡単

マクロの記録でも簡単に作成できますが、コードを直接書くと1行で済むのでより簡単です。
選択した列の幅を9に変更するVBAコードは以下のようになります。

Sub 選択している列の幅を変更する()
Selection.ColumnWidth = 9
End Sub

また行の高さを変更するVBAコードは以下の通りです。

Sub 選択している行の高さを変更する()
Selection.RowHeight = 18
End Sub

上記のVBAコードは行・列を選択しているときに使用するものになります。

スポンサーリンク

選択しているセルを含む列の幅・行の高さを変更するVBAコード

Excel2016に入っているVBAではセルを選択しているときでも上記のVBAコードはきちんと動作しますが、セルを選択しているときに、そのセルの列幅や高さを変更するVBAコードは以下のようになります。

Sub 選択しているセルの列の幅を変更する2()
’セルを選択しているとき
Selection.EntireColumn.ColumnWidth = 9
End Sub
Sub 選択しているセルの行の高さを変更する2()
’セルを選択しているとき
Selection.EntireRow.RowHeight = 18
End Sub

列・行を指定して幅や高さを変更するVBAコード

上記のSelectionの部分を変更することで、指定した列幅を変更したり、行の高さを変更することができます。
たとえば、以下のVBAコードで2行目の高さを30にできます。

Sub 行の高さを変更する3()
Rows(2).RowHeight = 30
End Sub

行の高さに関しても同様で、以下のVBAコードを実行するとB列の幅を30に変更できます。

Sub 列の幅を変更する3()
Columns(2).ColumnWidth = 30
End Sub

列の選択も行と同じように数字を用いています。(A列は1、B列は2と続く)
数字を用いておくと変数を使って一気に変更することもできます。
以下のVBAコードは100列目まで列幅を30と10に交互に指定します。

Sub 一列おきに列幅を変更する()
Dim i As Integer
For i = 1 To 99 Step 2
Columns(i).ColumnWidth = 30
Columns(i + 1).ColumnWidth = 10
Next i
End Sub

列の幅・行の高さの単位に注意

行の高さはポイントという単位で、列の幅は文字数を表しています。

行の高さを表すポイントの大きさは1pt=約0.35mmですが、列の幅は標準のフォントのサイズで変わるので、その値がどれくらいの大きさなのかは一度確認しておく必要があります。

新しいExcelではセルの幅をmmやcmで表示することも可能ですが、VBAコードで幅を指定するときは文字数でしか表せません。

おすすめ書籍 (広告)

コメント