日付の欄に空白がある場合の処理

Pocket

以前、日付は月と日は分けない方が、簡単に会計ソフトのフォーマットに
変換できると書きましたが、では月と日が分かれてしまっている場合どうする
のか?
2506291
この場合もExcelVBAで一発で変換できます。
コードを記述すると次の通りです。

Sub 日付修正()
Dim a As Integer
a = 3
①Do Until Cells(a, 6).Value = “”
②If Cells(a, 1).Value = “” Then
 Cells(a, 1).Value = Cells(a – 1, 1).Value
 End If

③If Cells(a, 2).Value = “” Then
 Cells(a, 2).Value = Cells(a – 1, 2).Value
 End If
a = a + 1
Loop
End Sub

これを実行すると、次のようになります。
2506292
①では、今まで日付が空白でない間、繰り返し処理をしていましたが、
今回はA列に空白が存在しているので、残高が空白ではない間という条件
に変更しました。

②の意味ですが、
もし、A3が空白ならば、A3にA2の値を入れなさい
という指示です。
そしてaは1つずつ大きくなるので、
A4にA3を、A5にA4を・・・というようになります。

A3は4なので空白ではないので、該当した場合の処理はしませんが、
A4は空白なので、A4にA3の値を入れます。つまりA4の値が4になります。

次に、A5も空白です。VBA実行前はA4は空白ですが、前行の処理でA4は4
になったので、A5も4になります。

この繰り返し処理で日付の空白欄を埋めていきます。

③も同様です。どうセルの値が変化するのか、ステップイン(F8)を使って
確認してみてください。