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

 Excel2016

3行マクロ 67回

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

任意のひとまとまりの セル範囲だけ選択して、 行の高さや列幅を変更したい、あるいは使われている 範囲を その部分だけを選択して、 列幅や行の高さを変更したい という場合に、簡単にマクロで実行する方法をご紹介します。
CurrentRegionとUsedRangeの使い分けを学習します。

(サンプルファイルは、こちらから 3行マクロ67回サンプルデータ

任意のセルが含まれている表やセル範囲の選択

今日は表の行の高さ、あるいは列の幅、これらを 変更するマクロを作りたいと思います。 ご覧いただいているシートには、a グループ b グループというふうに2つの表が表示されています。上の表だけ選択して、行の幅を広げたいというようなことがあったとします。
表の行の高さや列の幅だけ変更マクロ1
この表を選択するショートカットキーは、
Ctrl + Shift + *
これはCurrentRegion.Select というコードで表すことができます。
表の行の高さや列の幅だけ変更マクロ2

ワークシートで使用されているセル範囲

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

ワークシートで使用されているセル範囲

マクロの記録でCtrl + Shift + *
を選択する操作を記録します。コードは以下のようになりました。
表の行の高さや列の幅だけ変更マクロ4
このコードからUsedRangeのコードを作ります。
UsedRangeの親オブジェクトはWorksheetsです。ですからここでは
ActiveSheet.UsedRange.Select
表の行の高さや列の幅だけ変更マクロ5
実行すると、2つの表を含む範囲が選択されています。
NAMAマクロ6

マクロで行の高さを変更するには

行の高さを変更するため、最初のコードをリメイクします。この時に、コードの汎用性を高めるために、Range(”B3”)をActiveCellに変更します。Selectionでもよいです。
行の高さはRowHeightプロパティで設定します。RowHeight = 30
表の行の高さや列の幅だけ変更マクロ7
コードは次のようになりました。1行にまとめています。
Sub 行の高さを変更CurrentRegion()
    ActiveCell.CurrentRegion.RowHeight = 30
End Sub
実行すると、上の表だけ、行の幅が30と広くなりました。
表の行の高さや列の幅だけ変更マクロ8
では、2つの表をまとめてUsedRangeで行の高さを変更してみましょう。
Sub 行の高さを変更UsedRange()
' Sheets("Sheet1")
    ActiveSheet.UsedRange.RowHeight = 25
End Sub
2つの表を含む範囲が行幅25に変更されました。
表の行の高さや列の幅だけ変更マクロ9

マクロで列の幅を変更するにはColumnWidth

次はマクロで列の幅を変更してみましょう。列の幅を設定するプロパティは、ColumnWidthです。
表の行の高さや列の幅だけ変更マクロ10
コードをリメイクして変更します。最初は、CurrentRegionから。
Sub 列の幅を変更_CurrentRegion()
    ActiveCell.CurrentRegion.ColumnWidth = 20
End Sub
表の行の高さや列の幅だけ変更マクロ11
続いて、UsedRangeの方で列幅を変更しましょう。結果は下図のようになります。とても便利なコードなので、列幅の数値などを変更して活用してみてください。
Sub 列の幅を変更_UsedRange()
    ActiveSheet.UsedRange.ColumnWidth = 15
End Sub
表の行の高さや列の幅だけ変更マクロ12

こちらもおすすめ