【ExcelVBA】日付の取得と加工

ExcelVBA, ExcelVBA基礎

日付の取得と加工

Sub Sample()

  Dim yyyy As Long
  Dim mm As Long
  Dim dd As Long
  
  yyyy = 2019
  mm = 8
  dd = 10
  
  Dim 日付 As Date
  日付 = DateSerial(yyyy, mm, dd)
	
  '================================================
  ' 日付
  '================================================
  MsgBox 日付 '2019/08/10

  '================================================
  ' 日付の年・月・日
  '================================================
  MsgBox Year(日付)  '2019
  MsgBox Month(日付) '8
  MsgBox day(日付)   '10

  MsgBox Format(日付, "yyyy") '2019
  MsgBox Format(日付, "yy") '19
	MsgBox Format(日付, "mm") '08
  MsgBox Format(日付, "dd") '10

	'================================================
  ' 日付の年月日(YYYYMMDD)
  '================================================
  MsgBox Format(日付, "yyyymmdd") '20190810

  '================================================
  ' 日付の曜日
  '================================================
  MsgBox Weekday(日付) '7 「1日曜日、2月曜日、・・・」
  MsgBox WeekdayName(Weekday(日付))  '土曜日

  MsgBox Format(Weekday(日付), "aaa")  '土
  MsgBox Format(Weekday(日付), "aaaa") '土曜日
  MsgBox Format(Weekday(日付), "ddd")  'Sat
  MsgBox Format(Weekday(日付), "dddd") 'Saturday
  
  '================================================
  ' 日付の和暦
  '================================================
  MsgBox Format(Weekday(日付), "g")   'R
  MsgBox Format(Weekday(日付), "gg")  '令
  MsgBox Format(Weekday(日付), "ggg") '令和
  MsgBox Format(Weekday(日付), "e")   '1

  '================================================
  ' 日付の月末
  '================================================
  MsgBox DateSerial(yyyy, mm + 1, 1) - 1 '2019/08/31
  MsgBox Format(DateSerial(yyyy, mm + 1, 1) - 1, "dd") '31

  '================================================
  ' 日付の30日後
  '================================================
  MsgBox DateSerial(yyyy, mm, dd + 30) '2019/09/09
  
  '================================================
  ' 日付が今年の第何日目なのか
  '================================================
  MsgBox Format(日付, "y") '222

  '================================================
  ' 日付が今年の第何週目なのか
  '================================================
  MsgBox Format(日付, "ww") '32

  '================================================
  ' 日付が四半期の第何期目なのか(第1四半期は1月~3月)
  '================================================
  MsgBox Format(日付, "q") '3
  
End Sub

和暦の表示が正しくないとき。

日本の新元号に関する Office の更新プログラム
https://support.microsoft.com/ja-jp/help/4478844/office-updates-for-new-japanese-era