VocExcel(単語帳) / VBA Tips
 
 [Key] エクセル / Excel / VBA /マクロ


<--- 戻る

今月の日付を抽出
サンプルファイル

今月の日付を抽出します。

[ポイント]
・今月の1日を取得
・今月の最終日を取得(来月の1日 - 1 が今月の最終日)


Sub sample()

'================= 今月の日付を抽出するマクロ  ===============


Dim DateOne As Date '今月の1日
Dim DateB As Date '今月の最終日





'########################################################
'今月の1日を取得 =========================================
'########################################################
YearOne = Year(Date)
MonthOne = Month(Date)
DayOne = 1

'今月の1日を文字列にする
DateStringOne = YearOne & "/" & MonthOne & "/" & DayOne


'文字列の日付に変換。
DateOne = DateValue(DateStringOne)




'#############################################################
'今月の最終日を取得 // 「来月の1日 - 1」が今月の最終日。'#############################################################

If Month(Date) <> 12 Then '今月が12月でないならば、来月は「今月 + 1」

YearB = Year(Date)
MonthB = Month(Date) + 1
DayB = 1

'先月の1日を文字列にする
DateStringB = YearB & "/" & MonthB & "/" & DayB

'文字列の日付に変換。 1を引くことで、今月の最終日が取得できる。
DateB = DateValue(DateStringB) - 1



Else ' 今月が12月だったら、来年の1月になる


YearB = Year(Date) + 1
MonthB = 1
DayB = 1


'先月の1日を文字列にする
DateStringB = YearB & "/" & MonthB & "/" & DayB

'文字列の日付に変換。 1を引くことで、今月の最終日が取得できる。
DateB = DateValue(DateStringB) - 1



End If



'#######################################################
'抽出条件をシートに転記=================
'######################################################

'抽出の条件式
'今月の1日
Cells(4, "C").Value = ">=" & DateOne


'今月の最終日
Cells(4, "D").Value = "<=" & DateB


Range("B9:D39").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("C3:D4"), Unique:=False


End Sub

--