『Excel』 VBAでちょっと便利!?(その20)
Excelでのプログラミング20回目です。
セルのプロパティについての10回目の今回は、
「NumberFormatLocal」の続きで、日付に関する表示形式についてです。
■セル(Rangeオブジェクト)のプロパティ一覧(よく使われるものを抜粋)
◇ NumberFormatLocal ◇
セルの表示形式は、RangeオブジェクトのNumberFormatLocalプロパティに表示形式文字列を設定します。表示形式文字列とは、[セルの書式設定]ダイアログボックスの[表示形式]タブで、ユーザー定義の表示形式を設定するときに使用する文字列です。
ここまでは前回と同じ。
■日付の表示書式
———————————————
2列目がVBAでの書式の設定の仕方
3列目が本来の入力した日付
4列目が書式を設定した日付
※3列目と4列目には同じ値を入力しました。
———————————————
【それぞれの説明】
- Range.NumberFormatLocal = “yyyy/m/d”
西暦で”/”で区切って日付を表示します - Range.NumberFormatLocal = “yyyy/mm/dd”
[1]の形式で月と日を2桁で表示します - Range.NumberFormatLocal = “d-mmm-yy”
欧米式で月を3桁の英語で表示します - Range.NumberFormatLocal = “yyyy年m月d日”
「年月日」を入れて表示します - Range.NumberFormatLocal = “yyyy年mm月dd日”
[4]の形式で月と日を2桁で表示します - Range.NumberFormatLocal = “ge.m.d”
和暦の短縮形(元号をアルファベット1文字)で表示します - Range.NumberFormatLocal = “gge.m.d”
和暦の短縮形(元号を漢字1文字)で表示します - Range.NumberFormatLocal = “ggge年m月d日”
和暦で「年月日」を入れて表示します - 和暦で「元年」を表示させる方法
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If Cells(10,4).Value >= DateValue(“2019/5/1”) _
And Cells(10,4).Value <= DateValue(“2019/12/31”) Then
Cells(10,4).NumberFormatLocal = “令和元年m月d日”
End If
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DateValue関数で日付の文字列を日付値(Excel VBA内部で管理する日付を管理する値)に変換し、セルの値と比較し、今年の5月1日から12月31日までの日付であれば「1年」を「元年」と表示します。
■曜日の表示形式
———————————————
2列目がVBAでの書式の設定の仕方
3列目が本来の入力した日付
4列目が書式を設定した日付
※3列目と4列目には同じ値を入力しました。
———————————————
【それぞれの説明】
- Range.NumberFormatLocal = “(ddd)”
英語表記でアルファベット3文字でカッコで囲んで表示します。 - Range.NumberFormatLocal = “yyyy/m/d(ddd)”
西暦日付(/区切り)の後ろに上記の曜日を表示します。 - Range.NumberFormatLocal = “(aaa)”
日本語の曜日漢字1文字をカッコで囲んで表示します。 - Range.NumberFormatLocal = “yyyy年m月d日(aaa)”
西暦に年月日を付け、上記の曜日を表示します。 - Range.NumberFormatLocal = “(aaaa)”
日本語の曜日を漢字3文字でカッコで囲んで表示します。 - Range.NumberFormatLocal = “ggge年m月d日(aaaa)”
4の表示に和暦の元号を付けます。
■時刻の表示形式
———————————————
2列目がVBAでの書式の設定の仕方
3列目が本来の入力した日付
4列目が書式を設定した日付
※3列目と4列目には同じ値を入力しました。
———————————————
【それぞれの説明】
- Range.NumberFormatLocal = “h:m:s”
時分秒を:で区切って表示します。 - Range.NumberFormatLocal = “hh:mm:ss”
時分秒が1桁の時に0を付けて表示します。 - Range.NumberFormatLocal = “hh:mm:ss AM/PM”
12時間制で後ろにAM /PMを付けて表示します。 - Range.NumberFormatLocal = “hh時mm分ss秒”
漢字の時分秒を付けて表示します。
次回は21回目で、セルの値の表示形式についての最終回です。