上のメニューにある『RPA風vbsめーかー』のサンプル
今回は、和暦で日付を表示してみる。
1.現在の日時を取得する。
左のアクションメニューから『現在の日時を取得する』を選んでそのまま確定。
2.形式を指定して日付を文字列に変換
『形式を指定して日付を文字列に変換』を選んで、変換する日付データの変数を1.で追加されたCurrentTimeに変更してお好きな表示形式を選んで確定。(今回は『和暦 年月日』にしてみる。)
3.メッセージボックスを表示する
『メッセージボックスを表示する』を選んで、メッセージ内容の変数を2.で追加されたDateStrを選択して確定。
↓↓↓見た目はこうなる。
※ 追加したアクションはドラッグ&ドロップで並べ替えができます。
『保存する』を押してダウンロードすると、こんなスクリプトが保存されます。
' #### 変数定義 #### Dim CurrentTime, DateStr ' #### 変数初期値設定 #### ' #### シナリオ #### ' "現在の日時を取得する" CurrentTime = Now ' "形式を指定して日付を文字列に変換" DateStr = Format(CurrentTime, "ggggmm月dd日") ' "メッセージボックスを表示する" Msgbox DateStr, vbInformation, "わんすけすくりぷと - vbscript" ' #### 関数定義 #### ' 形式を指定して日付を文字列に変換 Function Format(TargetDate, Pattern) Dim Rslt, YYYY, M, MM, D, DD, H, HH, N, NN, S, SS, DDD, DDDD, MMM, MMMM, GGGG, CCCC On Error Resume Next If IsDate(TargetDate) Then If Len(Pattern) = 0 Then Format = FormatDateTime(Now, 0) Else Rslt = LCase(Pattern) YYYY = Year(TargetDate) M = Month(TargetDate) MM = Right("0" & M, 2) D = Day(TargetDate) DD = Right("0" & D, 2) H = Hour(TargetDate) HH = Right("0" & H, 2) N = Minute(TargetDate) NN = Right("0" & N, 2) S = Second(TargetDate) SS = Right("0" & S, 2) ' 曜日・月の英表記は他の置換と干渉するから記号化 WeekIndex = Weekday(TargetDate) - 1 WWW = Array("日", "月", "火", "水", "木", "金", "土")(WeekIndex) WWWW = WWW & "曜日" DDDkey = "%%%" & WeekIndex DDD = Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")(WeekIndex) DDDDkey = "%%%%" & WeekIndex DDDD = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")(WeekIndex) MonthIndex = M - 1 MMMkey = "%%%%%" & MonthIndex MMM = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")(MonthIndex) MMMMkey = "%%%%%%" & MonthIndex MMMM = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")(MonthIndex) ' 和暦 If TargetDate <= DateSerial(1912, 7, 29) Then GGGG = "明治" & Year(TargetDate) - 1867 & "年" ElseIf TargetDate >= DateSerial(1912, 7, 30) And TargetDate <= DateSerial(1926, 12, 24) Then GGGG = "大正" & Year(TargetDate) - 1911 & "年" ElseIf TargetDate >= DateSerial(1926, 12, 25) And TargetDate <= DateSerial(1989, 1, 7) Then GGGG = "昭和" & Year(TargetDate) - 1925 & "年" ElseIf TargetDate >= DateSerial(1989, 1, 8) Then GGGG = "平成" & Year(TargetDate) - 1988 & "年" End If ' 年初来日数 CCCC = DateDiff("d", DateSerial(YYYY, 1, 1), TargetDate) + 1 Rslt = Replace(Rslt, "yyyy", YYYY) Rslt = Replace(Rslt, "mmmm", MMMMkey) Rslt = Replace(Rslt, "mmm", MMMkey) Rslt = Replace(Rslt, "mm", MM) Rslt = Replace(Rslt, "m", M) Rslt = Replace(Rslt, "dddd", DDDDkey) Rslt = Replace(Rslt, "ddd", DDDkey) Rslt = Replace(Rslt, "dd", DD) Rslt = Replace(Rslt, "d", D) Rslt = Replace(Rslt, "wwww", WWWW) Rslt = Replace(Rslt, "www", WWW) Rslt = Replace(Rslt, "hh", HH) Rslt = Replace(Rslt, "h", H) Rslt = Replace(Rslt, "nn", NN) Rslt = Replace(Rslt, "n", N) Rslt = Replace(Rslt, "ss", SS) Rslt = Replace(Rslt, "s", S) Rslt = Replace(Rslt, "cccc", CCCC) Rslt = Replace(Rslt, "gggg", GGGG) Rslt = Replace(Rslt, MMMMkey, MMMM) Rslt = Replace(Rslt, MMMkey, MMM) Rslt = Replace(Rslt, DDDDkey, DDDD) Rslt = Replace(Rslt, DDDkey, DDD) Format = Rslt End If Else Msgbox "日付を文字列に変換処理には、日付データを指定して下さい。", vbInformation, "わんすけ すくりぷと の警告" Format = "" End If If Err.Number > 0 Then Format = "" Msgbox "日付を文字列に変換に失敗。" & vbNewLine & Err.Description, vbInformation, "わんすけ すくりぷと の警告" Err.Clear End If On Error GoTo 0 End Function
実行すると、こうなる。