VBAでMysqlのタイムスタンプのようなもの



MySQLのTIMESTAMPである'2015-03-17 14:16:15'のような書式をエクセル上で作成する方法です。

使用する関数はDate,Time, Format, NumberFormatLocal です。



単純にDate関数,Time関数を使うと…
Sub TimeStamp()

    Cells(2, 2) = Date
    Cells(3, 2) = Time

End Sub



エクセルのデフォルトの表記だとこんな感じになります。(環境によって異なる結果になると思います。)


Format関数を噛ませると
Sub TimeStamp()

    Cells(2, 2) = Date
    Cells(3, 2) = Time

End Sub


エクセル上では同じように見えます。

なのでエクセルでも"yyyy-mm-dd hh:mm:ss"と表記したい時はまずはNumberFormatLocalプロパティを使ってセルの書式を変える手間が必要になります。
Sub TimeStamp()
    Cells(2, 2) = Format(Date, "yyyy-mm-dd")
    Cells(3, 2) = Format(Time, "hh:mm:ss")

    Cells(4, 2).NumberFormatLocal = "yyyy-mm-dd hh:mm:ss"
    Cells(4, 2) = Format(Date, "yyyy-mm-dd") _
     & " " & Format(Time, "hh:mm:ss")
End Sub




こんな感じになります。



特に問題なく動きますが時間の分の部分は"mm"じゃなくて"nn"の方が好ましいようです。