• ベストアンサー

【VB】プログラム経験のある方教えてください!

お世話になります。 大変初歩的なプログラムなんですが、自分は経験がないため教えていただきたく存じます。 ABCD という4桁の数字があります。 Aには西暦の末尾 Bには月 CDには日を入れてメッセージボックスに表示したいのです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

さっと、思いつきで。 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文字 もちょっとウマいやり方あるかもなぁ。

sineminna
質問者

お礼

十分です!! どうもありがとうございました!!

その他の回答 (7)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

こんばんは。 #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

sineminna
質問者

お礼

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

回答No.7

a = Right(Format(Now(), "yyyy"), 1) & Mid("123456789OND", Format(Now(), "m"), 1) & Format(Now(), "dd") MsgBox a アホなんでこんな方法しか思いつきませんでした。

sineminna
質問者

お礼

なるほど。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.6

ちょっと訂正 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) で行う事もできます。

sineminna
質問者

お礼

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

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.5

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 でどうかな?

sineminna
質問者

お礼

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

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

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

sineminna
質問者

補足

すみません。補足します。 月の表示は10月→O(オー) 11月→N 12月→Dです。 どうかおねがいします。m(__)m

  • nicnicnic
  • ベストアンサー率47% (8/17)
回答No.2

始めまして、こんな感じでいかがでしょうか? ~~ここから~~ Public Sub test() Dim msg As String msg = Right(Format(Date, "yyyy"), 1) & Format(Date, "mmdd") MsgBox msg End Sub ~~ここまで~~

sineminna
質問者

補足

すみません。補足します。 月の表示は10月→O(オー) 11月→N 12月→Dです。 どうかおねがいします。m(__)m

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

西暦:int(ABCD/1000)  月:mod(int(ABCD/100),10)  日:mod(ABCD,100) をmsgbox で表示すればよいと思います。

sineminna
質問者

補足

????????

関連するQ&A