• ベストアンサー

A列に1~10000までの値が入力されています。

A列に1~10000までの値が入力されています。 下記の条件で、B列に印を付けたいです。 条件(1) A列には、途中ランダムに空白のセルがあります。 条件(2) B列に、5連続以上入力があった場合のみ●の印を付けたい。 マクロで、可能でしょうか? イメージは、画像のような感じです。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

マクロ(VBA)例です。 対象データシートタブ上で右クリック→コードの表示→サンプルコード貼り付け→シート上でAlt+F8キー押下→sample実行 Sub sample() Dim i As Long, j As Long, cnt As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row + 1 Select Case Cells(i, 1) Case "" If cnt >= 5 Then Cells(j, 2).Resize(cnt) = "●" cnt = 0 Case Else If cnt = 0 Then cnt = 1: j = i Else cnt = cnt + 1 End If End Select Next End Sub

tta0852lkjpl
質問者

お礼

うぉぉぉ。 完璧です!!!!感謝感謝ですよ。

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

マクロというよりも関数で十分対応できますね。 データがA2セルから下方にあるとします。 B2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNT(A2:A6)=5,"●",IF(AND(A2<>"",B1="●"),"●","")))

tta0852lkjpl
質問者

お礼

関数でも、狙い通りの結果になりました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

こんばんは、参考に Sub Test()   Dim c As Range   For Each c In Range("A:A").SpecialCells(xlCellTypeConstants).Areas     If c.Cells.Count >= 5 Then c.Offset(, 1).Value = "●"   Next End Sub

tta0852lkjpl
質問者

お礼

おおお。 マクロと言っても、色々と方法があるんですね。 勉強になります。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

マクロではなく関数ですが B1に =IF(COUNT(A1:A5)=5,"●","") B2に =IF(COUNT(A2:A6)=5,"●",IF((A2<>"")*(B1="●"),"●","")) と、入れてB2を下方向にコピーしてください。

tta0852lkjpl
質問者

お礼

迅速に回答して頂き、ありがとうございます。 関数で出来ました。

関連するQ&A

専門家に質問してみよう