任意の表の行の高さや列の幅だけ変更
3行マクロ 67回
表の行の高さや列の幅だけ変更
任意のひとまとまりの セル範囲だけ選択して、 行の高さや列幅を変更したい、あるいは使われている 範囲を その部分だけを選択して、 列幅や行の高さを変更したい という場合に、簡単にマクロで実行する方法をご紹介します。
CurrentRegionとUsedRangeの使い分けを学習します。
(サンプルファイルは、こちらから 3行マクロ67回サンプルデータ)
任意のセルが含まれている表やセル範囲の選択
今日は表の行の高さ、あるいは列の幅、これらを
変更するマクロを作りたいと思います。
ご覧いただいているシートには、a グループ b グループというふうに2つの表が表示されています。上の表だけ選択して、行の幅を広げたいというようなことがあったとします。
![表の行の高さや列の幅だけ変更マクロ1](gazo2019/mini/mini_macro-67_01.png)
![表の行の高さや列の幅だけ変更マクロ1](gazo2019/mini/mini_macro-67_01.png)
この表を選択するショートカットキーは、
Ctrl + Shift + *
これはCurrentRegion.Select というコードで表すことができます。
![表の行の高さや列の幅だけ変更マクロ2](gazo2019/mini/mini_macro-67_02.png)
Ctrl + Shift + *
これはCurrentRegion.Select というコードで表すことができます。
![表の行の高さや列の幅だけ変更マクロ2](gazo2019/mini/mini_macro-67_02.png)
ワークシートで使用されているセル範囲
2つ目のBグループの表も一緒に選択したい時は、ワークシートで使用済中のセル範囲を選択するUsedRangeというコードがありますが、これにはショートカットはありません。
![表の行の高さや列の幅だけ変更マクロ3](gazo2019/mini/mini_macro-67_03.png)
![表の行の高さや列の幅だけ変更マクロ3](gazo2019/mini/mini_macro-67_03.png)
ワークシートで使用されているセル範囲
マクロの記録でCtrl + Shift + *
を選択する操作を記録します。コードは以下のようになりました。
![表の行の高さや列の幅だけ変更マクロ4](gazo2019/mini/mini_macro-67_04.png)
を選択する操作を記録します。コードは以下のようになりました。
![表の行の高さや列の幅だけ変更マクロ4](gazo2019/mini/mini_macro-67_04.png)
このコードからUsedRangeのコードを作ります。
UsedRangeの親オブジェクトはWorksheetsです。ですからここでは![表の行の高さや列の幅だけ変更マクロ5](gazo2019/mini/mini_macro-67_05.png)
UsedRangeの親オブジェクトはWorksheetsです。ですからここでは
ActiveSheet.UsedRange.Select
![表の行の高さや列の幅だけ変更マクロ5](gazo2019/mini/mini_macro-67_05.png)
実行すると、2つの表を含む範囲が選択されています。
![NAMAマクロ6](gazo2019/mini/mini_macro-67_06.png)
![NAMAマクロ6](gazo2019/mini/mini_macro-67_06.png)
マクロで行の高さを変更するには
行の高さを変更するため、最初のコードをリメイクします。この時に、コードの汎用性を高めるために、Range(”B3”)をActiveCellに変更します。Selectionでもよいです。
行の高さはRowHeightプロパティで設定します。RowHeight = 30
![表の行の高さや列の幅だけ変更マクロ7](gazo2019/mini/mini_macro-67_08.png)
行の高さはRowHeightプロパティで設定します。RowHeight = 30
![表の行の高さや列の幅だけ変更マクロ7](gazo2019/mini/mini_macro-67_08.png)
コードは次のようになりました。1行にまとめています。
![表の行の高さや列の幅だけ変更マクロ8](gazo2019/mini/mini_macro-67_07.png)
Sub 行の高さを変更CurrentRegion() ActiveCell.CurrentRegion.RowHeight = 30 End Sub実行すると、上の表だけ、行の幅が30と広くなりました。
![表の行の高さや列の幅だけ変更マクロ8](gazo2019/mini/mini_macro-67_07.png)
では、2つの表をまとめてUsedRangeで行の高さを変更してみましょう。
![表の行の高さや列の幅だけ変更マクロ9](gazo2019/mini/mini_macro-67_09.png)
Sub 行の高さを変更UsedRange() ' Sheets("Sheet1") ActiveSheet.UsedRange.RowHeight = 25 End Sub2つの表を含む範囲が行幅25に変更されました。
![表の行の高さや列の幅だけ変更マクロ9](gazo2019/mini/mini_macro-67_09.png)
マクロで列の幅を変更するにはColumnWidth
次はマクロで列の幅を変更してみましょう。列の幅を設定するプロパティは、ColumnWidthです。
![表の行の高さや列の幅だけ変更マクロ10](gazo2019/mini/mini_macro-67_10.png)
![表の行の高さや列の幅だけ変更マクロ10](gazo2019/mini/mini_macro-67_10.png)
コードをリメイクして変更します。最初は、CurrentRegionから。
![表の行の高さや列の幅だけ変更マクロ11](gazo2019/mini/mini_macro-67_11.png)
Sub 列の幅を変更_CurrentRegion() ActiveCell.CurrentRegion.ColumnWidth = 20 End Sub
![表の行の高さや列の幅だけ変更マクロ11](gazo2019/mini/mini_macro-67_11.png)
続いて、UsedRangeの方で列幅を変更しましょう。結果は下図のようになります。とても便利なコードなので、列幅の数値などを変更して活用してみてください。
![表の行の高さや列の幅だけ変更マクロ12](gazo2019/mini/mini_macro-67_12.png)
Sub 列の幅を変更_UsedRange() ActiveSheet.UsedRange.ColumnWidth = 15 End Sub
![表の行の高さや列の幅だけ変更マクロ12](gazo2019/mini/mini_macro-67_12.png)