第46回.VBA関数(日付,DateAdd)
データ型の中でも日付時刻はかなり特殊であり、関数の使用は必要不可欠になります。
ここでは、日付に関するVBA関数の一覧と、DateAdd関数について解説します。
DateAdd関数以外の他の関数は、一覧のリンクより個別のページを参照して下さい。
日付時刻に関するVBA関数の一覧
関数 | 説明 | 対応ワークシート関数 |
Date | 現在のシステムの日付の値を返す | ワークシート関数のTODAYと同じ |
Now | 現在の日付と時刻の値を返す | ワークシート関数と同じ |
Time | 現在のシステムの時刻の値を返す | |
Timer | 午前0時から経過した秒数を単精度浮動小数点数型で返す 1/100まで計測する場合に使用します。 |
|
Year | 年の値を返します | ワークシート関数と同じ |
Month | 1 年の何月かを表す 0~12 の範囲の値を返す | ワークシート関数と同じ |
Day | 月の何日かを表す 1~31 の範囲の値を返す | ワークシート関数と同じ |
Hour | 1 日の時刻を表す 0~23 の範囲の値を返す | ワークシート関数と同じ |
Minute | 時刻の分を表す 0~59 の範囲の値を返す | ワークシート関数と同じ |
Second | 時間の秒を表す 0~59 の範囲の値を返ます | ワークシート関数と同じ |
Weekday | 何曜日であるかの値を返す | ワークシート関数と同じ |
WeekdayName | 指定された曜日を表す文字列を返す | |
MonthName | 指定された月を表す文字列を返す | |
DatePart | 日付の指定した部分を含む値を返す | |
DateSerial | 引数に指定した年、月、日に対応する日付の値を返す | ワークシート関数のDATEと同じ |
DateValue | 日付を表す値を返す | ワークシート関数と同じです。 |
TimeSerial | 引数で指定した時、分、秒に対応する時刻の値を返す | ワークシート関数のTIMEと同じ |
TimeValue | 時刻を表す値を返す | ワークシート関数と同じで |
DateAdd |
指定された時間間隔を加算した日付の値を返す |
|
DateDiff | 2つの指定した日付の時間間隔の値を返す | ワークシート関数のDATEDIFと同じ ただし、引数の順番が違います |
多くは対応するワークシート関数がありますので、ここでは説明を省略します。
対応するワークシート関数が解らない場合は、まずは、そちらを覚えてください。
直接的に対応するワークシート関数は無いですが、
マクロVBAで良く使うものとしてDateAdd関数があります。
DateAdd関数の構文
interval | 必ず指定します。追加する時間間隔を表す文字列式を指定します。 |
number | 必ず指定します。追加する時間間隔の数を表す数式を指定します。将来の日時を取得するには正の数を指定します。過去の日時を取得するには負の数を指定します。 |
date | 必ず指定します。時間間隔を追加する日付を表すバリアント型 (内部処理形式 Date の Variant) の値またはリテラル文字列を指定します。 |
intervalに指定する文字列式
設定値 | 内容 |
yyyy | yyyy |
q | 四半期 |
m | 月 |
y | 年間通算日 |
d | 日 |
w | 週日 |
ww | 週 |
h | 時 |
n | 分 |
s | 秒 |
DateAdd関数の使用例
Cells(1, 2) = DateAdd("d", 3, Cells(1, 1))
Cells(1, 3) = DateAdd("m", 1, Cells(1, 1))
これを実行すると
B1セルに、2012/1/31
C1セルに、2012/2/28
このような結果になります。
日付関数は、ワークシート関数と多くが同じものとなっているので覚えやすいと思います。
特に事務処理では、日付の処理は避けて通れませんので、しっかりと覚えて下さい。
同じテーマ「VBA入門」の記事
第43回.総合練習問題5
第44回.VBA関数について
第45回.VBA関数(Format)
第46回.VBA関数(日付,DateAdd)
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
第49回.Like演算子とワイルドカード
第50回.総合練習問題6
第51回.Withステートメント
第52回.オブジェクト変数とSetステートメント
第53回.Workbookオブジェクト
新着記事NEW ・・・新着記事一覧を見る
SQL関数と演算子|SQL入門(12月1日)
データの取得:集約集計、並べ替え(DISTINKT,GROUP BY,ORDER BY)|SQL入門(11月30日)
データの取得:条件指定(SELECT,WHERE)|SQL入門(11月29日)
データの挿入:バルクインサート|SQL入門(11月28日)
データの挿入(INSERT)と全削除|SQL入門(11月26日)
テーブル名変更と列追加(ALTER TABLE)とテーブル自動作成|SQL入門(11月25日)
テーブルの作成/削除(CREATE TABLE,DROP TABLE)|SQL入門(11月24日)
データベースに接続/切断|SQL入門(11月23日)
SQLiteのインストール|SQL入門(11月22日)
SQL入門:VBAでデータベースを使う|エクセルの神髄(11月22日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ひらがな⇔カタカナの変換|エクセル基本操作
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。