Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программно изменить цвет ярлычка рабочего листа в Excel

16K
13 марта 2006 года
Dixon_Che
3 / / 13.03.2006
Задача: Нужно програмно создать новый лист, при этом выдается запрос о его имени и цвете.

С именем пользую просто инпутбокс, а вот с выбором цвета ярлычка...
цвет меняется через
лист.tab.index = цвет
но он не подчиняется стандартной схеме RGB!
А выберается из константного набора около 20-30 цветов.
Когда просто из екселя меняешь цвет, то вылезает маленькое окошечко с этой палитрой.

Главный вопрос: как его вызвать программно?

ЗЫ: а еще заодно как вызвать стандартную палитру RGB?
275
19 марта 2006 года
pashulka
985 / / 19.09.2004
 
Код:
Application.CommandBars.FindControl(ID:=5747).Execute
16K
21 марта 2006 года
Dixon_Che
3 / / 13.03.2006
Цитата:
Originally posted by pashulka
 
Код:
Application.CommandBars.FindControl(ID:=5747).Execute



Спасибо большое!!!
А этот
ID:=5747
от версии офиса не зависит?

275
21 марта 2006 года
pashulka
985 / / 19.09.2004
Насколько мне известно этот идентификационный номер уникален, но он появился только в 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


Код:
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
16K
21 марта 2006 года
Dixon_Che
3 / / 13.03.2006
Цитата:
Originally posted by pashulka
Насколько мне известно этот идентификационный номер уникален, но он появился только в 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


Код:
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



Как исключительную ситуацию обработать я понял. FindControl ищет по номеру именно кнопоку которая запускает это окошко и уже как бы ее нажимает (я прально понимаю?)
Использовать так можно и понятно, а непосредственно само окошко вызвать без обращения к CommandBars.. а?

зы: Как ты это нашол? ;)

275
22 марта 2006 года
pashulka
985 / / 19.09.2004
1. Всё правильно, метод .FindControl и .FindControls (MS Excel 2000) ищут CommandBarControl, только найденный контрол, может быть не только кнопкой.
2. Cтандартные диалоговые окна можно вызвать так :
 
Код:
Application.Dialogs(xlDialogWorkbookName).Show

Но вопрос, можно ли подобным образом, вызвать нужное Вам диалоговое окно, необходимо переадресовать владельцам MS Excel XP
3. Просто зашёл к людям, у которых установлен именно MS Excel XP и посмотрел нужный мне ID
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог