- 数百行あるデータに、日付が変わるたびに手動で右クリック→挿入を繰り返している
- 単調な作業で集中力が切れ、挿入する場所を間違えてしまう
- 「もっとパパッと終わらせて別の仕事がしたい」というモヤモヤを抱えている
こんな悩みはありませんか?
「もっと素早く終わらせて、別の重要な仕事に取りかかりたい」というお悩みをお持ちの方も多いはずです。
今回はこのような悩みを、VBAを使って一瞬で解決してみましょう。
日付が変わったら自動で行を挿入するVBAコード
初心者の方でも、以下のコードをコピーして貼り付けるだけで使えます。
※A列に日付データが入力されている状態を想定しています。
Sub InsertRowAtDateChange()
Dim lastRow As Long
Dim i As Long
' 1. データが入っている最後の行を見つけます
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
' 2. 下の行から順番にチェックしていきます
For i = lastRow To 3 Step -1
' 3. 今の行と、一つ上の行の日付を比べます
If Cells(i, 1).Value <> Cells(i - 1, 1).Value Then
' 4. 日付が違っていたら、その間に行を挿入します
Rows(i).Insert Shift:=xlDown
End If
Next i
MsgBox "作業が完了しました!"
End Sub
使い方はたったの3ステップ
Excelで Alt + F11 を押して、エディタを開きます。
- 「挿入」メニューから「標準モジュール」を選び、上のコードを貼り付けます。
- F5 キーを押して実行!
- これだけの操作で、日付の境目に自動で空白行が挿入されます。
なぜ「下から上へ」処理を行うのか?
コード内にある「Step -1」は、データを「下から上へ」順番に処理することを意味しています。仮に上から行を挿入してしまうと、未処理の行番号がズレてしまい、正しい位置に挿入できなくなるためです。
このようなちょっとした仕組みを理解すると、業務自動化がより身近で楽しいものになります。最初は難しく感じられるかもしれませんが、一度自動化できれば毎日の業務を強力にサポートしてくれますので、ぜひ活用してみてください!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント