Программно изменить цвет ярлычка рабочего листа в Excel
С именем пользую просто инпутбокс, а вот с выбором цвета ярлычка...
цвет меняется через
лист.tab.index = цвет
но он не подчиняется стандартной схеме RGB!
А выберается из константного набора около 20-30 цветов.
Когда просто из екселя меняешь цвет, то вылезает маленькое окошечко с этой палитрой.
Главный вопрос: как его вызвать программно?
ЗЫ: а еще заодно как вызвать стандартную палитру RGB?
Код:
Application.CommandBars.FindControl(ID:=5747).Execute
Цитата:
Originally posted by pashulka
Код:
Application.CommandBars.FindControl(ID:=5747).Execute
Спасибо большое!!!
А этот
ID:=5747
от версии офиса не зависит?
Код:
With Application
If Val(.Version) >= 10 Then
.CommandBars.FindControl(ID:=5747).Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
If Val(.Version) >= 10 Then
.CommandBars.FindControl(ID:=5747).Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
Код:
With Application
Set iFindControl = .CommandBars.FindControl(ID:=5747)
If Not iFindControl Is Nothing Then
iFindControl.Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
Set iFindControl = .CommandBars.FindControl(ID:=5747)
If Not iFindControl Is Nothing Then
iFindControl.Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
Цитата:
Originally posted by pashulka
Насколько мне известно этот идентификационный номер уникален, но он появился только в MS Excel XP, так как в более ранних версиях изменить цвет ярлычка было нельзя (средствами MS Excel) Но если возможен вариант, что версии приложений будут отличаться, то можно использовать что-то вроде :
Насколько мне известно этот идентификационный номер уникален, но он появился только в MS Excel XP, так как в более ранних версиях изменить цвет ярлычка было нельзя (средствами MS Excel) Но если возможен вариант, что версии приложений будут отличаться, то можно использовать что-то вроде :
Код:
With Application
If Val(.Version) >= 10 Then
.CommandBars.FindControl(ID:=5747).Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
If Val(.Version) >= 10 Then
.CommandBars.FindControl(ID:=5747).Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
Код:
With Application
Set iFindControl = .CommandBars.FindControl(ID:=5747)
If Not iFindControl Is Nothing Then
iFindControl.Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
Set iFindControl = .CommandBars.FindControl(ID:=5747)
If Not iFindControl Is Nothing Then
iFindControl.Execute
Else
MsgBox "В версии : " & .Version & vbCrLf & _
"невозможно вызвать диалоговое окно" & vbCrLf & _
"изменения цвета ярлычка", vbExclamation, ""
End If
End With
Как исключительную ситуацию обработать я понял. FindControl ищет по номеру именно кнопоку которая запускает это окошко и уже как бы ее нажимает (я прально понимаю?)
Использовать так можно и понятно, а непосредственно само окошко вызвать без обращения к CommandBars.. а?
зы: Как ты это нашол? ;)
2. Cтандартные диалоговые окна можно вызвать так :
Код:
Application.Dialogs(xlDialogWorkbookName).Show
Но вопрос, можно ли подобным образом, вызвать нужное Вам диалоговое окно, необходимо переадресовать владельцам MS Excel XP
3. Просто зашёл к людям, у которых установлен именно MS Excel XP и посмотрел нужный мне ID