前回は日付の書式が全て統一されていたので、同じ処理を繰り返せばいいのですが、
今回は、一部は日付形式になっているが、なっていないものと混ざっている場合の処理です。
VBAコードは次の通りです。
Sub 日付変換()
Dim a As Integer
a = 2
Do Until Cells(a, 1).Value = “”
If Right(Cells(a, 1).Value, 1) = “メ” Then
Cells(a, 2).Value = Left(Cells(a, 1).Value, 4) & “/” & Mid(Cells(a, 1).Value, 6, 2) & “/” & Mid(Cells(a, 1).Value, 9, 2)
Else
Cells(a, 2).Value = Cells(a, 1)
End If
a = a + 1
Loop
End Sub
ネットバンキングのデータは、機械がはき出すので、必ず何らかの規則性が存在します。
今回は、日付形式とテキスト形式の違いは、セルの一番右端の値が、”メ”かどうかです。
ですので、VBAコードでは、
If Right(Cells(a, 1).Value, 1) = “メ” Then
テキスト文字の処理
Else
日付の形式の処理
EndIf
としています。
2パターンの処理を解説しましたが、ネットバンキングからはきだした形式が日付形式であればそのまま
使えますが、そうでない場合の方が恐らく多いと思います。
そのときは、面倒ですが、セルを分解してくっつけるというやり方で日付形式に変更します。
一度VBAで変換する仕組みを作ってしまえば、次からは実行するだけで日付形式に変換できます。