連続したデータを報告用資料として紙などに印刷して提出する際に、データとデータの間に1行空白をいれた状態で提出するように言われることがあるようです。
税理士業界で仕事をしてきて上記のようなことは言われたことはありませんが、一般の事業会社の経理部門などであればそういったことも要求されるんでしょうか?
10個程度のデータであれば手作業で空白行を追加しても問題ないかと思いますが、データの件数が100件を超えるなど、大量になる場合にはマクロを使って空白行を追加する方が早く済みます。
一番下のデータから順番に空白行を追加するマクロ
まずはこんなやりかたはどうでしょうか。
下記のような経理データがある場合でデータとデータの間に空白行を1行追加すること方法を考えます↓
このケースであればこんな感じに作ればいいんじゃないでしょうか↓
Sub 空白行を1行追加するマクロ1()
'■変数宣言
Dim lastrow As Long
Dim i As Long
lastrow = Cells(Rows.Count, 2).End(xlUp).Row '■最終行の取得
'■処理実行部分
For i = lastrow To 4 Step -1
Cells(i, 1).EntireRow.Resize(1).Insert
Next i
End Sub
変数を宣言しておいて、データの最終行を取得し、最終行のデータから上にあがっていく形で、各データの間に空白行を追加するやり方になります。
Google先生に聞くとこの考え方(やり方)が一番紹介されていると思います(当社調べ。)
なのでこのやり方がオーソドックスなやり方のような気がします。
変数「lastrow」にB列の最終行を格納させます。今回の場合には「10」がlastrowに格納されます。
for ~next ステートメントでlastrow(今回の場合は10)から4まで変数「i」を「ー1」ずつ変化させます。
そうすると一番下のデータから空白行が追加されていきます。
一番下のデータから処理をしていくというのがポイントで、普通、というか手作業で空白行を追加しようと思ったら、上のデータから空白行を追加すると思うんですが、マクロでその作業をやる場合はそうではなく、下のデータから処理をするという、発想を逆にするとすんなりいくようです。
個人的にはこの考え方というか、感覚は慣れるまで違和感があります。
マクロを実行するとこのようになります。(処理が早すぎてわかりませんが下のデータから空白行が追加されています。)
空白行を2行追加したいときはどうするか。
このコードの場合には1行の空白行を追加することになりますが、コードの19行目のResize(1)の箇所の数字を変更することで複数行の空白行を追加することができます。
例えば空白行を2行追加したい場合にはResize(2)とコードを書き換えればいいわけです。2行空白行を追加したいという需要があるかどうかは置いといて。
コードを書き換えて実行するとこんな感じになります。
上のデータから順に空白行を追加するマクロ
上の行から空白行を追加したい場合にはどうすればできるか考えてみました。
こんな感じで作ってみたらうまくいきました。↓
Sub 空白行を1行追加するマクロ2()
'■変数宣言
Dim i As Long
i = 4
'■処理実行部分
Do While Cells(i, 2) <> ""
Cells(i, 2).EntireRow.Insert
i = i + 2
Loop
End Sub
Do~Loopステートメントはマクロの記述を間違うと処理が永遠に繰り返されてしまうことがあるのであんまり好きではないんですが、今回のケースの場合はDo~Loopステートメントを使用して作ってみました。
ほかにもやり方はたくさんありそうですが自分にはこれくらいしかわかりません。
まとめ
自分自身はあんまり空白行を追加したいという場面に出くわすことはないんですが、もし自分がそんな場面に出くわしたらこんなコードを書くかなぁ。
と思い記事にしてみました。
この手の記事はネットで「マクロ 空白行 追加」で検索したら腐るほどでてくるので色んなやりかたのなかから自分がやりやすいやりかたでやればいいんじゃないでしょうか。
【本日の近況報告】
Excelマクロのコードをブログに載せる際にプラグイン「SyntaxHighlighter Evolved」を導入してみました。
今まではGutenbergに標準であるものを使ってたんですが、こっちの方が見やすいのでこっちに変更しました。
なんなら今回の記事はこのプラグインを使ってみたかったので書いたようなもんです。。
【本日の1曲】
竹原ピストル/マスター、ポーグスかけてくれ
もともと、このアルバムに収録されている「forever young」が好きで聴いていたんですが、ふとしたことからこの曲のタイトルをみつけて何気無く聴いてみたら
「これはイイ曲だな・・・・」と。
竹原ピストルさんが、イギリスのアイリッシュパンクバンドのポーグスのことを歌にしています。
ポーグスのボーカルである、シェイン・マガウアンへのリスペクトに溢れている一曲。
曲調もアイリッシュの楽器(多分バンジョーだと思います。)が使用されていてポーグスを連想させます。
疲れている時に聴くと五臓六腑に染み渡ります。
全然関係ないですが、個人的にこの曲の後にジョーストラマーのリデンプションソング聴いたら
「もう今日は帰って寝よ。」って思います。