Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / FAQ - Excel / 6 сообщений из 6, страница 1 из 1
28.11.2007, 13:25:47
    #34971585
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ - Excel
В поддержку идеи о FAQ предлагаю всем публиковать здесь качественно оформленные посты по темам, которые, по мнению автора, являются часто задаваемыми вопросами или существенными аспектами, которые могут облегчить или помочь повысить качество разработок.

Также, прошу не обсуждать этот топик, лучше пишите на почту или модератору.

В последствие, возможно, что топик будет переоформлен и предложен в раздел FAQ этого форума.

Чтобы пост был качественным, пожалуйста, соблюдайте правила форума, в том числе оформления, максимально четко, сжато, но полно излагайте суть вопроса, методику решения, возможно, что с несколькими альтернативными вариантами. Также предоставляйте пояснения, почему именно так предлагаете подходить к решению вопроса.

Заранее спасибо всем авторам! :)
...
Рейтинг: 0 / 0
28.11.2007, 17:43:15
    #34972791
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ - Excel
Подключение внешних библиотек
Подключение внешних библиотек существенно расширяет возможности VBA кода. При этом Вы будете использовать качественные, проверенные функциональности для широкого разнообразия задач. Часто использование внешних библиотек позволяет заменить стандартные возможности VB на более гибкие и мощные.

Два способа подключения библиотек

Подключение к нужной библиотеке в меню Tools - References VBA редактора
(этот же способ можно реализовать программно через метод .VBProject.References.AddFromFile ).


Другой способ подключения - создание экземпляра (или подключение к существующему экземпляру) объекта. Например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub test()
Dim xlApp As Object
Dim xlWb As Object

    Set xlApp = GetObject(, "Excel.Application")    '- вариант подключения к открытому уже Excel
    'Set xlApp = CreateObject("Excel.Application")   - вариант подключения, при котором открывается еще одна копия программы Excel
    If xlApp Is Nothing Then Exit Sub
    
    For Each xlWb In xlApp.Workbooks
        MsgBox xlWb.Name
    Next xlWb
    
    Set xlApp = Nothing

End Sub


Код: plaintext
===========================================================================

Первый метод называется ранним связыванием , второй - поздним связыванием .

Достоинства раннего связывания - удобство в написании кода, т.к. редактор подсказывает синтаксис, а также в некоторой быстроте исполнения кода.
Основное достоинство позднего связывания – возможность управления кодом в случае, если требуемой библиотеки нет в системе. Можно, например, попытаться использовать другую. В случае с ранним связыванием, при отсутствии требуемой библиотеки компилятор выдаст ошибку "User-defined type not defined" и потребуется менять код.


Несколько наиболее часто используемых библиотек

Microsoft VBScript Regular Expressions
Библиотека позволяет использовать в проекте регулярные выражения.
Полезные ссылки

Regular-Expressions.info

Google Directory: Regular Expressions

Введение в регулярные выражения



Microsoft Visual Basic for Applications Extensibility
Позволяет программно изменять код VBA проектов (Для работы требуется установить доверительный доступ к VBA проекту: меню Tools - Macro - Security на вкладке [Trusted Publishers] поставить галочку Trust Access to Visual basic Project ).
Полезные ссылки

Programming The VBA Editor



Microsoft ActiveX Data Objects
Доступ к источникам данных.

..\Common Files\Microsoft Shared\OFFICE11\1049\ADO210.CHM - на Вашем ПК

ADO



Microsoft Scripting Runtime

Script Runtime

В этой библиотеке наиболее интересны две функциональности:

FileSystemObject
Позволяет получать информацию о файловой системе компьютера и выполнять различные операции с файлами и каталогами этой системы.

FSO.CHM

Scripting Dictionary
Позволяет создавать гибкие, мощные и удобно используемые коллекции объектов.

Упрощаем работу с помощью объекта Scripting Dictionary
...
Рейтинг: 0 / 0
29.11.2007, 17:01:34
    #34975786
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ - Excel
vbapro Другой способ подключения - создание экземпляра (или подключение к существующему экземпляру) объекта. Например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub test()
Dim xlApp As Object
Dim xlWb As Object

    Set xlApp = GetObject(, "Excel.Application")    '- вариант подключения к открытому уже Excel
    'Set xlApp = CreateObject("Excel.Application")   - вариант подключения, при котором открывается еще одна копия программы Excel
    If xlApp Is Nothing Then Exit Sub
    
    For Each xlWb In xlApp.Workbooks
        MsgBox xlWb.Name
    Next xlWb
    
    Set xlApp = Nothing

End Sub


Этот код только в Экселе сработает, если библиотека Microsoft Excel XX Object Library в другом приложении не подключена?
ЗЫ Вопрос в рамках дополнения к теме библиотек.
...
Рейтинг: 0 / 0
29.11.2007, 18:52:39
    #34976255
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ - Excel
Именно.
Например, у вас (разработчика) Excel2003, а у клиента Excel2007. Если подключите через Refernces, то программа у клиента не будет работать и компилятор выдаст ошибку. Если сделаете как в примере - все будет OK.
...
Рейтинг: 0 / 0
12.12.2007, 21:30:42
    #35005883
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ - Excel
vbapro В поддержку идеи о FAQ предлагаю всем публиковать здесь качественно оформленные посты по темам, которые, по мнению автора, являются часто задаваемыми вопросами или существенными аспектами, которые могут облегчить или помочь повысить качество разработок.

Озадачился вопросом, как sql-команды применить к данным Эксель, "заблудился" в поиске. Было бы очень славно, если бы Вы самые четкие рекомендации по предмету с примерами кода из тем форума здесь привели. Я, к сожалению, в плане ADO и SQL не компетентен.
...
Рейтинг: 0 / 0
13.12.2007, 16:13:52
    #35008038
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ - Excel
кладовщик vbapro В поддержку идеи о FAQ предлагаю всем публиковать здесь качественно оформленные посты по темам, которые, по мнению автора, являются часто задаваемыми вопросами или существенными аспектами, которые могут облегчить или помочь повысить качество разработок.

Озадачился вопросом, как sql-команды применить к данным Эксель, "заблудился" в поиске. Было бы очень славно, если бы Вы самые четкие рекомендации по предмету с примерами кода из тем форума здесь привели. Я, к сожалению, в плане ADO и SQL не компетентен.

На форуме есть профи, которые намного лучше меня в этой теме разбираются, например White Owl , и было бы неплохо, если они нашли возможность изложить что-нибудь по теме.

А пока зреет пост, неплохо почитать вот эту статью с полезными ссылками How To Use ADO with Excel Data from Visual Basic or VBA , которая на многие вопросы даст ответы с примерами.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / FAQ - Excel / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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