エクセルは表計算ソフトです。
データベースの考えでいくと空白行がないのがよいのですが、
印刷する場合など一行を開けたい場合があります。
マクロで処理させることで一行ごとに空白行を設定し、見やすくします。
表を一行おきに空白行を挿入する
For~Nextで最終行から開始行まで処理をします。
大事なのは以下
・行削除の場合と同様で、行を追加するとループがずれます。最終行からスタートします。
・行削除の場合と同様で、行を追加するとループがずれます。最終行からスタートします。
コードサンプル
'■一行おきに空白行を追加挿入する Public Sub Call_sample_Rows_Color() Dim i As Long Dim LastRow As Long: LastRow = 15 'Call_LastRow(1) '1列目(A列)の最終行取得 '■最終行から2行目まで(Step -1)に処理をする For i = LastRow To 2 Step -1 Rows(i & ":" & i).Insert 'Rows(i & ":" & i).ClearFormats 一つ上の行の書式をコピーしたくない場合は記載を追加 Next i End Sub
サンプルではデータ開始行は2と数値を直接入力していますが、実務では定数で記載をおすすめします。
※Call_LastRow(1)の数値の1も同様です。
コード結果
2行目からLastRowで取得した最終行まで空白が1行おきに追加がされました。
その他 注意点
- 上記コードだけでは実行できません。必ず、下記のパーツ化したモジュールを追加してください。
ExcelVBAマクロ「最終行」「最終列」の判断処理をパーツ化する - 行数が多いと、画面がちらつきます。
気になる(もしくは速度を求める)場合は、下記処理を追加してください。
ExcelVBAマクロ「マクロ処理を高速化する」をパーツ化する - 背景色に設定するColorIndexは、下記の記事参考にしてください。
ExcelVBAマクロ「ColorIndex(文字色/背景色/見出し色)」【VBA一覧】 - ClearFormatsは書式のクリアです。下記の記事参考にしてください。
ExcelVBAマクロ「セルやセル範囲の値を消去する」
コメント