モンガーの小屋

日想、ラーメン・グルメ・レシピ紹介、映画・音楽・読書感想、PC・家電・ゲーム、DIY情報をつれづれなるままに。

エクセル VBA 文字列日付を日付形式に変換するマクロ

エクセル マクロ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

’以上。






スポンサーサイト