dポイントプレゼントキャンペーン実施中!

お世話になります。
大変初歩的なプログラムなんですが、自分は経験がないため教えていただきたく存じます。

ABCD

という4桁の数字があります。

Aには西暦の末尾
Bには月
CDには日を入れてメッセージボックスに表示したいのです。

よろしくお願いいたします。

A 回答 (8件)

さっと、思いつきで。





Function Test_AAA() As Boolean
Dim DAT As Date
Dim ABCD As String

DAT = Now()

ABCD = Right(Format$(DAT, "yyyy"), 1)
Select Case Format$(DAT, "m")
Case "10"
ABCD = ABCD & "O"
Case "11"
ABCD = ABCD & "N"
Case "12"
ABCD = ABCD & "D"
Case Else
ABCD = ABCD & Right(Format$(DAT, "m"), 1)
End Select

ABCD = ABCD & Format$(DAT, "dd")

MsgBox ABCD, vbInformation, "TEST"

End Function



・Format(expr,fmt):exprをfmtの書式に
・Right(str,n):文字列strを右からn文字

もちょっとウマいやり方あるかもなぁ。
    • good
    • 0
この回答へのお礼

十分です!!

どうもありがとうございました!!

お礼日時:2005/08/12 18:13

こんばんは。



#1 さんの回答は、質問に対する考え方のロジックとしては間違いないと思います。
本来なら、そういう回答でしか出てこないと思います。

その後に書かれている内容から、こんな風で落ち着くとは思いますが、質問のように最初に、変数ABCDがあるという作りにするなら、Function で作っていく方法しか思いつきません。

Dim myDate As Date
 Dim A As String, B As String, CD As String
 myDate = Date
 A = Right(Format(myDate, "yy"), 1)
 B = Left(Format(myDate, String(3 + (Month(myDate) < 10) * 2, "m")), 1)
 CD = Format(myDate, "dd")
 MsgBox A & B & CD
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2005/08/12 18:11

a = Right(Format(Now(), "yyyy"), 1) & Mid("123456789OND", Format(Now(), "m"), 1) & Format(Now(), "dd")



MsgBox a

アホなんでこんな方法しか思いつきませんでした。
    • good
    • 0
この回答へのお礼

なるほど。

お礼日時:2005/08/12 18:12

ちょっと訂正


Select Case M
Case "10": M = "O"
Case "11": M = "N"
Case "12": M = "D"
End Select
を削除して、
If M >= "10" Then M = Left(Format(day, "mmm"), 1)
で行う事もできます。
    • good
    • 0
この回答へのお礼

ご親切にどうもありがとうございました。
大変参考になりました。

お礼日時:2005/08/12 18:12

Sub setABCD()



Dim M As String, ABCD As String
Dim day As Date
day = "2005/12/22"

M = Month(day)
Select Case M
Case "10": M = "O"
Case "11": M = "N"
Case "12": M = "D"
End Select

ABCD = Right(Year(day), 1) & M & Format(day, "dd")
MsgBox ABCD

End Sub

でどうかな?
    • good
    • 0
この回答へのお礼

すばらしいです!!
恩に着ます!!

お礼日時:2005/08/12 18:13

>Bには月



10月以降はどのように表示(区分)するのですか?
A,B,C とかですか?

この回答への補足

すみません。補足します。
月の表示は10月→O(オー) 11月→N 12月→Dです。

どうかおねがいします。m(__)m

補足日時:2005/08/11 15:35
    • good
    • 0

始めまして、こんな感じでいかがでしょうか?


~~ここから~~
Public Sub test()
Dim msg As String
msg = Right(Format(Date, "yyyy"), 1) & Format(Date, "mmdd")
MsgBox msg
End Sub
~~ここまで~~

この回答への補足

すみません。補足します。
月の表示は10月→O(オー) 11月→N 12月→Dです。

どうかおねがいします。m(__)m

補足日時:2005/08/11 15:37
    • good
    • 0

西暦:int(ABCD/1000)


 月:mod(int(ABCD/100),10)
 日:mod(ABCD,100)

をmsgbox で表示すればよいと思います。

この回答への補足

????????

補足日時:2005/08/11 15:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!