このチュートリアルでは、VBAを使用して日付を書式設定する方法を説明します。
VBAで日付を書式設定する
VBAを使用して日付を書式設定するには、2つの方法があります。
- セル/範囲のNumberFormatプロパティ–セルに格納されている日付を書式設定する
- VBA書式関数–VBAで日付を書式設定する(例。 変数)
NumberFormat-Dates
Excelのセルのデフォルトの数値形式は一般的です。 数値形式を変更することで、数値、テキスト、日付、パーセンテージ、または通貨として値を表示できます。 NUMBERFORMATプロパティをVBAで使用して、セルまたは範囲内の日付の数値形式を設定できます。
注:Excelで利用可能なさまざまな標準日付形式を表示するには、Home>Numberに移動すると、短い日付、長い日付、時刻などのオプションが表示されます。
短い日付
短い日付番号の書式設定オプションは、短い数値形式で日付を表示します。
次のコードが設定されます。セルA1のNumberFormatプロパティを短い日付にする:
1
|
範囲(”A1″)。NumberFormat=”mm/dd/yyyy”
|
長い日付
長い日付番号の書式設定は、日付をより長い書き込み形式で表示します。 次のコードが設定されます。セルA1のNumberFormatプロパティから長い日付へ:
1
|
範囲(”A1″)。NumberFormat=”dddd,mmmm dd,yyyy”
|
カスタム日付
VBAで日付を書式設定するために使用できるカスタム数値書式コードを表示するには、Home>Numberに移動し、ダイアログボックスランチャーをク [番号]タブを選択し、[カスタム]を選択します。
日付のカスタム組み込み形式を選択するか、独自のユーザー定義の日付形式を作成することができます。 次のコードが設定されます。セルA1のNumberFormatプロパティを組み込みのカスタム日付形式に変換する:
1
|
範囲(”A1″)。NumberFormat=”mmm-yy”
|
結果は次のとおりです:
次のコードが設定されます。セルA1のNumberFormatプロパティを、ユーザー定義のカスタム日付形式に変換します:
1
|
範囲(”A1″)。NumberFormat=”dddd-dd-mmm-yy”
|
結果は次のとおりです:
Excelの事前作成された例を確認することで、NumberFormatsの入力方法を学ぶことができます。 詳細については、日付の数値形式に関するMicrosoftのドキュメントを参照してください。
VBAフォーマット関数
上記のように、Numberformatメソッドは、Excelセルに格納されている日付のNumberformatを設定するのに適しています。 VBAでは、Format関数を使用して、日付を特定の日付形式の文字列に変換できます。
日付の書式を設定するには、次の構文を使用します:
Format(String_Representation,NumberFormatCode)where:
String_Representation–日付を表すテキスト文字列。
NumberFormatCode–日付の表示方法を指定する数値書式コード。
次のコードは、日付のテキスト文字列表現をlong date形式として書式設定する方法を示しています:
1
|
MsgBox形式(“1/1/2010″,”dddd,mmmm dd,yyyy”,”dddd,mmmm dd,yyyy”,”dddd,mmmm dd,yyyy”)”)
|
結果は次のとおりです:
Format関数は、上記のNumberFormatと同じ日付書式設定構文を使用していることに注意してください。
次のコードは、日付のテキスト文字列表現を中程度の日付形式として書式設定する方法を示しています:
1
|
MsgBox形式(“09October2012″,”中日付”)
|
結果は次のとおりです:
での中程度の日付の書式設定次のコードは、日付のテキスト文字列表現をユーザー定義の形式として書式設定する方法を示しています:
1
|
MsgBox形式(“09October2012″,”dddd: dd/mm/yy”)
|
VBAカスタムフォーマットビルダー
VBAアドイン:AutoMacroには、VBAエディタ用のカスタムフォーマットビルダーが含まれています。 これにより、カスタム形式を設定し、必要な値の出力をすぐにプレビューすることができます:
VBAアドインには、他の多数の”コードジェネレータ”、広範なコードライブラリ、およびその他のコーディングツールの品揃えが含まれています。 これは、VBAプログラミングについて深刻な人のための究極のアドインです!
ACCESSのVBA形式の日付
VBA形式の日付関数は、Access VBAでExcel VBAとまったく同じように機能します。
1
2
3
4
5
6
7
8
9
10
|
Function GetDateFilter()As String
‘Access
Dim strDateField As String
If IsNull(Me.txtSDate)=False Then
If IsNull(Me.txtEDate)=Trueその後、私.txtEDate=私。txtSDate
if strdatefield2=””Then
GetDateFilter=strDateField&”Between#”&Format(Me.txtSDate,”mm/dd/yyyy”)&”#And#”&Format(Me.txtedate,”mm/dd/yyyy”) & “#”
End If
End If
End関数を終了します
|