• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで1月から12月まで月単位でのカウント)

VBAで月単位でのカウント方法

このQ&Aのポイント
  • VBAを使用して、1月から12月までの月単位でのカウントを行いたい場合、for文を使用して各月のカウントを記述します。
  • 具体的な記述方法としては、for文を使用して1月から12月までの各月を順番に処理します。
  • if文を使用して、指定した日付が各月の発売日と一致するかどうかを判定し、カウントを行います。カウントを行う方法としては、カウンタ変数を用意し、一致する場合はカウンタ変数をインクリメントします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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 こーいうのだと全データを一個一個舐めまわしてくので、当然遅いです。

ShiftTail
質問者

お礼

ありがとうございます。 何とかできました。

関連するQ&A