- ベストアンサー
色の条件で判別し、シートを分けたい
- 質問文章の要点は、特定の条件(色の条件)でシートを分けたいということです。具体的には、アンマッチングデータを1対多の形式で保存し、色を番号で判別してフィルタをかけてコピーする方法を模索しています。
- 現在はマクロを利用して行を指定して色判別をしており、不要な行を削除する手続きも行っています。しかし、コピーに時間がかかってしまう問題があります。
- 効率的な方法で色の条件でデータを分ける方法を教えていただきたいと思います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
空白行があり色は無視して、振り分け先のシートの1行目は空いてしまいますが こんな方法もあります。 ⇒色による識別が必要な場合はスル~して下さい。 Sub try() Dim r As Range Dim rr As Range, rs As Range For Each r In Range("A:A").SpecialCells(xlCellTypeConstants, 3).Areas Set rr = r.Item(1) Set rs = r.Offset(1).Resize(r.Rows.Count - 1) Worksheets("Sheet4").Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = rr.Value Worksheets("Sheet5").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(rs.Rows.Count).Value = rs.Value Next End Sub
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
n-junです。 ついでですが。 >その場合は、offsetではなくRowsで指定すればOKでしょうか。 この場合だとEntireRowですね。 こんな感じかなって思います。 Sub try3() Dim r As Range Dim rr As Range, rs As Range For Each r In Range("A:A").SpecialCells(xlCellTypeConstants, 3).Areas Set rr = r.Item(1).EntireRow Set rs = r.Offset(1).Resize(r.Rows.Count - 1).EntireRow Worksheets("Sheet4").Cells(Rows.Count, 1).End(xlUp).Offset(1).EntireRow.Value = rr.Value Worksheets("Sheet5").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(rs.Rows.Count).EntireRow.Value = rs.Value Next End Sub
- n-jun
- ベストアンサー率33% (959/2873)
n-junです。 >その場合は、offsetではなくRowsで指定すればOKでしょうか。 Resizeで良いのではないかと。 コードはA列からJ列(10)としてますので、適宜修正願います。 Sub try2() Dim r As Range Dim rr As Range, rs As Range For Each r In Range("A:A").SpecialCells(xlCellTypeConstants, 3).Areas Set rr = r.Item(1).Resize(, 10) 'J列 Set rs = r.Offset(1).Resize(r.Rows.Count - 1).Resize(, 10) 'J列 Worksheets("Sheet4").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 10).Value = rr.Value Worksheets("Sheet5").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(rs.Rows.Count, 10).Value = rs.Value Next End Sub
お礼
回答者:n-jun 様 ありがとうございます。 教えていただいたマクロですが、 該当する行ごと別のシートにコピーしたいと考えています。 その場合は、offsetではなくRowsで指定すればOKでしょうか。 ※作っていただいたマクロで勉強させていただきます。 本当にありがとうございました。
補足
教えていただいたマクロで、私が作ったテストデータはOKだったのですが、今後、色での識別のほうが便利だろうということでした。 色の番号を取り出すことはできましたが、そこから先・・・ ピンクの行は、sheet4に行をコピー ブルーの行は、sheet5に行をコピー 空白は無視 というようなマクロを組んでみたいです。 ご教授よろしくお願いいたします。