• ベストアンサー

行を挿入するVBAコードを教えてください

日々の予定を記録・集計しています。 A列に用事のタイトル B列に開始日 C列に開始時 D列に終了日 E列に終了時 の記載されているエクセルシートがあります。 睡眠が0時を過ぎて日を跨いでしまいますので、週別、月別に集計する際に、正確なデータがでません。 正確に集計するために、開始日B列と終了日D列が一致していない場合、 行を挿入して、もとの行は0時で終了させ、挿入行は0時開始にすることで、日別ごとに正確に集計したいです。 ※一つのタスクが2日以上にまたがることはありえないので想定しないでください VBAコードをおしえていただけないでしょうか。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんばんは 行挿入しなくても週別、月別に集計する良い方法が有りそうなきもするのですが、 一応行挿入する方法は、 Sub test()   Dim c As Long   Dim i As Long      c = Range("A" & Rows.Count).End(xlUp).Row   Application.ScreenUpdating = False   For i = c To 2 Step -1     If Range("B" & i) < Range("D" & i) Then       Range("A" & i).Resize(, 5).Copy       Range("A" & i).Insert xlShiftDown       Range("B" & i + 1) = Range("D" & i + 1)       Range("D" & i) = Range("B" & i)       Range("E" & i) = #12:00:00 AM#       Range("C" & i + 1) = #12:00:00 AM#     End If   Next   Application.CutCopyMode = False   Application.ScreenUpdating = True End Sub こんな感じで。

crossinlove
質問者

お礼

動作確認できました。 Application.CutCopyModeや Application.ScreenUpdatingなど 見慣れないワードがでてきており、 勉強を続けたいと思います。 ありがとうございます。

関連するQ&A

専門家に質問してみよう