powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программно добавить в Excel процедуры?
16 сообщений из 16, страница 1 из 1
Программно добавить в Excel процедуры?
    #33222737
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access 2002, Excel 2002

Я программно создаю из Access книгу в Excel, вношу туда данные, форматирую, добавляю элементы управления.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Dim appExcel        As Excel.Application
    Dim wbk             As Excel.Workbook
    Dim wks             As Excel.Worksheet
    
    Set appExcel = New Excel.Application
    Set wbk = appExcel.Workbooks.Add
    Set wks = wbk.Worksheets.Item( 1 )

    .....         ....................

    Dim btn            As Excel.Shape
    Set btn = wks.Shapes.AddFormControl(xlButtonControl,  150 ,  10 ,  50 ,  15 )
    
    btn.Name = "cmdExcelButton"
    btn.OnAction = "ShapeClick"

ВОПРОС:
Каким образом можно программно добавить модуль в созданный объект Excel? (модуль -- пара объявлений переменных модуля, один обработчик, пара функций) Возможно ли программно добавить в проект Excel ссылки на библиотеку Microsoft Access 10.0 Library?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222825
Фотография Sinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может лучше с хвоста подойти?
открывать готовый шаблон со всеми заготовками,
наполнять данными, а потом сохранять, как надо?
Или эти процедуры для каждой книги различны?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222830
Leon.ВОПРОС:
Каким образом можно программно добавить модуль в созданный объект Excel? (модуль -- пара объявлений переменных модуля, один обработчик, пара функций)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    Dim appExcel As Excel.Application
    Dim wbk As Excel.Workbook
    Dim wks As Excel.Worksheet
    Dim vbc As VBComponent
    Dim idx As Long
    
    Set appExcel = New Excel.Application
    Set wbk = appExcel.Workbooks.Add
    Set wks = wbk.Worksheets( 1 )
    
    Set vbc = wbk.VBProject.VBComponents.Add(vbext_ct_StdModule)
    
    With vbc.CodeModule
        idx = .CountOfLines +  1 
        .InsertLines idx, "Sub Test()"
        idx = idx +  1 
        .InsertLines idx, "Msgbox ""Test!"", vbInformation"
        idx = idx +  1 
        .InsertLines idx, "End Sub"
    End With
           
    appExcel.Visible = True
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222877
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлично! Только, прошу меня извинить, а какую библиотеку нужно подключить для использования VBComponent?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222889
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И остается вопрос, как можно программно добавить в проект Excel ссылки на библиотеку Microsoft Access 10.0 Library?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222908
Фотография Sinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз повторюсь
Код: plaintext
1.
2.
3.
4.
может лучше с хвоста подойти? 
открывать готовый шаблон со всеми заготовками, 
наполнять данными, а потом сохранять, как надо? 
Или эти процедуры для каждой книги различны?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222909
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leon.Отлично! Только, прошу меня извинить, а какую библиотеку нужно подключить для использования VBComponent? С этим разобрался уже, Microsoft VB 6.0 Extensibility (VBIDE).
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222920
Фотография Sinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там же :)
VBIDE.References
и все-таки, о моих вопросах...
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222921
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sinnerможет лучше с хвоста подойти?
открывать готовый шаблон со всеми заготовками,
наполнять данными, а потом сохранять, как надо?
Или эти процедуры для каждой книги различны?
Может быть, это действительно лучше. Просто не хотелось бы привязываться к шаблону -- это дополнительные издержки на поддержание комплекса в целом, а у меня даже пакет инсталляции пока не предусматривается.

И остается вопрос, как можно программно добавить в проект Excel ссылки на библиотеку Microsoft Access 10.0 Library?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222957
Фотография Sinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
там же :)
VBIDE.References
я же уже написал, почитай про енто свойство
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33222988
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, спасибо, я уже прочитал про References, это то что нужно. У меня возникла проблема с
Код: plaintext
Set vbc = wbk.VBProject.VBComponents.Add(vbext_ct_StdModule)
"Type Mismatch".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    Dim appExcel        As Excel.Application
    Dim wbk             As Excel.Workbook
    Dim wks             As Excel.Worksheet
    Dim vbc             As VBIDE.VBComponent
    
    Set appExcel = New Excel.Application
    appExcel.SheetsInNewWorkbook =  1 
    Set wbk = appExcel.Workbooks.Add
    
    Set vbc = wbk.VBProject.VBComponents.Add(vbext_ct_StdModule)  <----- здесь
    With vbc.CodeModule
        idx = .CountOfLines +  1 
        .InsertLines idx, "Sub ShapeClick()"
        idx = idx +  1 
        .InsertLines idx, "Msgbox ""Test!"", vbInformation"
        idx = idx +  1 
        .InsertLines idx, "End Sub"
    End With
Не понимаю.
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33223011
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вместо "Dim vbc As VBIDE.VBComponent" использовать позднее связывание, то работает. В чем тут может быть дело? Или плюнуть на это и пусть "делай, как делается"?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33223197
Что-то не пойму, а почему

Код: plaintext
Dim vbc As VBComponent

не хочешь написать?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33223342
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делал и такой вариант
Код: plaintext
1.
Dim vbc As VBComponent
Так у меня тоже получается Type Mismatch, как показано в этом посте
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33223408
Странно, что с ошибкой валится.

Библиотеку Visual Basic for Applications Extensibility подключил?
...
Рейтинг: 0 / 0
Программно добавить в Excel процедуры?
    #33223461
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно! Подключил Microsoft Visual Basic for Applications Extensibility 5.3 и все заработало.

А я то, по незнанию, подключал Microsoft Visual Basic 6.0 Extensibility :-/ У меня то проект Access, а не VB, вот я и перепутал!

Коллеги, спасибо! Все сделал -- и связь Access+Excel, и ссылки, и процедуры в Excel добавляются.
Все с вашей помощью. Еще раз убеждаюсь в мощи и профессионализме нашего SQL.RU :-)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программно добавить в Excel процедуры?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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