見出し画像

【Day38】文系オタクのエンジニア道~関数①日付・時刻~

こんにちは
安田です

なんとか3日連続で書き上げたりしてます
ただ、インプット量が乏しいので
ちゃんと演習をするようにします!


関数の定義

VBAの関数は計算や処理の元になるデータを受け取り
いつも決まった計算や処理を行う。

仕組みは、普段エクセルで使う関数と同じです。

計算や処理の元になるデータを
引数(ひきすう)と呼ぶ

日付や時刻を操作する関数

Now関数

現在の日時を返します
Now関数は引数がないので
()カッコを省略して書くことができます

Sub time()
  Range("A1").Value = Now
End Sub
ちょうど記事を書いている時間でした笑

Year関数、Month関数、Day関数

Year関数→引数に指定した日付の年を表します
4桁の西暦年を返します

Month関数→引数に指定した日付の月を表します
Day関数→引数に指定した日付の日を表します
数値が1桁のとき「5」といった数値を返す

Sub test()
    Range("B1").Value = Year(Range("A1").Value)
    Range("C1").Value = Month(Range("A1").Value)
    Range("D1").Value = Day(Range("A1").Value)
End Sub
年、月、日が表示されました

Hour関数、Minute関数、Second関数

Hour関数→引数に指定した時刻の時を表します
Minute関数→引数に指定した時刻の分を表します
Second関数→引数に指定した時刻の秒を表します

Sub test1()
    Range("B2").Value = Hour(Now)
    Range("C2").Value = Minute(Now)
    Range("D2").Value = Second(Now)
End Sub
21:19:09の時間が分けて表示されました

DateSerial関数

年月日を表す3つの数値から
日付データ(シリアル値)を返します

いわゆる日付を「作る」関数です

Sub test2()
    MsgBox DateSerial(Range("B1"), Range("C1"), Range("D1"))
End Sub

まとめ

今回は時間や日付を表す関数を学習しました
実際にエクセルで使っている関数ばかりで
入りやすかったです

次回は文字列を表す関数を学習していきます

参考文献

VBAマスターに俺はなる

最後まで読んでいただき
ありがとうございます
安田

マガジンにまとめてありますので
よかったらそちらも御覧ください


この記事が気に入ったらサポートをしてみませんか?