第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と似てますが大きな違いがあります。 シートのDATEDIF関数は年齢計算に使用されますが、 VBAのDateDiff関数は直接的に年齢計算を行えません。 |
多くは対応するワークシート関数がありますので、ここでは説明を省略します。
対応するワークシート関数が解らない場合は、まずは、そちらを覚えてください。
直接的に対応するワークシート関数は無いですが、
マクロVBAで良く使うものとしてDateAdd関数があります。
DateAdd関数の構文
| interval | 必ず指定します。 追加する時間間隔を表す文字列式を指定します。 |
| number | 必ず指定します。 追加する時間間隔の数を表す数式を指定します。 将来の日時を取得するには正の数を指定します。 過去の日時を取得するには負の数を指定します。 |
| date | 必ず指定します。 時間間隔を追加する日付を表すバリアント型 (内部処理形式 Date の Variant) の値またはリテラル文字列を指定します。 |
intervalに指定する文字列式
| 設定値 | 内容 |
| yyyy | yyyy |
| q | 四半期 |
| m | 月 |
| y | 年間通算日 |
| d | 日 |
| w | 週日 |
| ww | 週 |
| h | 時 |
| n | 分 |
| s | 秒 |
※大文字小文字は問いません。
DateAdd関数の使用例
Cells(1, 3) = DateAdd("m", 2, Cells(1, 1))
Cells(1, 4) = DateAdd("yyyy", 1, Cells(1, 1))
C1セルに、2021/11/10
D1セルに、2022/9/10
日付関数は、ワークシート関数と多くが同じようになっているので覚えやすいと思います。
特に事務処理では、日付の処理は避けて通れませんので、しっかりと覚えて下さい。
同じテーマ「マクロ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
第87回.WorksheetFunction(ワークシート関数を使う)
第51回.Withステートメント
第52回.オブジェクト変数とSetステートメント
新着記事NEW ・・・新着記事一覧を見る
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
SQL基礎問題8:バスケット分析・ペア商品の出現回数|SQL入門(2025-11-04)
SQL基礎問題7:成績表から各教科の最高点と最低点を抽出|SQL入門(2025-11-02)
SQL基礎問題6:成績表から教科ごとの点数ベスト3を抽出|SQL入門(2025-11-02)
SQL基礎問題5:複数のマスタテーブルの結合|SQL入門(2025-11-01)
SQL基礎問題4:2つのテーブルの不一致を抽出|SQL入門(2025-10-29)
SQL基礎問題3:文字列の一部をキーにして集計|SQL入門(2025-10-29)
SQL基礎問題2:文字列「-nn-」のnnが偶数のみ抽出|SQL入門(2025-10-28)
SQL基礎問題1:最大在庫数を持つ製品の在庫金額|SQL入門(2025-10-28)
「ADO + VBA」でSQLを実行するときのVBAサンプル|SQL入門(2025-10-28)
アクセスランキング ・・・ ランキング一覧を見る
1.生成AIパスポート試験 練習問題(四肢択一式)|生成AI活用研究
2.最終行の取得(End,Rows.Count)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.RangeとCellsの使い方|VBA入門
7.FILTER関数(範囲をフィルター処理)|エクセル入門
8.日本の祝日一覧|Excelリファレンス
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.セルのクリア(Clear,ClearContents)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
