表から色付きのセルを別シートで管理する。

下記のマクロでは、表の中から黄色の列の値だけを別シートに貼り付けます。

・表のA列が黄色の列を別シートに貼り付ける。

Sub test1()

Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim LastRow As Long
Dim i As Long
Dim j As Long

 j = 2
'以下シート名は自分のシート名に変更すること
Set Sh1 = ThisWorkbook.Sheets("参照元")
Set Sh2 = ThisWorkbook.Sheets("貼り付け先")

'最終行を取得
LastRow = Sh1.Cells(Rows.Count, 1).End(xlUp).Row

'セルをループして黄色だったら、貼り付け先へ転記
For i = 1 To LastRow
	'A行が「65535」(黄色)だった場合、別シートにその要素を貼り付ける。
    If Sh1.Cells(i, 1).Interior.Color = 65535 Then
        Sh1.Range("A" & i & ":F" & i).Copy
        Sh2.Range("A" & j).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        j = j + 1
    End If
Next i

Set Sh1 = Nothing
Set Sh2 = Nothing

End Sub

参照シート OR 貼り付け先のシートを変えたい

データの参照シートを変えたい場合は、
上記のマクロの「Set Sh1 = ThisWorkbook.Sheets("参照元")」の「参照元」を
自身の参照したいシート先名に変更。

貼り付け先のシートを変えたい場合は、
上記のマクロの「Set Sh2 = ThisWorkbook.Sheets("貼り付け先")」の「貼り付け先」を
自身の貼り付けたいシート先名に変更。

判定する色を変えたい

上記のマクロでは、判定する色を「65535」(黄色)で指定しています。
判定する色を変えたい場合は、特定の色に変更しないといけません。

下記に一部記します。
背景色 Long型の値 ColorIndex列挙型の値 RGB値
255 3 255, 0, 0
グレー 12632256 16 128, 128, 128
16711680 5 0, 0, 255
65535 6 255, 255, 0
32768 4 0, 255, 0
16777215 2 255, 255, 255

また上の表にない場合は、下記のコードを実行すると取得できます。

・A1セルの背景色を表示する

Dim myColor As Long
myColor = Range("A1").Interior.Color
MsgBox "A1セルの背景色は " & myColor & " です。"
例えば、A1セルの背景色が赤の場合は、メッセージボックスに「A1セルの背景色は 255 です。」と表示されます。

カスタムカラーで条件を指定したい

カスタムカラーの色を指定するには、少し工夫が必要です。

・A1セルの背景色を表示する

If Sh1.Cells(i, 5).Interior.Color = RGB(128, 0, 128) Then
というのも、上記のようにカスタムカラーのRGB()値を指定するからです。

下記は、RGB値を取得するマクロの一例です。

・A1セルのRGB値を表示する

Dim redValue As Integer
Dim greenValue As Integer
Dim blueValue As Integer

redValue = Range("A1").Interior.Color Mod 256
greenValue = Range("A1").Interior.Color \ 256 Mod 256
blueValue = Range("A1").Interior.Color \ 65536 Mod 256

MsgBox "A1セルの背景色のRGB値は (" & redValue & ", " & greenValue & ", " & blueValue & ") です。"
上記のコードを実行すると、A1セルの背景色のRGB値が表示されます。

判定する列を変えたい

上のマクロでは、判定するセルはA行にしています。
変更したい場合は、「If Sh1.Cells(i, 1).Interior.・・・」の「Cells()」を
下記のように変更しましょう。
B列を判定したい。「If Sh1.Cells(i, 2).Interior.・・・」
C列を判定したい。「If Sh1.Cells(i, 3).Interior.・・・」
D列を判定したい。「If Sh1.Cells(i, 4).Interior.・・・」