年月の取得


なう  2009-03-08 04:13:05  No: 141651

はじめまして。なうと申します。
下記の件に関して、アドバイス等いただければ幸いです。
現在、セルの値から年月を取得したいのですが、想定どおりいかず困っています。

例)
セルの値:2009.3.7
取得したい値:0903

色々試して
MyDate = Range("A1")←2009.3.7
MyShortDate = CDate(Replace(MyDate, ".", ","))
MsgBox (MyShortDate)
MsgBox (Year(MyShortDate))
MsgBox (Month(MyShortDate))

として、年月の取得までは出来たのですが、年の後ろ2文字、月の桁が1桁なら0をつける、といった処理を行いたいのですが、Lengthが使えなかったり、Leftが使えなかったりで上手く出来ません。
勉強し始めたばかりで分からないことばかりなので、間の抜けた問題なのかも知れませんが、アドバイスいただけますよう、お願いします。


じゅんてん  2009-03-09 22:09:46  No: 141652

読み込んだデータに対して年の最初の2文字を削除し
  月が9以下なら"0"を追加してます。

              Dim MyDate As String = "2009.9.7"
        Dim DateArray() As String

        '読み込んだデータを「.」で区切る
        DateArray = MyDate.Split(".")

        '年の最初の2文字削除
        Dim Year As String = DateArray(0).Remove(0, 2)

        Dim intMonth As Integer = DateArray(1)
        Dim Month As String

        '月が9以下ならば"0"を追加
        If intMonth < 10 Then
            Month = DateArray(1).Insert(0, "0")
        Else
            Month = intMonth
        End If

        MsgBox(Year & Month)


matsu  2009-03-10 02:28:53  No: 141653

>MsgBox (Year(MyShortDate))
>MsgBox (Month(MyShortDate))
>として、年月の取得までは出来たのですが、年の後ろ2文字、月の桁が1桁なら0をつける、といった処理を行いたいのですが、Lengthが使えなかったり、Leftが使えなかったりで上手く出来ません。

バージョンがわかりませんが、Formatで書式指定すればいいと思います。
MsgBox(Format(MyShortDate, "yy"))
MsgBox(Format(MyShortDate, "MM"))


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加