和暦と曜日を表示する

ひげめがね
ひげめがね

VB Script で、和暦や曜日を表示するサンプルを作成してみたよ。

下の「sample.vbs」の内容をメモ帳に貼り付けて、適当な名前で保存して

拡張子を「txt」から「vbs」に変更すれば実行できるよ。

sample.vbs

msgbox wareki(date())

function wareki(d)
  
  Set jc = CreateObject("System.Globalization.JapaneseCalendar")
  gengo_no = jc.GetEra(d)
  
  Select Case gengo_no
    Case 1: gengo = "明治"
    Case 2: gengo = "大正"
    Case 3: gengo = "昭和"
    Case 4: gengo = "平成"
    Case 5: gengo = "令和"
    Case Else: gengo = "未来"
  End Select
  nen = jc.GetYear(d)
  If nen = 1 Then nen = "元"
  
  wareki = gengo & nen & "年" & _
           right("0" & month(d),2) & "月" & _
           right("0" & day(d),2) & "日"
  
  Select Case Weekday(d)
    Case 1: youbi = "(日)"
    Case 2: youbi = "(月)"
    Case 3: youbi = "(火)"
    Case 4: youbi = "(水)"
    Case 5: youbi = "(木)"
    Case 6: youbi = "(金)"
    Case 7: youbi = "(土)"
  End Select
  
  wareki = wareki & youbi
  
  Set jc = Nothing
  
end function

説明

  • msgbox:これはメッセージボックスを表示するためのコマンドです。
  • date():プログラムが実行された時の日付が代入されます。
  • function 関数名(引数)
    これは関数を宣言するためのコマンドです。
    関数とは一連のプログラムを1つのコマンドにまとめて実行するための機能の一つです。
    今回は「wareki」を宣言しています。
    引数はその関数に値を渡すためのもので、「,」で区切れば複数使うことも可能です。
  • Set jc = CreateObject(“System.Globalization.JapaneseCalendar”)
    日本語カレンダーを扱うためのオブジェクトを作成するおまじない。
    このオブジェクトの中に和暦を扱う関数が入っている感じです。
  • jc.GetEra(日付・日時型):引数として入れた日付・日時型の値の元号を数値で戻す。
    今回は戻り値をgengo_noに代入しています。
  • Select Case ~ End Select:指定した変数や実行結果(戻り値)に応じた処理が記述できる構文です。
    今回は2つ使っていて、gongo_no や Weekday(d) の値が1~5や1~7の場合に、それぞれの数字に
    該当する、元号や曜日の文字列を変数 gengo や youbi に入れています。
  • Weekday(日付・日時型):引数として入れた日付・日時型の値の曜日を数字の1~7で戻す。
    1が日曜日で7が土曜日です。

ポイント

  • プログラム上、複数の形式の日付文字列を表示する場合は、例えば wareki(d,view_type)
    みたいな感じで表示タイプを指定する引数を追加して、それぞれに応じた形式で出力する
    ように関数を作れば無駄がないかもね。