モンガーの小屋

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

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。
    [ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

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

    ’以上。






    スポンサーサイト


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。