Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Excel CommandButton добавление кнопки в рабочий лист / 16 сообщений из 16, страница 1 из 1
12.12.2006, 18:33
    #34194404
Frosch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel CommandButton добавление кнопки в рабочий лист
Здравствуйте,

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

Заранее спасибо
...
Рейтинг: 0 / 0
12.12.2006, 18:47
    #34194442
Nikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel CommandButton добавление кнопки в рабочий лист
Код: 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
12.12.2006, 20:20
    #34194655
Frosch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel CommandButton добавление кнопки в рабочий лист
Спасибо. Теперь возник конечно вопрос как подвесить под эту кнопку выполнение следующего макро:

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

Но намного проще будет, создать книгу шаблон с нужными макросами и кнопками на листе, а потом копировать нужные листы в новые книги.
...
Рейтинг: 0 / 0
13.12.2006, 09:28
    #34195374
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel CommandButton добавление кнопки в рабочий лист
Код: 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
Период между сообщениями больше года.
28.10.2011, 15:08
    #37502806
netud
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel CommandButton добавление кнопки в рабочий лист
При добавлении макроса по средством .VBProject.VBComponents(...).CodeModule
"Вылетает" Окно Редактора VB, как его скрыть, что при добавлении кода оно не появлялось?
...
Рейтинг: 0 / 0
28.10.2011, 16:38
    #37503067
wtf?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA Excel CommandButton добавление кнопки в рабочий лист
netud,

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

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

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

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

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

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

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

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

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

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

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


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