Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / A можно программно присвоить "кнопке формы" макрос / 8 сообщений из 8, страница 1 из 1
22.05.2007, 21:57
    #34543886
Dimen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
Подскажите а можно программно присвоить "кнопке формы" макрос.
(При открытии на новом компе заданной Excel книги создается панель с двумя кнопками и необходимо что бы не копаться и не присваивать кнопкам макросы. В автозаписи макроса само присвоение ни как не отражается почему то.)
...
Рейтинг: 0 / 0
22.05.2007, 22:20
    #34543923
lena_####
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
Код: plaintext
1.
2.
3.
With myControl
  ...
  .OnAction = "MySub"
End With
...
Рейтинг: 0 / 0
22.05.2007, 23:44
    #34544041
Dimen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
Не много все усложнилось.
1. Нужно что бы панель однажды по открытию создавшись больше не создавалась.
2. При первом открытии файла на новом компе создается кнопка на созданной панели и ей присваиваетя макрос который уже лежит в "модуле 8" (при повторном открытии присваивать уже ни чего конечно не надо, просто достаточно быть видимой пока открыт документ)
2. Имеется 2 таких файла, открывая первый - имеем первую кнопку на панели.
Если при открытой первой книге открываем вторую, то создается (появляется) вторая кнопка с присвоенным ей макросом который лежит во второй книге в "модуле 6". (Кнопка соотв-но видима пока открыта вторая книга.)

Короче все должно быть просто открыт файл - видна панель с кнопкой, закрыт нужный файл - ни чего не видно.
Вот вроде бы и все, спасибо если кто поможет.
...
Рейтинг: 0 / 0
23.05.2007, 18:42
    #34546755
Dimen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
Добрый вечер. Подскажите а можно ли прог-но присвоить имя кнопке которая создается в меню.
и можно ли её про-но удалить?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Макрос2()
    Application.CommandBars.Add(Name:="Save To Desktop").Visible = True
Set myBar = CommandBars("Save To Desktop")
Set myControl = myBar.Controls _
    .Add(Type:=msoControlButton)
With myControl
    .FaceId =  3 
    .OnAction = "SaveToDesktop"
End With
myBar.Visible = True
End Sub
...
Рейтинг: 0 / 0
24.05.2007, 00:15
    #34547146
Dimen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
С созданием сам разобрался, делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub Макрос2()
    Application.CommandBars.Add(Name:="Save To Desktop").Visible = True
Set myBar = CommandBars("Save To Desktop")
Set myControl = myBar.Controls _
    .Add(Type:=msoControlButton)
With myControl
    .FaceId =  3 
    .TooltipText = "Save To Desktop (Sign-On)"
    .OnAction = "SaveToDesktop"
End With
myBar.Visible = True
End Sub

А вот с удаление именно созданной кнопки не совсем понятно, на авто записи пишет:
Код: plaintext
1.
2.
Sub Макрос3()
    Application.CommandBars("Visual Basic").Controls( 10 ).Delete
End Sub
Да, она удаляется, я так понимаю удаляется просто 10-я кнопка по счету в панели ("Visual Basic"),
а можно как нибудь более конкретно прописать что нужно удалить?



Да и старый вопрос остается открытым: - как отменить повторное создание новой панели, её создание висит на Workbook OPEN? и при последующих открытиях книги выходит ошибка.
Please!
Код: plaintext
1.
2.
3.
4.
Sub Custom4()
    Application.CommandBars.Add(Name:="Custom").Visible = True
    Application.CommandBars("Custom").Controls.Add Type:=msoControlButton, ID:= _
         2950 , Before:= 1 
End Sub
...
Рейтинг: 0 / 0
24.05.2007, 01:27
    #34547198
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
DimenДа, она удаляется, я так понимаю удаляется просто 10-я кнопка по счету в панели ("Visual Basic"), а можно как нибудь более конкретно прописать что нужно удалить?Можно. По имени. При создании кнопки пишешь myControl.Name = "some unique name" а потом уже из любого макроса вместо номера ставишь заданое имя.

DimenДа и старый вопрос остается открытым: - как отменить повторное создание новой панели, её создание висит на Workbook OPEN? и при последующих открытиях книги выходит ошибка.перехвати ошибку.
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub Workbook_Open()
    on error resume next
    Application.CommandBars.Add(Name:="Custom").Visible = True
    on error goto  0 
    set mybar=Application.CommandBars("Custom")
    mybar.Controls.Add Type:=msoControlButton, ID:=  2950 , Before:= 1 
End Sub
...
Рейтинг: 0 / 0
24.05.2007, 09:27
    #34547468
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
Dimen

А вот с удаление именно созданной кнопки не совсем понятно, на авто записи пишет:
Код: plaintext
1.
2.
Sub Макрос3()
    Application.CommandBars("Visual Basic").Controls( 10 ).Delete
End Sub
Да, она удаляется, я так понимаю удаляется просто 10-я кнопка по счету в панели ("Visual Basic"),
а можно как нибудь более конкретно прописать что нужно удалить?


Код: plaintext
1.
2.
3.
    Set mybar = Application.CommandBars("Visual Basic")
    For Each ctl In mybar.Controls
        If ctl.Caption = "..." Then ctl.Delete
    Next
...
Рейтинг: 0 / 0
24.05.2007, 20:42
    #34549751
Dimen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A можно программно присвоить "кнопке формы" макрос
Спасибо огромное, всем.
Понимаю что вопросы глупые и уже наверное поднадоели, но к сожалению сам не
шарю в програмировании, а очень нужно закончить все это уже.
Чесно, последний вопрос. Проблема в том что при закрытии созданная панель
должна изчезнуть, а если к примеру открыть по мимо основного файла его копию
а потом закрыть ее то панель (при срабатывании на Workbook Close)
закрывается и в основном файле тоже, и в оставшемся открытым основном
файле панели уже нет. А хотелось бы что бы реакции на закрытие копий небыло.
К тому же повторно создается кнопка на панели, что тоже не желательно.
Или как вариант, можно сделать следущее: если ни одной кнопки на созданной
панели не видно - то панель тоже не видна. Пожалай это будет оптимальным
выходом.
Заранее благодарен
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / A можно программно присвоить "кнопке формы" макрос / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]