ワークシート上のレコードを確認しやすくしたり、見栄え良くしたりする目的でよく行われる行高さ変更のサンプルコードす。
ショートコードでは使われることは少ないですが、一連の集計をVBAで実行した最後に、報告用に使う表の書式設定をVBAで実行させる事があります。
その中に行高さを変更する場合には、本記事で紹介するVBAコードが使えます。
では、さっそくコードを真似て書いてみてくださいね。
書き終わりましたら、つぎは実行してみましょう。すると下図のように行の高さが変わりましたよね。
それでは、つづけてコードの話にうつりましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Option Explicit '行の高さを変更する Sub Sample023() Dim r As Long '行ルーチン用変数 'Rangeオブジェクト設定用オブジェクト変数 Dim rngSelf As Range 'オブジェクト変数「rngSelf」に、データ範囲を設定 Set rngSelf = Range("A1").CurrentRegion 'データ範囲の行高さを50ピクセルに設定 rngSelf.RowHeight = 30 End Sub |
8行目:Dim rngSelf As Range
セル範囲をRangeオブジェクトへ設定するための変数です。
11行目:Set rngSelf = Range("A1").CurrentRegion
Rangeオブジェクトをオブジェクト変数に代入するVBAコードです。今回は初登場になります「.CurrentRegion」については次で詳しくお話ししますね。
「Range("A1").CurrentRegion」とは、図のようにA1セルを含む一続きのデータ範囲のことで、上図のように空白列と空白行に囲まれた部分のことになります。
もう2つくらい例を出しましょうね。
上の図は、黄色いセルD2に対する「.CurrentRegion」になります。セルD2を含み、周りが空白行と空白列で囲まれた範囲(A1:F2)になります。
上の図は、B5セルに対する「.CurrentRegion」になります。セルB5を含み、周りが空白行、空白列で囲まれた範囲(A4:C5)になります。
14行目:rngSelf.RowHeight = 30
ここで、Rangeオブジェクト「rngSelf」に対し、行高さを30に変更しています。最初にご覧いただいたVBAコード実行後のExcelシートが高さ30になっていることを確認してみてください。
まとめ
今回は、VBAコードでデータ一覧の行高さを変更してみました。そして、初登場のコード「.CurrentRegion」についてお話ししました。「.CurrentRegion」は、VBA集計業務では比較的使われる方ですので、覚えておいてくださいね。