|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
Кнопку на лист можно добавить кодом из проекта VD2015 несколькими способами ActiveSheet.Buttons.Add(350, 70, 144, 61.2).Select ' создает кнопку ActiveSheet.Shapes("Button 1").Select Как задать кнопке событие, чтобы код был в VB2015 или передать управление из VBA Excelя в VB2015 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 15:39 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
гиней, для Shapes надо просто прописать для этой кнопки Код: vbnet 1.
для ActiveX такой роскоши нет, поэтому там лучше применять модули классов для обработки нажатий кнопок. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 15:42 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
Макрос это не нужно. Но код макроса можно перенести в код кнопки. Вот в чем вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 15:47 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
привожу код Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Модератор: Учимся использовать тэги оформления кода - FAQ Вопрос . Как в этом коде программно придать управление кнопке, которая находится на листе. Т.е. сделать ее с событием? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 10:20 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
авторНо код макроса можно перенести в код кнопки. Кнопка созданная таким образом не имеет кода, но ей может быть назначен макрос(процедура) Отсюда вывод: создавай программно процедуру и назначай кнопке ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 11:21 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
например так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 13:35 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
alex77755, Спасибо это уже теплее Только : кнопка на листе нужна! А процедура и кнопка должны быть в Проекте VS2015 иначе приходиться переписывать макрос. Через ActiveX у меня не получается, в Shell не силен А с форумов одни макросы только шлют ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 15:15 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
Это и есть процедура в VB2010, которая создаёт новую книгу, записывает в неё процедуру, создаёт кнопку на листе 1 и назначает ей созданную процедуру ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 16:06 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
Спасибо alex777755 Попытался приспособить твой код Вот так Ниже То есть перевести на процедуру Он дает сбой Как подправить? И к модератору ==>FAQ не понятен Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ТекстПроцедуры, Q _xlApplication = CreateObject("Excel.Application") _xlWorkBook = _xlApplication.WorkBooks.add _xlApplication.visible = 1 ТекстПроцедуры = "QWERT" 'Это чтобы вызвать процедцру QWERT 'ТекстПроцедуры = "public Sub QWERT()" & vbCrLf & " MsgBox(""Привет"")" & vbCrLf & "End sub" ' Так можно записывать процедуру _xlWorkBook.VBProject.VBComponents.Item("ЭтаКнига").CodeModule.AddFromString("ТекстПроцедуры") Q = _xlWorkBook.Worksheets(1).Buttons.add(100, 100, 120, 60) Q.onaction = "ЭтаКнига.QWERT" End Sub Private Sub QWERT() MsgBox("Привет") End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 10:53 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
К модературу Теперь FAQ понятен Только краски не все ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 10:54 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
гинейТеперь FAQ понятенотлично, осталось освоить Как мне оформить свое сообщение? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 11:49 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
Спасибо Украина alex77755 Хотел подправить твой код Вот так Переделал текст в процедуру а он дает сбой а надо в процедуру другую записать Не MSGBOX Попытался текст привести к FAQ Вот что получается Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ТекстПроцедуры, Q _xlApplication = CreateObject("Excel.Application") _xlWorkBook = _xlApplication.WorkBooks.add _xlApplication.visible = 1 ТекстПроцедуры = "QWERT" 'Это чтобы вызвать процедуру QWERT 'ТекстПроцедуры = "public Sub QWERT()" & vbCrLf & " MsgBox(""Привет"")" & vbCrLf & "End sub" ' Так можно записывать процедуру _xlWorkBook.VBProject.VBComponents.Item("ЭтаКнига").CodeModule.AddFromString("ТекстПроцедуры") Q = _xlWorkBook.Worksheets(1).Buttons.add(100, 100, 120, 60) Q.onaction = "ЭтаКнига.QWERT" End Sub Private Sub QWERT() MsgBox("Привет") End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 14:13 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
гинейAddFromString("ТекстПроцедуры")Переменные не должны заключаться в кавычки, чтобы передавалось хранимое ими значение, а не их имя: Код: vbnet 1.
P.S. чую, Вы недалеки от закрытия тем, т.к. коды в сообщениях так и не оформляете нужными тегами(SRC). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 14:19 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
Попробовал через ActivX Считается он лучше. Вот так получилось Как исправить эту ошибку Q.onaction = "ЭтаКнига.QWERT" [color=red Private _xlApplication, _xlWorkBook Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ТекстПроцедуры, Q _xlApplication = CreateObject("Excel.Application") _xlWorkBook = _xlApplication.WorkBooks.add _xlApplication.visible = 1 ТекстПроцедуры = "public Sub QWERT()" & vbCrLf & " MsgBox(""Привет"")" & vbCrLf & "End sub" _xlWorkBook.VBProject.VBComponents.Item("ЭтаКнига").CodeModule.AddFromString(ТекстПроцедуры) Q = _xlWorkBook.Worksheets(1).OLEObjects.Add("Forms.CommandButton.1") ' Q = _xlWorkBook.Worksheets(1).Buttons.add(100, 100, 120, 60) 'Q.onaction = "ЭтаКнига.QWERT" Здесь указывает ошибку With Q .Interior.ColorIndex = 4 .Left = 300 .Top = 0 .Width = 500 .Height = 25 .Object.Caption = "Если Ввод данных завершен! Нажмите здесь" '& vbCrLf & .Object.BackColor = Color.Red .Object.Font.size = 16 End With End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 15:30 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
гиней, попробуйте все-таки почитать ссылку по оформлению сообщений, которую я дал или, если осилить FAQ оказалось так сложно, хотя бы нажать "цитировать" и посмотреть, как это делают другие. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 15:38 |
|
добавление кнопки с событием в лист Excel
|
|||
---|---|---|---|
#18+
гиней , кто Вам сказал, что у объектов ActiveX есть свойство OnAction? Для этих объектов надо событийные процедуры создавать. Но кодом это недоступно, что сводит на нет все Ваши усилия. И тем более кто сказал, что эти элементы считаются лучшими? Microsoft уже давно вообще не рекомендует их использовать. А в прошлом году они выпустили очередное обновление офиса, которое сделало невозможным использовать эти элементы, даже если они были созданы ранее в книге. Они просто не работали. Так что их "лучшесть" у меня под большим сомнением. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2016, 16:08 |
|
|
start [/forum/topic.php?fid=60&fpage=25&tid=2155641]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 150ms |
0 / 0 |