Place this in a module:
Function CellColor(ws As Worksheet, irow As Integer)
Dim lcol As Integer
Dim icol As Integer
Dim ccell As Range
'Gives last populated column in the row
lcol = ws.Cells(irow, Columns.Count).End(xlToLeft).Column
'Loops through each cell until last populated column
For icol = 1 To lcol
Set ccell = ws.Cells(irow, icol)
If ccell.Interior.ColorIndex = 3 Then
MsgBox ccell.value & "is Red"
ElseIf ccell.Interior.ColorIndex = 4 Then
MsgBox ccell.value & " is Green"
Elseif ccell.value = "" then
ccell.value = "Required Field"
End If
Next
End Function
Example to call the Function on Sheet1 and first row:
Call CellColor(Sheet1, 1)
If you would like to change the colors but don't know what is the ColorIndex, just select a cell on excel, paint with the color you would like then run on your VBA Immediate Window (ctrl + G):
Msgbox activecell.Interior.ColorIndex
Either activecell or range, and then .Interior.ColorIndex will retrieve the ColorIndex for you to use in the Function.
If you would like to know the address of the green cell or red cell you can substitute:
MsgBox ccell.value & "is Red"
For
MsgBox ccell.address & "is Red"
Good luck!