Disculpa pero no entiendo, la instrucción que te puse hace lo que pides, si presionas el commandbutton1, ese control se pinta de verde.
Prueba lo siguiente:
Private Sub CommandButton1_Click()
'Por.Dante Amor
PintarBotones "CommandButton1"
End Sub
Private Sub CommandButton2_Click()
PintarBotones "CommandButton2"
End Sub
Private Sub CommandButton3_Click()
PintarBotones "CommandButton3"
End Sub
Sub PintarBotones(b)
'Por.Dante Amor
For Each boton In Controls
If TypeName(boton) = "CommandButton" Then
If boton.Name = b Then
boton.BackColor = &HFF00&
Else
boton.BackColor = &H8000000F
End If
End If
Next
End Sub
Lo que hace la macro es pintar todos los botones de gris, excepto el botón que presionas, ese botón lo pintará de verde, pero tienes que poner esta instrucción en los 20 botones
PintarBotones "CommandButton1"
Revisa que estoy poniendo como parámetro el nombre del botón entre comillas "CommandButton1", para el botón2 deberás poner el nombre del botón2:
PintarBotones "CommandButton2"