エクセルはデータ解析・管理を行うツールとして非常に機能が高く、上手く使いこなせると業務を大幅に効率化できるため、その扱いに慣れておくといいです。
ただ機能が充実しているあまり初心者にとっては処理方法がよくわからないことも多いといえます。
例えばエクセルのVBA(マクロ)にて1行おきや2行おきに空白行を挿入する方法について理解していますか。
ここではエクセルのVBA(マクロ)にて1行おきや2行おきに空白行を挿入したり、複数の空白行を挿入する方法について解説していきます。
エクセルのVBAにて1行おきに行を挿入する方法【マクロ】
それではまずエクセルのVBAにて1行おきに空白行を挿入する方法について確認していきます。
最終的に以下のような操作を行うことが目的です。
VBA(マクロ)にて1行おきに空白行を挿入させるには以下のようなサンプルコードを記載するといいです。
Sub 行おきに挿入()
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = last To 2 Step -1
Rows(i).Insert
Next i
End Sub
このVBAでの1行おきに空白行を挿入するコードの意味について記載していきます。
Sub 行おきに挿入()
→マクロ名の指定
Dim i As Long
→後にfor文で処理する変数iを定義
last = Cells(Rows.Count, 1).End(xlUp).Row
→最終行の取得
Cells(Rows.Count, 1):シートの一番下の行の移動
.End(xlUp). :そこから上がったセル(つまりデータがある最終行)
Row :行番号を取得
For i = last To 2 Step -1
Rows(i).Insert
Next i→最終行から2行目(データにヘッダーを含むので、最終行から2行目までの間に1行ずつの空白を挿入する)
End Sub → 終了
としているわけです。
マクロを実行させることによって、VBAでの1行おきの挿入が完了しました。
VBA(マクロ)にて1行おきに2行の空白をいれる方法【複数行】
なお上ではエクセルにて1行おきに1行分の空白を挿入する方法を確認しましたが、2行などと複数行の行を追加したいケースもあるでしょう。
以下のようなイメージです。
サンプルコードは以下の通りで上とほぼ同じですが、赤字のみ変更となっているのです。
Dim i As Long
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = last To 2 Step -1
Rows(i).Resize(2).Insert
Next i
End Sub
この中で変更部分は、Rows(i).Resize(2).Insertのみであり、Resize(2).によって1行の挿入から2行の空白行の挿入に変換しているわけです。
マクロを実行させると以下のように1行おきで複数行(2行)の空白を挿入することができました。
エクセルのVBA(マクロ)にて2行おきに行を挿入する方法
今度はマクロにて2行おきに空白行を1行入れる方法を説明していきます。
サンプルコードは以下の通りで上とほぼ同じですが、赤字のみ変更となっているのです。
Dim i As Long
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = last – 1 To 4 Step -2
Rows(i).Insert
Next i
End Sub
この中で変更部分はFor i = last – 1 To 4 Step -2のみであり、step -2 によって2行おきに挿入しています。
なお最終行を引いたり、どこまで空白行を挿入するかは適宜数値を大きくしたり、小さくしたりすることで対処してください。
マクロを実行させると以下のように2行おきに空白行を追加することができました。
まとめ エクセルのVBA(マクロ)にて1行おき・2行おきに行を挿入する方法
ここでは、エクセルのVBA(マクロ)にて1行おきや2行おきに空白行を挿入する方法について確認しました。
基本的には、一つ一つのコードの意味を理解し流れを考えてスクリプトを組めばいいです。
エクセルでのさまざまな処理になれ、日々の業務を効率化させていきましょう。
コメント