『Excel』 VBAでちょっと便利!?(その20)

2019年08月08日 未分類

Excelでのプログラミング20回目です。

セルのプロパティについての10回目の今回は、
「NumberFormatLocal」の続きで、日付に関する表示形式についてです。

 

■セル(Rangeオブジェクト)のプロパティ一覧(よく使われるものを抜粋)

◇ NumberFormatLocal 

セルの表示形式は、RangeオブジェクトのNumberFormatLocalプロパティに表示形式文字列を設定します。表示形式文字列とは、[セルの書式設定]ダイアログボックスの[表示形式]タブで、ユーザー定義の表示形式を設定するときに使用する文字列です。

ここまでは前回と同じ。

■日付の表示書式

———————————————
2列目がVBAでの書式の設定の仕方
3列目が本来の入力した日付
4列目が書式を設定した日付
※3列目と4列目には同じ値を入力しました。
———————————————

【それぞれの説明】

  1. Range.NumberFormatLocal = “yyyy/m/d”
    西暦で”/”で区切って日付を表示します
  2. Range.NumberFormatLocal = “yyyy/mm/dd”
    [1]の形式で月と日を2桁で表示します
  3. Range.NumberFormatLocal = “d-mmm-yy”
    欧米式で月を3桁の英語で表示します
  4. Range.NumberFormatLocal = “yyyy年m月d日”
    「年月日」を入れて表示します
  5. Range.NumberFormatLocal = “yyyy年mm月dd日”
    [4]の形式で月と日を2桁で表示します
  6. Range.NumberFormatLocal = “ge.m.d”
    和暦の短縮形(元号をアルファベット1文字)で表示します
  7. Range.NumberFormatLocal = “gge.m.d”
    和暦の短縮形(元号を漢字1文字)で表示します
  8. Range.NumberFormatLocal = “ggge年m月d日”
    和暦で「年月日」を入れて表示します
  9. 和暦で「元年」を表示させる方法

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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列目には同じ値を入力しました。
———————————————

【それぞれの説明】

  1. Range.NumberFormatLocal = “(ddd)”
    英語表記でアルファベット3文字でカッコで囲んで表示します。
  2. Range.NumberFormatLocal = “yyyy/m/d(ddd)”
    西暦日付(/区切り)の後ろに上記の曜日を表示します。
  3. Range.NumberFormatLocal = “(aaa)”
    日本語の曜日漢字1文字をカッコで囲んで表示します。
  4. Range.NumberFormatLocal = “yyyy年m月d日(aaa)”
    西暦に年月日を付け、上記の曜日を表示します。
  5. Range.NumberFormatLocal = “(aaaa)”
    日本語の曜日を漢字3文字でカッコで囲んで表示します。
  6. Range.NumberFormatLocal = “ggge年m月d日(aaaa)”
    4の表示に和暦の元号を付けます。

 

■時刻の表示形式

———————————————
2列目がVBAでの書式の設定の仕方
3列目が本来の入力した日付
4列目が書式を設定した日付
※3列目と4列目には同じ値を入力しました。
———————————————

【それぞれの説明】

  1. Range.NumberFormatLocal = “h:m:s”
    時分秒を:で区切って表示します。
  2. Range.NumberFormatLocal = “hh:mm:ss”
    時分秒が1桁の時に0を付けて表示します。
  3. Range.NumberFormatLocal = “hh:mm:ss AM/PM”
    12時間制で後ろにAM /PMを付けて表示します。
  4. Range.NumberFormatLocal = “hh時mm分ss秒”
    漢字の時分秒を付けて表示します。

 

次回は21回目で、セルの値の表示形式についての最終回です。

 

 

Copyright © syshan.jp all rights reserved.