powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Excel CommandButton добавление кнопки в рабочий лист
16 сообщений из 16, страница 1 из 1
VBA Excel CommandButton добавление кнопки в рабочий лист
    #34194404
Frosch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

пишу макро для Excel. Проблема следующая: при автоматическом создании нового рабочего листа на нем должна автоматически добавляться кнопка CommandButton. Подскажите, пожалуйста, как такое осуществить

Заранее спасибо
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #34194442
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
        , DisplayAsIcon:=False, Left:= 57 , Top:= 29 . 4 , Width:= 80 . 4 , Height:= _
         38 . 4 ).Select
*великая штука макрорекордер
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #34194655
Frosch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Теперь возник конечно вопрос как подвесить под эту кнопку выполнение следующего макро:

Private Sub CommandButton1_Click()
MsgBox ("KK")
End Sub
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #34194798
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через коллекцию VBProject.

Но намного проще будет, создать книгу шаблон с нужными макросами и кнопками на листе, а потом копировать нужные листы в новые книги.
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #34195374
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Sub CreateButton()
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
    Dim cmd As Excel.OLEObject
    
    Set wb = Workbooks.Add
    Set ws = wb.Worksheets.Add
    
    With ws
        Set cmd = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
          Left:=.Range("D4").Left, Top:=.Range("D4").Top, _
          Width:= 100 , Height:= 30 )
    End With
    
    cmd.Object.Caption = "Запустить"
    cmd.Name = "Command1"
    
    With wb.VBProject.VBComponents(ws.CodeName).CodeModule
        .InsertLines .CreateEventProc("Click", cmd.Name) +  1 , _
          "    Msgbox ""Test Message."""
    End With
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37502806
netud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При добавлении макроса по средством .VBProject.VBComponents(...).CodeModule
"Вылетает" Окно Редактора VB, как его скрыть, что при добавлении кода оно не появлялось?
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37503067
wtf?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netud,

зачем писать самомодифицирующуюся программу? Вирус?
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37503573
netud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wtf?netud,

зачем писать самомодифицирующуюся программу? Вирус?

зачем сразу так жестоко?

Форма для Юзеров, по мере заполнения создаю дополнительные контролы. вот и все.
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37503606
wtf?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netud,

а, ну тогда есть темка по соседству, "Добавление обработчиков событий программным образом".
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37503679
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот же макрорекордер подсказывает, что макрос мог был написан и раньше, а теперь только назначен кнопке
Код: plaintext
1.
    ActiveSheet.Buttons.Add( 379 . 5 ,  72 . 75 ,  89 . 25 ,  31 . 5 ).Select
    Selection.OnAction = "Макрос"
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37503774
netud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wtf?netud,

а, ну тогда есть темка по соседству, "Добавление обработчиков событий программным образом".

К сожалению по своей проблеме я ничего там не обнаружил
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37503779
wtf?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netud,

Если задача динамически назначить неопределённому заранее количеству элементов управления обработчик(и) событий, то по ссылке из той темы находится решение.
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37503872
netud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wtf?netud,

Если задача динамически назначить неопределённому заранее количеству элементов управления обработчик(и) событий, то по ссылке из той темы находится решение.

ДАнная задача решена, проблема в том, что при, Добавлении обработчиков событий программным образом, всплывает окно редактора VB, и соответственно, вопрос как мне его скрыть.
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37504695
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще я предлагал 11238023 делать немного по-другому...
...
Рейтинг: 0 / 0
VBA Excel CommandButton добавление кнопки в рабочий лист
    #37504956
wtf?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netudДАнная задача решена, проблема в том, что при, Добавлении обработчиков событий программным образом, всплывает окно редактора VB, и соответственно, вопрос как мне его скрыть.1) Полностью не решена, раз остался вопрос.
2) Вот есть какая-то операция, которая приводит к появлению новой кнопки и добавлению в VBA-проект (при таком подходе) нового обработчика. Если пользователь хочет сделать Undo или обратную операцию, приводящую к удалению кнопки, что опять вносить изменения в VBA-проект? Т. е. фактических изменений может не быть, но пользователя при закрытии книги будут донимать вопросом: "Сохранять да/нет?"
3) Если сохранить изменённую рабочую книгу (с изменённым VBA-проектом), что будет при следующей рабочей сессии, не будет ли ситуации (и необходимости её обрабатывать), когда показывается начальное количество кнопок, а при добавлении выяснится, что обработчик с тем же именем в том же классе есть?
4) Это "решение" не будет работать при переносе в среды разработки, где не позволяется самомодификация программы. Сам метод плох идеологически и не технологичен.
5) Код, который хранится в тексте, сложнее отлаживать и обслуживать.

Теперь вопрос - а зачем такое решение, когда рядом есть пример, где такие вопросы либо не возникают изначально, либо решаются парой строчек кода? С точки зрения технической - незачем. Но хозяин-барин, переубеждать не буду.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
VBA Excel CommandButton добавление кнопки в рабочий лист
    #38861169
Маринус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста!
Открыть электронную таблицу «ОтельФорма». Установить на форму надпись «Город», список из трех названий городов так, чтобы при нажатии на кнопку «ОК» выбранный город записывался в ячейку В2 листа1.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Excel CommandButton добавление кнопки в рабочий лист
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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