Excel 2016 для Mac Word 2016 для Mac PowerPoint для Mac Excel для Mac 2011 Word для Mac 2011 PowerPoint для Mac 2011 Еще…Меньше
Примечание:
Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим
ссылку на оригинал (на английском языке)
.
В своем коде можно задействовать другие объекты приложения, задав ссылки на библиотеку объектов этого приложения.
Добавление объекта
На вкладке «Разработчик» откройте окно проекта Visual Basic. Увидеть вкладки «разработчик» отображается ниже, если она еще не открыта.
-
В меню Сервис выберите пункт Ссылки.
-
В разделе Доступные ссылки установите флажок для библиотеки объектов, которую требуется задействовать в вашем проекте Visual Basic.
Примечание: Чтобы ускорить компиляцию, снимите флажки для библиотек объектов, которые не будут использоваться в проекте.
-
Чтобы задать порядок доступа к библиотекам объектов, в разделе Доступные ссылки выберите любую библиотеку и переместите ее вверх или вниз с помощью кнопок приоритета.
-
Чтобы добавить в раздел Доступные ссылки другую библиотеку, нажмите кнопку Обзор и укажите путь к необходимому файлу.
-
-
На верхней панели выберите Excel > настройки > панель инструментов и ленты.
-
В разделе Настройка ленты выберите Основные вкладки и установите флажок Разработчик.
-
Нажмите кнопку Сохранить и закройте Параметров Excel.
Нужна дополнительная помощь?
Перейти к содержимому
В VBA есть много интересных библиотек позволяющих работать с объектом FSO, словарями, регулярными выражениями, объектами MS Office, а также много другое.
Можно и обойтись без их подключения и использовать конструкцию CreateObject(«»), но есть два маленьких нюанса
- Вы теряете чуть-чуть в производительности. Я, если честно, не до конца понимаю как так, но факт есть факт. С подключенной библиотекой, на коротких примерах ускорение в 2 раза — с 0,1 сек до 0,05 сек
-
Вы теряете подсказки в среде VBE. Для кода, который вы отдали в использование — это нормально, но для себя любимых включение может быть лишним действием (опять же вы можете в какой-то момент забыть какую библиотеку включали)
Итак, проблематика ясна. Как бороться? В три этапа.
Первый этап — макросам должен быть предоставлен доступ к объектной модели VBA. Само собой вы при этом берете на себя риски — ведь при этом макросы могут удалить все и вся.
Файл ->
Параметры ->
Центр Управления Безопасностью ->
Параметры центра управления безопасностью ->
Параметры макросов ->
Включить галочку «Предоставлять доступ к объектной модели проектов VBA»
Второй этап — посмотреть GUID код соответствующей библиотеки, которую будете проверять/включать программным способом. Для этого в VBE перейдите в меню и включите галочку напротив библиотеки.
Tools -> References
Ну и третий этап — сам макрос. Верхняя часть выводит в окно Immediate Window все библиотеки, проверяет включена ли библиотека. Ну а строчка .AddFromGuid производит подключение
Sub ref_check() Dim i As Integer With ThisWorkbook.VBProject.References For i = 1 To .Count Debug.Print .item(i).GUID, .item(i).Description, .item(i).Major, .item(i).Minor If .item(i).GUID = "{420B2830-E718-11CF-893D-00A0C9054228}" Then Exit Sub End If Next i 'Microsoft scripting .AddFromGuid "{420B2830-E718-11CF-893D-00A0C9054228}", 1, 0 End With End Sub
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .
В своем коде можно задействовать другие объекты приложения, задав ссылки на библиотеку объектов этого приложения.
Добавление объекта
На вкладке «Разработчик» откройте окно проекта Visual Basic. Увидеть вкладки «разработчик» отображается ниже, если она еще не открыта.
В меню Сервис выберите пункт Ссылки.
В разделе Доступные ссылки установите флажок для библиотеки объектов, которую требуется задействовать в вашем проекте Visual Basic.
Примечание: Чтобы ускорить компиляцию, снимите флажки для библиотек объектов, которые не будут использоваться в проекте.
Чтобы задать порядок доступа к библиотекам объектов, в разделе Доступные ссылки выберите любую библиотеку и переместите ее вверх или вниз с помощью кнопок приоритета.
Чтобы добавить в раздел Доступные ссылки другую библиотеку, нажмите кнопку Обзор и укажите путь к необходимому файлу.
На верхней панели выберите Excel > настройки > панель инструментов и ленты.
В разделе Настройка ленты выберите Основные вкладки и установите флажок Разработчик.
Нажмите кнопку Сохранить и закройте Параметров Excel.
Если как часть приложения Visual Basic используются объекты в других приложениях, может возникнуть необходимость в установке ссылки на библиотеки объектов этих приложений. If you use the objects in other applications as part of your Visual Basic application, you may want to establish a reference to the object libraries of those applications. Прежде чем это можно будет сделать, следует убедиться, что приложение предоставляет библиотеку объектов. Before you can do that, you must first be sure that the application provides an object library.
Чтобы узнать, предоставляет ли приложение библиотеку объектов To see if an application provides an object library
В меню Сервис выберите пункт Ссылки, чтобы открыть диалоговое окно Ссылки. From the Tools menu, choose References to display the References dialog box.
В диалоговом окне Ссылки отображаются все библиотеки объектов, зарегистрированные в операционной системе. The References dialog box shows all object libraries registered with the operating system. Прокрутите список для приложения, на библиотеку объектов которого хотите сослаться. Scroll through the list for the application whose object library you want to reference. Если приложение отсутствует в списке, можно воспользоваться кнопкой Обзор, чтобы выполнить поиск библиотек объектов (*.olb и *.tlb) или исполняемых файлов (*.exe и *.dll в Windows). If the application isn’t listed, you can use the Browse button to search for object libraries (*.olb and *.tlb) or executable files (*.exe and *.dll on Windows). В проекте используются ссылки, флажки которых установлены; ссылки без установленных флажков не используются, но могут быть добавлены. References whose check boxes are selected are used by your project; those that aren’t selected are not used, but can be added.
Чтобы добавить в проект ссылку на библиотеку объектов To add an object library reference to your project
Выберите ссылку на библиотеку объектов в поле Доступные ссылки в диалоговом окне Ссылки и нажмите кнопку ОК. Select the object library reference in the Available References box in the References dialog box and choose OK. Теперь проект Visual Basic содержит ссылку на библиотеку объектов приложения. Your Visual Basic project now has a reference to the application’s object library. Если открыть обозреватель объектов (нажав клавишу F2) и выбрать библиотеку приложения, в ней отобразятся объекты, предоставляемые выбранной библиотекой объектов, а также методы и свойства каждого объекта. If you open the Object Browser (press F2) and select the application’s library, it displays the objects provided by the selected object library, as well as each object’s methods and properties.
В обозревателе объектов можно выбрать класс в поле Классы и выбрать метод или свойство в поле Компоненты. In the Object Browser, you can select a class in the Classes box and select a method or property in the Members box. Для добавления синтаксиса в программный код используйте команды копирования и вставки. Use copy and paste to add the syntax to your code.
См. также See also
Поддержка и обратная связь Support and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Экономия 5 минут в час за счет более продуктивной работы дает за год экономию в 4 рабочие недели
Как подключить библиотеку в VBA?
В VBA есть много интересных библиотек позволяющих работать с объектом FSO, словарями, регулярными выражениями, объектами MS Office, а также много другое.
Можно и обойтись без их подключения и использовать конструкцию CreateObject(«»), но есть два маленьких нюанса
-
Вы теряете чуть-чуть в производительности. Я, если честно, не до конца понимаю как так, но факт есть факт. С подключенной библиотекой, на коротких примерах ускорение в 2 раза — с 0,1 сек до 0,05 сек
Вы теряете подсказки в среде VBE. Для кода, который вы отдали в использование — это нормально, но для себя любимых включение может быть лишним действием (опять же вы можете в какой-то момент забыть какую библиотеку включали)
Итак, проблематика ясна. Как бороться? В три этапа.
Первый этап — макросам должен быть предоставлен доступ к объектной модели VBA. Само собой вы при этом берете на себя риски — ведь при этом макросы могут удалить все и вся.
Файл ->
Параметры ->
Центр Управления Безопасностью ->
Параметры центра управления безопасностью ->
Параметры макросов ->
Включить галочку «Предоставлять доступ к объектной модели проектов VBA»
Второй этап — посмотреть GUID код соответствующей библиотеки, которую будете проверять/включать программным способом. Для этого в VBE перейдите в меню и включите галочку напротив библиотеки.
Ну и третий этап — сам макрос. Верхняя часть выводит в окно Immediate Window все библиотеки, проверяет включена ли библиотека. Ну а строчка .AddFromGuid производит подключение
Libraries add pre-defined code structures (such as functions, subroutines among others) in a simple and easy way.
In the VBA context, a library usually allows access to new objects and functions.
Standard Libraries
Libraries that are enabled by default when opening Excel:
- Excel – This is a collection of classes available in Excel, allowing you to work with worksheets objects E.g. workbooks, spreadsheets, ranges, etc…
- Office – It is a generic class collection for all Office suite applications, allowing you to work with Office objects in general E.g. command bar, help, etc…
- stdole – It is the standard collection of the OLE class, it allows exchange of information between applications
- VBA – It is the class collection that allows functions to be used E.g. MsgBox, InputBox, string functions, etc…
- VBAProject – It is the local collection for the active workbook, (E.g. spreadsheets, users, etc…)
Class: is what defines the structure of a given object (E.g. for class Range we have objects like Range(«A1»), Range(«C2:B5»), and so on).
Enabling Libraries
To access, enable and disable libraries in VBA:
- In Excel, open the VBE (+)
- On the Menu Bar, click Tools
- Select References… (the References – VBAProject dialog box will be displayed)
- Select the desired libraries
- Click OK
To add a library that is not in the list, use the button and select the file of the new library.
Enabling additional libraries allows you to develop codes that communicate with other applications and processes. E.g. Word, Outlook, DAO (Data Access Objects), ADOdb (Active Data Objects database), etc…
When we refer to a library in the code but forget to enable it, the following error message is displayed:
Object Browser
The Object Browser allows you to view the list of all the different objects, methods, and properties of the enabled libraries.
To search the libraries:
- Click on the Object Browser icon on the toolbar ()
- Select the library you want to view on the dropdown menu
- Navigate the library
When in doubt, the Microsoft Help button () can elucidate the utility of the selected element.
VBA Early Binding vs Late Binding
You can use structures from a library without enabling it. This procedure is called Late Binding.
Dim OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Usually for the Late Binding a variable is declared as an object and later associated with CreateObject.
When we enable a library to access its structures we are performing what is called Early Binding.
Dim OutApp As New Outlook.Application
In the example case the Outlook library was enabled ().
Early & Late Binding Differences
Early: From the point of view of code development and performance time, Early Binding is more suitable because it allows you to use Excel intellisense ( + ) as well as the library object browser.
Late: Regarding compatibility errors, mainly due to the use of different versions of Excel (which changes the version of the libraries), Late Binding is more indicated.
Intellisense: is an aid, mainly to autocomplete the code, with useful information ( + ).
So, to gain practice with the libraries, try to write the code with Early Binding and later change it into Late Binding.
SuperExcelVBA.com is learning website. Examples might be simplified to improve reading and basic understanding. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. All Rights Reserved.
Excel ® is a registered trademark of the Microsoft Corporation.
© 2023 SuperExcelVBA | ABOUT
Вот, что я нашел по твоему контролу в реестре и редакторе VBA:
C:WindowsSystem32MSCOMCT2.OCX
Microsoft Windows Common Controls-2 6.0 (SP4)
Microsoft Date and Time Picker Control 6.0 (SP4)
ветка контрола:
HKEY_CLASSES_ROOTCLSID{20DD1B9E-87C4-11D1-8BE3-0000F8754DA1}=Microsoft Date and Time Picker Control 6.0 (SP4)
независимый от версии ProgID
HKEY_CLASSES_ROOTCLSID{20DD1B9E-87C4-11D1-8BE3-0000F8754DA1}VersionIndependentProgID=MSComCtl2.D TPicker
ссылка на библиотеку:
HKEY_CLASSES_ROOTCLSID{20DD1B9E-87C4-11D1-8BE3-0000F8754DA1}TypeLib={86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}
ветка библиотеки:
HKEY_CLASSES_ROOTTYPELIB{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}
Но это так, лирика, к тому же относящаяся к моей версии операционной системы и к наличию в системе обновлений.
Тебе надо проделать примерно то же самое у себя, взять файл MSCOMCT2.OCX, копировать ее в системную папку (в разных системах ее расположение может различаться), запустить regsvr32
Visual Basic | ||
|
После этого библиотека будет доступна и все связи, если ты их не разорвешь, будут по прежнему доступны.