任意の表の行の高さや列の幅だけ変更
Excel2016

3行マクロ 67回
表の行の高さや列の幅だけ変更
任意のひとまとまりの セル範囲だけ選択して、 行の高さや列幅を変更したい、あるいは使われている 範囲を その部分だけを選択して、 列幅や行の高さを変更したい という場合に、簡単にマクロで実行する方法をご紹介します。
CurrentRegionとUsedRangeの使い分けを学習します。
(サンプルファイルは、こちらから 3行マクロ67回サンプルデータ)
任意のセルが含まれている表やセル範囲の選択
今日は表の行の高さ、あるいは列の幅、これらを
変更するマクロを作りたいと思います。
ご覧いただいているシートには、a グループ b グループというふうに2つの表が表示されています。上の表だけ選択して、行の幅を広げたいというようなことがあったとします。

この表を選択するショートカットキーは、
Ctrl +
Shift +
*
これは
CurrentRegion.Select というコードで表すことができます。

ワークシートで使用されているセル範囲
2つ目のBグループの表も一緒に選択したい時は、ワークシートで使用済中のセル範囲を選択する
UsedRangeというコードがありますが、これにはショートカットはありません。

ワークシートで使用されているセル範囲
マクロの記録で
Ctrl +
Shift +
* を選択する操作を記録します。コードは以下のようになりました。

このコードから
UsedRangeのコードを作ります。
UsedRangeの親オブジェクトはWorksheetsです。ですからここでは
ActiveSheet.UsedRange.Select

実行すると、2つの表を含む範囲が選択されています。

マクロで行の高さを変更するには
行の高さを変更するため、最初のコードをリメイクします。この時に、コードの汎用性を高めるために、Range(”B3”)をActiveCellに変更します。Selectionでもよいです。
行の高さはRowHeightプロパティで設定します。
RowHeight = 30

コードは次のようになりました。1行にまとめています。
Sub 行の高さを変更CurrentRegion()
ActiveCell.CurrentRegion.RowHeight = 30
End Sub実行すると、上の表だけ、行の幅が30と広くなりました。

では、2つの表をまとめてUsedRangeで行の高さを変更してみましょう。
Sub 行の高さを変更UsedRange()
' Sheets("Sheet1")
ActiveSheet.UsedRange.RowHeight = 25
End Sub2つの表を含む範囲が行幅25に変更されました。

マクロで列の幅を変更するにはColumnWidth
次はマクロで列の幅を変更してみましょう。列の幅を設定するプロパティは、ColumnWidthです。

コードをリメイクして変更します。最初は、CurrentRegionから。
Sub 列の幅を変更_CurrentRegion()
ActiveCell.CurrentRegion.ColumnWidth = 20
End Sub

続いて、UsedRangeの方で列幅を変更しましょう。結果は下図のようになります。とても便利なコードなので、列幅の数値などを変更して活用してみてください。
Sub 列の幅を変更_UsedRange()
ActiveSheet.UsedRange.ColumnWidth = 15
End Sub
