IDA Life Blog

HOME  >  勉強
カテゴリー : 勉強 - プログラミング
•VBA •Now 関数 •日付文字列

公開日: 2024-01-11
最終更新日: 2024-01-11

Now 関数で分までの日付文字列を作るサンプルコード【VBA】


VBAでNow 関数を使うと、現在の日付の文字列を取得することができます。以下にNow 関数を使ったコードの例を示します。

Public Sub test()
    nowStr = Now
    MsgBox (nowStr)
End Sub

このコードを実行すると、以下のように表示されます。

image 1

[ 画像1. 実行結果 (1) ]

 

これは、「YYYY/MM/DD hh:mm:ss」という形式の文字列です。

Yは年、Mは月、Dは日です。hは時間、mは分、sは秒です。
参考:
"ISO 8601 - Wikipedia". ja.wikipedia.org.

ここで、日付文字列を「YYYY-MM-DD hh:mm」という形式で取得したいとします。この形式は、スラッシュではなくハイフンを用い、秒を省略した形式です。

以下にサンプルコードを示します。

[サンプルコード]
Public Sub makeDateStr()
    nowStr = Now
    dateStr = Format(nowStr, "yyyy-MM-dd")
    timeStr = Format(nowStr, "hh:mm")

    completedStr = dateStr + " " + timeStr
    MsgBox (completedStr)
End Sub

サンプルコードを実行すると、以下のように表示されます。

image 2

[ 画像2. 実行結果 (2) ]

 

期待通りの結果となりました。

まとめ:

Now 関数を使って、現在の時刻を取得することができました。Format 関数で、日付文字列の形式を変更することができました。

私は先日、VBAで、あるちょっとしたツールを作っていました。そのツールを最後に使用した時刻を、ファイルに記録できるようにしようと考えました。しかし、日付はハイフンで区切りたくて、また、秒は不要でした。そのため、この記事のようにFormat 関数を利用して形式を変更しました。VBAを使っていると「現在時刻を取得したい」ということがけっこうあるので、Now 関数は便利だと感じました。