日付に関連した処理は、プログラミング初心者が戸惑うポイントのひとつです。
日付データの日付部分だけを2桁で取得したいという要望は、Excel VBA(Visual Basic for Applications)に限らずよくいただきます。
このサイト・インストラクターのネタ帳のアクセスログにも、
「excel vba day 2桁」
「vba day関数 dd」
といった検索キーワードが見られます。
VBAではDay関数で、
日付データの日付部分を表す数値を取得できます。
この戻り値を2桁にするには、どうしたらいいのか調べていた方による検索キーワードが、
「excel vba day 2桁」
「vba day関数 dd」
です。
Day関数で日付部分だけを取得する
まず、Day関数の動きを確認しましょう。
MsgBox Day(ActiveCell.Value)
End Sub
例えば、「2017/5/5」という日付データの入力されているセルがアクティブな状態で上記のSubプロシージャを実行すると、ActiveCell.Valueで取得した日付データ「2017/5/5」の日付部分を表す数値が取得され、メッセージボックスに「5」と表示されます。
「excel vba day 2桁」
「vba day関数 dd」
といった検索をなさった方は、このケースで「5」ではなく「05」を表示させたかったのでしょう。
Format関数で日付部分を2桁で取得する
書式を指定して取得する場合は、Day関数ではなくFormat関数を、
使いましょう。
MsgBox Format(ActiveCell.Value, "dd")
End Sub
上記のSubプロシージャなら、先のマクロと同じ条件で「05」と表示されます。
Excelのワークシート上で、A1セルに入力された日付データから日付部分をdd形式の文字列で取得するには、TEXT関数を使って
「=TEXT(A1, "dd")」
という数式を入力します。
ワークシート関数のTEXT関数によく似ているのが、VBAのFormat関数です。
最終更新日時:2022-08-04 16:09
- Newer:CurrentRegionのセル番地を取得する
- Older:選択セルを取得する-Selectionプロパティ
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAのDay関数の戻り値を2桁にするには-Format関数