Тема: Изменение формата OptionButton при нажатии.
Здравствуйте!
Суть проблемы такова:
Существует три кнопки в ряд, которые соответствуют значениям Плохо, Нормально, Хорошо.
Необходимо, чтобы при нажатии каждая кнопка выделялась соответствующим способом:
Сама кнопка красным, а предыдущие - желтым.
Т.е., например, при выделении кнопки "Хорошо" она выделяется красным, а предыдущие( "плохо", "нормально") выделяются желтым, а при нажатии на кнопку "нормально" она выделяется красным, кнопка "плохо" выделяется желтым, а кнопка "хорошо" остается не выделенной.
При лурканьи на зарубежных форумах был найден соответствующий макрос, только для 4 optionbuttons :
Private Sub mFormatOptionButtons(Index As Long)
Dim lngOptIndex As Long
ActiveSheet.Range("A1").Value = Index
For lngOptIndex = 1 To 4 ' set to number of option button required
With ActiveSheet.Shapes("opt" & lngOptIndex).OLEFormat.Object.Object
If lngOptIndex = Index Then
.ForeColor = vbRed
Else
.ForeColor = vbYellow
End If
End With
Next
End Sub
Private Sub opt1_Click()
mFormatOptionButtons 1
End Sub
Private Sub opt2_Click()
mFormatOptionButtons 2
End Sub
Private Sub opt3_Click()
mFormatOptionButtons 3
End Sub
Private Sub opt4_Click()
mFormatOptionButtons 4
End Sub
По идее, этот макрос довольно легко редактируется для 3 кнопок:
For lngOptIndex = 1 To 4 изменяется на
For lngOptIndex = 1 To 3 , а
"Private Sub opt4_Click()
mFormatOptionButtons 4
End Sub" просто удаляется.
Но данный макрос после редактирования выдает ошибки, выделяя как неправильные следующие строчки:
Private Sub opt1_Click()
Private Sub opt2_Click()
Private Sub opt3_Click()
Код ошибки: "Invalid number.."
Не могли бы вы подсказать, что я делаю не так?
viter.alex: оформляйте код тегом [сode][/сode]