列の幅と行の高さを揃えるのにもマクロは役立つ
最近Excelで表を作っているときに、見栄えを良くするのに列の幅を変更することがあったのですが、いくつもの列を同じ幅に揃えるのって面倒に感じました。
全部の列を一気に選択して一回で済ませられればすぐに済むのですが、実際は作業しながらレイアウトを考えたりもするので、途中で変更しないといけないことが多く、そんな時に微妙な1ピクセルの違いが妙に気になり、ムダに時間がかかりました。
そこで今回は列の幅、行の高さを変更するVBAコードを使い作業負担を軽くする方法を考えてみました。
列の幅・行の高さを変更するVBAコードは簡単
マクロの記録でも簡単に作成できますが、コードを直接書くと1行で済むのでより簡単です。
選択した列の幅を9に変更するVBAコードは以下のようになります。
Selection.ColumnWidth = 9
End Sub
また行の高さを変更するVBAコードは以下の通りです。
Selection.RowHeight = 18
End Sub
上記のVBAコードは行・列を選択しているときに使用するものになります。
スポンサーリンク
選択しているセルを含む列の幅・行の高さを変更するVBAコード
Excel2016に入っているVBAではセルを選択しているときでも上記のVBAコードはきちんと動作しますが、セルを選択しているときに、そのセルの列幅や高さを変更するVBAコードは以下のようになります。
’セルを選択しているとき
Selection.EntireColumn.ColumnWidth = 9
End Sub
’セルを選択しているとき
Selection.EntireRow.RowHeight = 18
End Sub
列・行を指定して幅や高さを変更するVBAコード
上記のSelectionの部分を変更することで、指定した列幅を変更したり、行の高さを変更することができます。
たとえば、以下のVBAコードで2行目の高さを30にできます。
Rows(2).RowHeight = 30
End Sub
行の高さに関しても同様で、以下のVBAコードを実行するとB列の幅を30に変更できます。
Columns(2).ColumnWidth = 30
End Sub
列の選択も行と同じように数字を用いています。(A列は1、B列は2と続く)
数字を用いておくと変数を使って一気に変更することもできます。
以下のVBAコードは100列目まで列幅を30と10に交互に指定します。
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コードで幅を指定するときは文字数でしか表せません。
おすすめ書籍 (広告)
Amazon 楽天 Yahoo検索 |
---|
Amazon 価格:¥2,420円 |
楽天Kobo電子書籍ストア 価格:2,574円 |
楽天Kobo電子書籍ストア 価格:2,574円 |
bookfanプレミアム 価格:2,420円 |
bookfanプレミアム 価格:2,200円 |
コメント