【VBScript】現在日時取得【Now】+α

この記事は約3分で読めます。

現在日時ってプログラムの中でよく使います。
でも使うのに気をつけなければいけないのがフォーマット。
スペースとか記号とか来て“エラー”で落ちるはよくある。

今回はファイル名でも使用できる形(yyyymmddhhmmss)で、取得する方法紹介します。

この記事の著者
のら

お家大好きSE

イエスキ

yeskey

プロフィール

都内で働くシステムエンジニア
素早く家に帰るために日々技術を磨いています。
学んだ技術をわかりやすく紹介します! プロフィール詳細

スポンサーリンク

知るだけならこれだけでOK

Now()

ちゃんと取れてる!取れてるけど、使いにくい・・・

  • ファイル名に使おうと思うとエラー("/"と":"はダメ)
  • 日付まででいいんだ!ってときに分けられない。

だから僕は取得したいときは、下記を使ってyyyymmddhhmmss の形式にして取得してる。
時分秒いらない時は、その部分だけコメントアウトすればいい。

コード

'現在日時取得
Function getNow()
    Dim w_Now
    Dim w_Month
    Dim w_Day

    '年取得
    w_Now = ""
    w_Now = Year(Now())

    '月取得(二桁で揃える)
    w_Month = Month(Now())
    If w_Month < 10 Then
        w_Now = w_Now & "0" & w_Month
    Else
        w_Now = w_Now & w_Month
    End If

    '日取得(二桁で揃える)
    w_Day = Day(Now())
    If w_Day < 10 Then
        w_Now = w_Now & "0" & w_Day
    Else
        w_Now = w_Now & w_Day
    End If

    '時分秒取得
    w_Now = w_Now & Right("0" & Hour(Now()) , 2)
    w_Now = w_Now & Right("0" & Minute(Now()) , 2)
    w_Now = w_Now & Right("0" & Second(Now()) , 2)

    getNow = w_Now
End Function

処理結果

解説

Year(Now())

という感じで書くと該当部分だけ取ってこれます。

ただ、1つ弱点があるんです。

『2020(年)05(月)05(日)01(時)02(分)03(秒)』という感じで14桁で揃えたほうが使いやすいですが、

Month(Now())

ってやると、取れるのは『05(2桁)』ではなく『5(1桁)』なんです。

月以降が少しごちゃっとしているのは、それを全て2桁に揃えるためと思ってください。

VBA と VBScript で違いはある?

どっちも同じ

タイトルとURLをコピーしました