任意の表の行の高さや列の幅だけ変更
3行マクロ 67回
表の行の高さや列の幅だけ変更
任意のひとまとまりの セル範囲だけ選択して、 行の高さや列幅を変更したい、あるいは使われている 範囲を その部分だけを選択して、 列幅や行の高さを変更したい という場合に、簡単にマクロで実行する方法をご紹介します。
CurrentRegionとUsedRangeの使い分けを学習します。
(サンプルファイルは、こちらから 3行マクロ67回サンプルデータ)
任意のセルが含まれている表やセル範囲の選択
今日は表の行の高さ、あるいは列の幅、これらを
変更するマクロを作りたいと思います。
ご覧いただいているシートには、a グループ b グループというふうに2つの表が表示されています。上の表だけ選択して、行の幅を広げたいというようなことがあったとします。
この表を選択するショートカットキーは、
Ctrl + Shift + *
これはCurrentRegion.Select というコードで表すことができます。
Ctrl + Shift + *
これはCurrentRegion.Select というコードで表すことができます。
ワークシートで使用されているセル範囲
2つ目のBグループの表も一緒に選択したい時は、ワークシートで使用済中のセル範囲を選択するUsedRangeというコードがありますが、これにはショートカットはありません。
ワークシートで使用されているセル範囲
マクロの記録でCtrl + Shift + *
を選択する操作を記録します。コードは以下のようになりました。
を選択する操作を記録します。コードは以下のようになりました。
このコードからUsedRangeのコードを作ります。
UsedRangeの親オブジェクトはWorksheetsです。ですからここでは
UsedRangeの親オブジェクトはWorksheetsです。ですからここでは
ActiveSheet.UsedRange.Select
実行すると、2つの表を含む範囲が選択されています。
マクロで行の高さを変更するには
行の高さを変更するため、最初のコードをリメイクします。この時に、コードの汎用性を高めるために、Range(”B3”)をActiveCellに変更します。Selectionでもよいです。
行の高さはRowHeightプロパティで設定します。RowHeight = 30
行の高さは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