VBA関数について
VBAで使う関数って何?よくわかんない!
関数は実務でもたくさん使うんだ!一つずつ覚えていこうね!
関数は決まった計算や処理を行う命令になります。実務を行う上でも関数はよく使います。
マクロ記録機能では関数は記録されないため、一つずつ覚えていきましょう。
今日も文字列を操作する関数の動きを勉強しましょう。
今日使う実例はこちらになります。
Sub HIDUKE_JIKOKU1()
'"Sheet1"シートをアクティブにします
Worksheets("Sheet1").Activate
Range("B2") = Now
Range("C2") = Year(Range("B2"))
Range("D2") = Month(Range("B2"))
Range("E2") = Day(Range("B2"))
End Sub
Now関数
Now関数は、現在の日時を返します。Now関数には引数が存在しません。
下記が書式となります。
Now
実例とともにみていきましょう。
空のワークシート”Sheet1″を準備してね!
Range("B2") = Now
6行目の処理でB2セルにNow関数で取得した値を代入しています。
このようにNow関数は、日付と時刻の両方のデータを返しています。日付だけや時刻だけを取得したいときには、Year関数やHour関数を合わせて使います。
ワークシート関数には日付だけを返すTODAY関数がありますが、VBAの関数にはTODAY関数が用意されていないため注意が必要です。
Year関数、Month関数、Day関数
Year関数は引数に指定した日付の年を表す数値を返します。
書式は下記になります。
Year(日付)
Month関数は引数に指定した日付の月を表す数値を返します。
書式は下記になります。
Month(日付)
Day関数は引数に指定した日付の日を表す数値を返します。
書式は下記になります。
Day(日付)
Year関数、Month関数、Day関数を実例とともにみていきましょう。
8行目から10行目までのコードでNow関数で取得したB2セルの日付データを引数に設定し、
Range("C2") = Year(Range("B2"))
Range("D2") = Month(Range("B2"))
Range("E2") = Day(Range("B2"))
Year関数の返り値はC2セルへ
Month関数の返り値はD2セルへ
Day関数の返り値はE2セルへ
代入しています。
このように、Year関数は4桁の西暦のデータを返します。Month関数やDay関数は上記のように1桁のデータの場合”09″月や”02”日とはならず1桁のデータのみ返します。
西暦のデータを2桁で取得したいときや、月や日の情報を常に2桁で取得したいときなどは文字列操作関数として便利なFormat関数が準備してありますので、別記事で取り上げ説明します。
まとめ
本日は、日付、時刻操作関数として、Now関数、Year関数、Month関数、Day関数の動作を実例とともに勉強しました。
これらの関数はファイルを保存する時にファイル名に使うと重複せず便利であるケースがあります。
VBA実践コーナーで具体的な例を取り上げていく予定です。
次は時刻を取得する関数について勉強していきたいと思います。
コメント