• ベストアンサー

excelで一つのシート(sheet1)で行ことにランダムに色を分けて

excelで一つのシート(sheet1)で行ことにランダムに色を分けてあるシート(sheet1)を同じ色ことの行探してコピーをして他のシート(sheet2)に一つの色の行のデータを集めたいですが, マクロで出来ないですか? マクロのことは素人ですので,助けてください.

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

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

面白そうなので作ってみました。 やりたいことと違うところがあったら、このコードを読解してご自分で修正してくださいね。 Sub test() Dim Sh() As Worksheet ReDim Sh(0) Set Sh(0) = ActiveSheet With Sh(0) Dim r As Long, r2 As Long, c As XlColorIndex For r = .UsedRange.Row To .UsedRange.Row - 1 + .UsedRange.Rows.Count c = .Cells(r, 1).Interior.ColorIndex For r2 = r - 1 To .UsedRange.Row Step -1 If .Cells(r2, 1).Interior.ColorIndex = c Then Exit For End If Next r2 If r2 < .UsedRange.Row Then ReDim Preserve Sh(UBound(Sh) + 1) Set Sh(UBound(Sh)) = Worksheets.Add(After:=Worksheets(Worksheets.Count)) Sh(UBound(Sh)).Name = "c" & c .Rows(r).Copy Sh(UBound(Sh)).Rows(1) Else 'If Worksheets("c" & c).UsedRange.Count > 0 Then With Worksheets("c" & c) Sh(0).Rows(r).Copy .Rows(.UsedRange.Row + .UsedRange.Rows.Count) End With 'End If End If Next r End With End Sub

chokopie95
質問者

お礼

有り難うございました. 参考にして自分用に改良します. 多分,かなり時間はかかると思いますが.

関連するQ&A