エクセル マクロVBAで
文字列の西暦日付(8桁)を日付形式に変換する方法
→

「文字列西暦」と「日付形式西暦」
普段はあまり意識していなくても、きちんと管理するとなるとこの混在は避けたい。
そこで「文字列西暦」を「日付形式西暦」に変換するVBAマクロの紹介。
別なやり方も当然ありますが、汎用性を持たせ自分が説明しやすいやり方を選びました。
Sub 文字列西暦日付を日付形式西暦に変換するマクロ()
’まずは変数宣言 Dim 文字列形式, 年, 月, 日, 日付 As String
’8文字以外の文字列は変換できないのでまずはその判断をします’「D2」のセル値が8文字の場合のみ処理実行 If Len(Cells(2, 4).Value) = 8 Then
’8文字の場合だったら変数「文字列形式」に値を代入 文字列形式 = Cells(2, 4).Value
’20150503’「文字列形式」に代入した8文字の左から1列目~4列までを変数「年」に代入 年 = Mid(文字列形式, 1, 4)
’2015’8文字の左から5列目から2文字を変数「月」に代入 月 = Mid(文字列形式, 5, 2)
’05’8文字の左から7列目から2文字を変数「日」に代入 日 = Mid(文字列形式, 7, 2)
’03’それぞれ代入した値に/(スラッシュ)を付けて変数「日付」にまとめて代入 日付 = 年 + "/" + 月 + "/" + 日
’2015/05/03’これで日付形式になったはずですが、一応本当に変わっているか確認した上で処理続行 If IsDate(日付) = True Then
’「F2」セルに変換した日付をコピー Cells(2, 6) = 日付
End If
End If
End Sub
’以上。
スポンサーサイト