Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программно добавить в Excel процедуры? / 16 сообщений из 16, страница 1 из 1
18.08.2005, 12:17:30
    #33222737
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
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
18.08.2005, 12:39:02
    #33222825
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
может лучше с хвоста подойти?
открывать готовый шаблон со всеми заготовками,
наполнять данными, а потом сохранять, как надо?
Или эти процедуры для каждой книги различны?
...
Рейтинг: 0 / 0
18.08.2005, 12:39:49
    #33222830
Программно добавить в Excel процедуры?
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
18.08.2005, 12:49:36
    #33222877
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
Отлично! Только, прошу меня извинить, а какую библиотеку нужно подключить для использования VBComponent?
...
Рейтинг: 0 / 0
18.08.2005, 12:51:48
    #33222889
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
И остается вопрос, как можно программно добавить в проект Excel ссылки на библиотеку Microsoft Access 10.0 Library?
...
Рейтинг: 0 / 0
18.08.2005, 12:57:28
    #33222908
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
еще раз повторюсь
Код: plaintext
1.
2.
3.
4.
может лучше с хвоста подойти? 
открывать готовый шаблон со всеми заготовками, 
наполнять данными, а потом сохранять, как надо? 
Или эти процедуры для каждой книги различны?
...
Рейтинг: 0 / 0
18.08.2005, 12:57:31
    #33222909
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
Leon.Отлично! Только, прошу меня извинить, а какую библиотеку нужно подключить для использования VBComponent? С этим разобрался уже, Microsoft VB 6.0 Extensibility (VBIDE).
...
Рейтинг: 0 / 0
18.08.2005, 13:00:24
    #33222920
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
там же :)
VBIDE.References
и все-таки, о моих вопросах...
...
Рейтинг: 0 / 0
18.08.2005, 13:00:31
    #33222921
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
Sinnerможет лучше с хвоста подойти?
открывать готовый шаблон со всеми заготовками,
наполнять данными, а потом сохранять, как надо?
Или эти процедуры для каждой книги различны?
Может быть, это действительно лучше. Просто не хотелось бы привязываться к шаблону -- это дополнительные издержки на поддержание комплекса в целом, а у меня даже пакет инсталляции пока не предусматривается.

И остается вопрос, как можно программно добавить в проект Excel ссылки на библиотеку Microsoft Access 10.0 Library?
...
Рейтинг: 0 / 0
18.08.2005, 13:08:07
    #33222957
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
Код: plaintext
1.
там же :)
VBIDE.References
я же уже написал, почитай про енто свойство
...
Рейтинг: 0 / 0
18.08.2005, 13:16:21
    #33222988
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
Да, спасибо, я уже прочитал про 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
18.08.2005, 13:23:01
    #33223011
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно добавить в Excel процедуры?
Если вместо "Dim vbc As VBIDE.VBComponent" использовать позднее связывание, то работает. В чем тут может быть дело? Или плюнуть на это и пусть "делай, как делается"?
...
Рейтинг: 0 / 0
18.08.2005, 14:30:36
    #33223197
Программно добавить в Excel процедуры?
Что-то не пойму, а почему

Код: plaintext
Dim vbc As VBComponent

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

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

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

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


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