- ベストアンサー
【VB】プログラム経験のある方教えてください!
お世話になります。 大変初歩的なプログラムなんですが、自分は経験がないため教えていただきたく存じます。 ABCD という4桁の数字があります。 Aには西暦の末尾 Bには月 CDには日を入れてメッセージボックスに表示したいのです。 よろしくお願いいたします。
- みんなの回答 (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文字 もちょっとウマいやり方あるかもなぁ。
その他の回答 (7)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 #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
お礼
どうもありがとうございました。
- rappaozisan
- ベストアンサー率34% (63/182)
a = Right(Format(Now(), "yyyy"), 1) & Mid("123456789OND", Format(Now(), "m"), 1) & Format(Now(), "dd") MsgBox a アホなんでこんな方法しか思いつきませんでした。
お礼
なるほど。
- hana-hana3
- ベストアンサー率31% (4940/15541)
ちょっと訂正 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) で行う事もできます。
お礼
ご親切にどうもありがとうございました。 大変参考になりました。
- hana-hana3
- ベストアンサー率31% (4940/15541)
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 でどうかな?
お礼
すばらしいです!! 恩に着ます!!
- hana-hana3
- ベストアンサー率31% (4940/15541)
>Bには月 10月以降はどのように表示(区分)するのですか? A,B,C とかですか?
補足
すみません。補足します。 月の表示は10月→O(オー) 11月→N 12月→Dです。 どうかおねがいします。m(__)m
- nicnicnic
- ベストアンサー率47% (8/17)
始めまして、こんな感じでいかがでしょうか? ~~ここから~~ 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
- OsieteG00
- ベストアンサー率35% (777/2173)
西暦:int(ABCD/1000) 月:mod(int(ABCD/100),10) 日:mod(ABCD,100) をmsgbox で表示すればよいと思います。
補足
????????
お礼
十分です!! どうもありがとうございました!!