Finding black and white images
Your code should have a function IsGrayscale(bmp as Bitmap) as Boolean. It should look like this:

Function IsGrayscale(bmp as Bitmap) as Boolean
    For x As Integer = 0 To bmp.Width - 1 Do
        For y As Integer = 0 To bmp.Height - 1 Do
          If Not IsGrayscalePixel(bmp.GetPixel(x, y)) Then
              Return False
          End If
        End For
    End For
    Return True
End Function

Function IsGrayscalePixel(col as Color) as Boolean
    Return col.R = col.G and col.G = col.B
End Function


At least this is what I think your program should do, based on your description. You don't need the concept of a "color key" to check whether an image is grayscale or not.

The main point is that the function returns as soon as it has found a colored pixel, since then there is no point in checking the rest of the image.

Note that I don't know Visual Basic well, so there might be syntax errors in the above code. So focus more on the ideas than one the grammar.