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

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

Код: 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
A можно программно присвоить "кнопке формы" макрос
    #34547146
Dimen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С созданием сам разобрался, делаю так:
Код: 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
A можно программно присвоить "кнопке формы" макрос
    #34547198
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
A можно программно присвоить "кнопке формы" макрос
    #34547468
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
A можно программно присвоить "кнопке формы" макрос
    #34549751
Dimen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное, всем.
Понимаю что вопросы глупые и уже наверное поднадоели, но к сожалению сам не
шарю в програмировании, а очень нужно закончить все это уже.
Чесно, последний вопрос. Проблема в том что при закрытии созданная панель
должна изчезнуть, а если к примеру открыть по мимо основного файла его копию
а потом закрыть ее то панель (при срабатывании на Workbook Close)
закрывается и в основном файле тоже, и в оставшемся открытым основном
файле панели уже нет. А хотелось бы что бы реакции на закрытие копий небыло.
К тому же повторно создается кнопка на панели, что тоже не желательно.
Или как вариант, можно сделать следущее: если ни одной кнопки на созданной
панели не видно - то панель тоже не видна. Пожалай это будет оптимальным
выходом.
Заранее благодарен
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / A можно программно присвоить "кнопке формы" макрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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