- ベストアンサー
VBAで月単位でのカウント方法
- VBAを使用して、1月から12月までの月単位でのカウントを行いたい場合、for文を使用して各月のカウントを記述します。
- 具体的な記述方法としては、for文を使用して1月から12月までの各月を順番に処理します。
- if文を使用して、指定した日付が各月の発売日と一致するかどうかを判定し、カウントを行います。カウントを行う方法としては、カウンタ変数を用意し、一致する場合はカウンタ変数をインクリメントします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ただ1月と言っても、今年の1月と去年の1月を一緒に集計しちゃいたいんですか。 みたいな突っ込みはまぁ置いておいて。 sub macro1() dim y as integer dim m as integer dim res(12) as long y = 2014 worksheets("Sheet1").select for m = 1 to 12 res(m) = application.countif(range("B:B"), ">=" & dateserial(y,m,1)) - application.countif(range("B:B"), ">=" & dateserial(y,m+1,1)) cells(m, "C") = format(dateserial(y,m,1), "yyyy年m月") cells(m, "D") = res(m) next m end sub #それともこーいうのがいいのなら、こんなでも。 sub macro2() dim y as integer dim r as long dim res(12) as long dim h as range y = 2014 worksheets("Sheet1").select for r = 2 to range("B65536").end(xlup).row if isdate(cells(r, "B")) then res(month(cells(r, "B"))) = res(month(cells(r, "B"))) + 1 end if next r for r = 1 to 12 cells(r, "E") = res(r) next r end sub こーいうのだと全データを一個一個舐めまわしてくので、当然遅いです。
お礼
ありがとうございます。 何とかできました。