質問: excel vba における個数のカウント方法について すいませんexcel vbaについて質問があります。 a列 1行 みかん 2行 みかん 3行 (空欄) 4行 みかん 5行 ぶどう 6行 みかん 7行 みかん 8行 ぶどう 9行 (空欄) ・ ・ 50行 a列は「みかん」若しくは「ぶどう」の値又は空欄のいずれかになっている。 空欄は無視して(1行~4行はみかんが3つ連続で並んだと考える)、 50 行までの間に「みかん」が最大で何回連続で並んだかを調べ、その最大の値をb1セルに入れる。 これをvbaで処理するにはどうしたらいいのでしょうか。 for ~nextとifで条件分岐 というような形になるのかなと思ったのですが どうしても思い浮かびません。 どうぞよろしくお願いします。
回答: 考え方のヒントです。 たとえば「みかん」を対象にした場合、 1)カウンターと最大値を控える変数を用意しておく。 2)ループの始めにカウンターをクリア(0にする) 3)上から(下からでもよい)順に見て行って、みかんが連続している間は カウンターをインクリメントする。(+1する=連続数を数える) 4)連続が途切れた時に、カウンターの値と最大値を比較して、大きいほう を最大値に保存する。 同時にカウンターをクリアする。(0に戻す) 5)以上を、データがある間ループさせて、終わったときに最大値に入って いる値が、求めたい回数となっている。 (「ぶどう」が対象の場合でも同じですね)