【マクロVBA】行の高さ・列の幅を指定の数字・ポイント・センチに変更、自動調整する方法

行・列操作

エクセルを使用していると行の高さ・列の幅を変更したくなる事があると思います。

通常の操作での行の高さ・列の幅を変更についてはこちらから☟

文字が長く隠れてしまったら…列の幅・行の高さを手動/数値で任意の幅/高さに変更・または自動調整する ► 独学エクセル塾 (dokugakuexcel.com)

行・列の挿入についてはこちらから☟

【マクロVBA知識 15】行の挿入・削除/列の挿入・削除を様々なパターン・方向で行う ► 独学エクセル塾 (dokugakuexcel.com)

そこで今回はVBAを使用して行の高さ・列の幅を変更する方法を紹介したいと思います

ポイント・センチ・自動調整・複数行/列それぞれまとてますのでぜひ参考にしてみてください。

それでは見ていきましょう。




■忙しい人向けのコピペ用プログラム

赤文字青文字をカスタムして使用してください

・行の高さ

Sub 行の高さを変更()
Rows(行番号).RowHeight=変更したい高さの数値
End sub

・列の幅

Sub 列の幅を変更()
Columns(列番号).ColumnWidth =変更したい列の幅の数値
End Sub

■行の高さを変更する

まず、行の高さを変更する方法から紹介したいと思います。

・指定した行の高さを変更する(ポイント)

まずポイントから説明するとエクセルで使用される『1ポイントは0.3528mm』です。
内訳として1ポイントは1/72インチであり
1インチは25.4mmです。
では実際に変更してみましょう。

行の高さを変更するプログラムは下記の通りです。

Rows(高さを変更したい行数).RowHeight=変更したい高さの数値

とてもシンプルですねRowの後に高さを変更したい行番号を入力し、RowHeightの=の後の数値を変更したい高さの数値に変更すれば行の高さを任意の数値に変更する事ができます。

では見本のプログラムを見てみましょう。
今回は3行目の高さを20にしたいと思います。

Sub 行の高さを変更()

Rows(3).RowHeight=20

End sub

実行前と実行後の結果はこちらです。

狙い通り、3行目の高さを20にする事が出来ました。

・指定した行の高さを変更する(センチ)

先程はポイントを用いた変更方法を紹介しましたが
今度はセンチ(㎝)での行の高さの変更方法を紹介したいと思います。

今度は3行目の高さを5cmにしたいと思います。

先程のプログラムと比較すると『Rows(3).RowHeight=』
までは同じなのですがこの後に
Application.CentimetersToPoints(センチで変更したい行の高さの数値)』
を追加します。
英語の通りですが、これまでのポイントで変更していた数値をセンチに変える効果を持っています。

ではプログラムを作成してみましょう。

Sub 行の高さをセンチで変更()

Rows(3).RowHeight= Application.CentimetersToPoints(5)

End sub

実行前と実行後の結果はこちらです。

狙い通り、3行目の高さを5センチにする事が出来ました。
1ポイントは0.3528mmなので5センチは141.8ポイントになります。

・行の高さを自動調整する

今度は自動調整を見てみましょう。
こちらのプログラムはシンプルです、

Row(自動調整したい行番号).AutoFit

自動調整したい番号を入力してAutoFitでセル高さを自動で変更してくれます。
では実際にプログラムを作成してみましょう。

今回は見本で3行目の高さを自動調整したいと思います。

プログラムはこのようになります。

Sub 行の高さを自動で変更()

Rows(3).AutoFit

End sub

実行した結果はこのようになります。

これでVBAで自動調整が出来るようになりました。

・複数行まとめて調整する

これまでは1つの行のみ調整してきましたが
複数行を1度に変更することも可能です。

下記に見本をのせておきます。

6行目から12行目までを14ポイントにする

Rows(“6:12”).RowHeight=14

7行目から10行目を12センチにする

Rows(“7:12”).RowHeight= Application.CentimetersToPoints(12)

2行目から8行目まで自動調整する

Rows(“2:8”).AutoFit

■列の幅を変更する

では次に列の幅を変更する方法を紹介したいと思います

・指定した列の幅に変更する(ポイント)

まずはプログラムから見てみましょう。
列の幅を変更するプログラムは下記の通りです。

Columns(幅を変更したい列数).ColumnWides=変更したい列の幅の数値

行の高さがRowだったのに対し列の幅はColumnsになります。Columns の後に変更したい列数を入力し、
ColumnWidthの=の後の数値を変更したい幅の数値に変更すれば列の幅を任意の数値に変更する事ができます。

では見本のプログラムを見てみましょう。
今回は2行目の幅を5にしたいと思います。

Sub 列の幅を変更()

Columns(2).ColumnWidth = 5

End Sub

実行前と実行後の結果はこちらです。

狙い通り、2行目の高さを5にする事が出来ました。

・指定した列の幅を変更する(センチ)

行の高さ同様、列の幅をセンチ(㎝)で変更する方法も紹介したいと思います。

今度は4列目の幅を2センチにしたいと思います。

こちらも『Columns(幅を変更したい列数).ColumnWidth=』
までは同じなのですがこの後に
『Application.CentimetersToPoints(センチで変更したい行の高さの数値)』
を追加します。

ではプログラムを作成してみましょう。

Sub 列の幅を変更()

Columns(4).ColumnWidth = Application.CentimetersToPoints(2)

End Sub

実行前と実行後の結果はこちらです。

ここで注意点として本来であれば2センチは「20/0.3528」で「56.689」となります。
※1ポイントは0.3528mmのため。
しかし列の幅は「56.67」になっています。
これは列の機能上、誤差が生まれる仕組みです。正確なセンチで幅を調整できないことを覚えておいてください。

・列の幅を自動調整する

今度は列の幅を自動調整してみましょう。
こちらもプログラムは行の高さの方法と大差ありません。

Columns(自動調整したい列番号).AutoFit

自動調整したい番号を入力してAutoFitでセルに入力した文字・数値に合わせて幅を変更してくれます。
では実際にプログラムを作成してみましょう。

今回は見本で2列目の高さを自動調整したいと思います。

プログラムはこのようになります。

Sub 列の幅を自動で変更()

Columns(2).AutoFit

End sub

実行した結果はこのようになります。

調整できていますね。

列の幅の調整は使用頻度も多いと思うので
ぜひ活用してみてください

・複数列まとめて調整する

これまでは1つの列のみ調整してきましたが
複数列を1度に変更することも可能です。

下記に見本をのせておきます。

6(F)列目から12(L)列目までを14ポイントにする

Columns(“F:L”).ColumnWidth = 14

7(G)列目から10(J)列目を12センチにする

Columns(“G:J”).ColumnWidth = Application.CentimetersToPoints(3)

2(B)列目から8(H)列目まで自動調整する

Columns(“B:H”).AutoFit

⬛︎公式の説明

わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟

Slicer.RowHeight プロパティ (Excel) | Microsoft Learn

Range.ColumnWidth プロパティ (Excel) | Microsoft Learn

■まとめ

いかがだったでしょうか。
行の調整や列の調整は文字が長くなれば必要な知識になってきます。

普段行っている行の高さと列の幅の調整がVBAを使用して自動で行えるのでぜひ活用してみてください。

それでは次回の記事でお会いしましょう。

コメント

  1. […] 【マクロVBA㉜】行の高さ・列の幅を指定の数字・ポイント・センチに変更、自動調整する方法 ► 独学エクセル塾 (dokugakuexcel.com) […]