モンガーの小屋

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

    エクセル VBA 日付を一ケタづつ取り出す

    エクセル マクロVBA
    日付を一桁づつ取り出して転記(コピー)する方法


    日付を一桁づつ取り出して転記
    西暦の日付(生年月日等)を、和暦に変換した上で、一桁づつ別なセルに入力するの図。
    文章で書くと訳わかんないが、要は上の図の如く変換するVBA。

    こういう変換は日常生活においても多々あることだと、、、は全く思いませんが、いざ手入力でやると非常にめんどくさい。
    マクロVBAで自動化します。その解説。

    もっと簡素に出来ますが、分かりやすくするため省略等はしてません。

    Sub 西暦日付を和暦文字列に変換して一桁づつ転記するマクロ()

    ’まずは変数宣言
    Dim 生年月日 As Date
    Dim 文字列形式 As String
    Dim 元号, 年1, 年2, 月1, 月2, 日1, 日2 As String

    ’変数「生年月日」にA3の日付値を代入します
    生年月日 = Worksheets("sheet1").Cells(3, 1).Value
    ’’結果:「生年月日」=2013/11/1

    ’変数「生年月日」の日付値を和暦にして文字列に変換し、変数「文字列和暦」に代入します
    文字列和暦 = Format(生年月日, "gemmdd")
    ’’結果:「文字列和暦」=H251101

    ’一桁づつそれぞれの変数に代入します
    ’左から1つ目を1つ取り出して、変数「元号」に代入
    元号 = Left(文字列和暦, 1)
    ’’結果:「元号」=H

    ’左から2つ目を1つ取り出して、変数「年1」に代入
    年1 = Mid(文字列和暦, 2, 1)
    ’’結果:「年1」=2

    ’以下同じような感じで
    年2 = Mid(文字列和暦, 3, 1)
    月1 = Mid(文字列和暦, 4, 1)
    月2 = Mid(文字列和暦, 5, 1)
    日1 = Mid(文字列和暦, 6, 1)
    日2 = Mid(文字列和暦, 7, 1)

    ’転記先セルにそれぞれ変数の値をコピーします
    Worksheets("sheet1").Cells(3, 3).Value = 元号
    Worksheets("sheet1").Cells(3, 4).Value = 年1
    Worksheets("sheet1").Cells(3, 5).Value = 年2
    Worksheets("sheet1").Cells(3, 6).Value = 月1
    Worksheets("sheet1").Cells(3, 7).Value = 月2
    Worksheets("sheet1").Cells(3, 8).Value = 日1
    Worksheets("sheet1").Cells(3, 9).Value = 日2

    End Sub

    以上。


    関連記事
    スポンサーサイト
    コメントの投稿












    管理者にだけ表示を許可する
    トラックバック
    この記事のトラックバックURL