Excel 2016 для Mac Word 2016 для Mac PowerPoint для Mac Excel для Mac 2011 Word для Mac 2011 PowerPoint для Mac 2011 Еще…Меньше
Примечание:
Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим
ссылку на оригинал (на английском языке)
.
В своем коде можно задействовать другие объекты приложения, задав ссылки на библиотеку объектов этого приложения.
Добавление объекта
На вкладке «Разработчик» откройте окно проекта Visual Basic. Увидеть вкладки «разработчик» отображается ниже, если она еще не открыта.
-
В меню Сервис выберите пункт Ссылки.
-
В разделе Доступные ссылки установите флажок для библиотеки объектов, которую требуется задействовать в вашем проекте Visual Basic.
Примечание: Чтобы ускорить компиляцию, снимите флажки для библиотек объектов, которые не будут использоваться в проекте.
-
Чтобы задать порядок доступа к библиотекам объектов, в разделе Доступные ссылки выберите любую библиотеку и переместите ее вверх или вниз с помощью кнопок приоритета.
-
Чтобы добавить в раздел Доступные ссылки другую библиотеку, нажмите кнопку Обзор и укажите путь к необходимому файлу.
-
-
На верхней панели выберите Excel > настройки > панель инструментов и ленты.
-
В разделе Настройка ленты выберите Основные вкладки и установите флажок Разработчик.
-
Нажмите кнопку Сохранить и закройте Параметров Excel.
Нужна дополнительная помощь?
Содержание
- Доступ к библиотекам DLL в Excel
- Вызов функций и команд DLL из VBA
- Типы аргументов в C/C++ и VBA
- Аргументы строк и переменных
- Вызов функций DLL непосредственно с листа
- Вызов команд DLL непосредственно из Excel
- Память DLL и многочисленные экземпляры DLL
Доступ к библиотекам DLL в Excel
Относится к: Excel 2013 | Office 2013 | Visual Studio
Вы можете получить доступ к функции или команде DLL в Microsoft Excel несколькими способами:
с помощью модуля кода Microsoft Visual Basic для приложений (VBA), в котором функция или команда была сделана доступной с помощью выражения Declare;
через лист макросов XLM, используя функции CALL или REGISTER;
непосредственно с листа или из настроенного элемента в пользовательском интерфейсе.
В этой документации не рассматриваются функции XLM. Рекомендуется использовать любой из двух остальных подходов.
Для доступа к функции или команде непосредственно с листа или из настроенного элемента в пользовательском интерфейсе необходимо сначала зарегистрировать ее в Excel. Сведения о регистрации команд и функций см. в статье Доступ к коду XLL в Excel.
Вызов функций и команд DLL из VBA
Вы можете получать доступ к функциям и командам DLL в VBA с помощью оператора Declare. В случае этого оператора предусмотрен один синтаксис для команд, а другой — для функций.
Синтаксис 1: команды
Синтаксис 2: функции
Необязательные ключевые слова Public и Private определяют область импортированной функции (весь проект Visual Basic и модуль Visual Basic соответственно). Имя — это имя, которое вы хотите использовать в коде VBA. Если оно отличается от имени в библиотеке DLL, необходимо использовать указатель Alias «aliasname» и предоставить имя функции, экспортируемое библиотекой DLL. Для доступа к функции DLL с помощью ссылки на порядковый номер DLL необходимо предоставить псевдоним, который является порядковым номером с префиксом #.
Команды должны возвратить void. Функции должны возвращать типы, которые VBA может распознавать с помощью ByVal. Это означает, что некоторые типы легче возвращаются за счет изменения имеющихся аргументов (строк, массивов, определяемых пользователем типов и объектов).
VBA не может проверить совпадение списка аргументов и возвращаемого значения в модуле Visual Basic со значениями, закодированными в DLL. Это необходимо внимательно проверить самостоятельно, поскольку ошибка может привести к сбою Excel.
Если аргументы команды или функции не передаются с помощью ссылки или указателя, они должны стоять после ключевого слова ByVal в объявлении arglist. Когда функция C/C++ принимает аргументы указателя или функция C++ принимает аргументы ссылки, они должны передаваться ByRef. Ключевое слово ByRef можно пропустить в списке аргументов, так как оно используется по умолчанию в VBA.
Типы аргументов в C/C++ и VBA
Следует помнить об указанных ниже фактах при сравнении объявлений типов аргументов в C/C++ и VBA.
Тип String в VBA передается как указатель на структуру BSTR байтовых строк в режиме ByVal и как указатель на указатель в режиме ByRef.
Тип Variant в VBA, содержащий строку, передается как указатель на структуру BSTR строк Юникода из двухбайтовых знаков при передаче в режиме ByVal и как указатель на указатель в режиме ByRef.
Integer VBA — это 16-битный тип, эквивалентный signed short в C/C++.
Long VBA — это 32-битный тип, эквивалентный signed int в C/C++.
VBA и C/C++ допускают определяемые пользователем типы данных (применяются операторы Type и struct соответственно).
VBA и C/C++ поддерживают тип данных Variant, заданный для C/C++ в файлах заголовка Windows OLE/COM как VARIANT.
Массивы VBA — это объекты OLE SafeArrays, определенные для C/C++ в файлах заголовка Windows OLE/COM как SAFEARRAY.
Тип данных Currency в VBA передается как структура типа CY, определенная в файле заголовка Windows wtypes.h, в режиме ByVal и как указатель на него в режиме ByRef.
В VBA элементы данных в определяемых пользователем типах данных упаковываются с учетом 4-байтовых границ, тогда как в Visual Studio по умолчанию они упаковываются с учетом 8-байтовых границ. Поэтому необходимо заключить определение структуры C/C++ в блок #pragma pack(4) … #pragma pack() , чтобы избежать несовпадения элементов.
Ниже приведен пример определений эквивалентных пользовательских типов.
В некоторых случаях VBA поддерживает более широкий диапазон значений, чем Excel. Тип данных Double в VBA соответствует требованиям IEEE и поддерживает субнормальные числа, которые в настоящее время на листе округляются до нуля. Тип Date в VBA представляет даты от 1 января 0100 года, которые можно задать с помощью отрицательных сериализованных значений дат. Excel поддерживает сериализованные даты не меньше нуля. Тип Currency в VBA (64-битное масштабированное целое число) позволяет добиться точности, не поддерживаемой 8-байтовыми значениями Double, и поэтому не имеет совпадений на листе.
Excel передает только значения Variant указанных ниже типов в определяемую пользователем функцию VBA.
Тип данных VBA | Битовые флаги типа Variant C/C++ | Описание |
---|---|---|
Double | VT_R8 | |
Boolean | VT_BOOL | |
Date | VT_DATE | |
String | VT_BSTR | Строка байтов OLE Bstr |
Диапазон | VT_DISPATCH | Ссылки на ячейку и диапазон |
Переменная, содержащая массив | VT_VARIANT VT_ARRAY | Литеральные массивы |
Ccy | VT_CY | 64-битное целое число, масштабированное для достижения точности 4 знака после запятой. |
Переменная, содержащая ошибку | VT_ERROR | |
VT_EMPTY | Пустые ячейки или пропущенные аргументы |
Вы можете проверить тип переданного значения Variant в VBA с помощью VarType, если функция не возвращает тип значений диапазона при вызове с использованием ссылок. Чтобы определить, является ли Variant объектом ссылки Range, используйте функцию IsObject.
В VBA можно создавать Variant, содержащие массивы переменных, назначая свойство ValueRange для Variant. Ячейки в исходном диапазоне, отформатированные с использованием стандартного денежного формата для действующих региональных параметров, преобразуются в элементы массива типа Currency. Ячейки, отформатированные как даты, преобразуются в элементы массива типа Date. Ячейки, содержащие строки, преобразуются в Variant BSTR с расширенными символами. Ячейки, содержащие ошибки, преобразуются в Variant типа VT_ERROR. Ячейки, содержащие значения True или False типа Boolean, преобразуются в объекты Variants типа VT_BOOL.
В Variant значение True сохраняется как -1, а False — как 0. Числа, не отформатированные как даты или денежные суммы, преобразуются в Variant типа VT_R8.
Аргументы строк и переменных
Excel поддерживает внутреннюю работу со строками Юникода с расширенными символами. Когда определяемая пользователем функция в VBA объявлена как принимающая аргумент String, Excel преобразует передаваемую строку в байтовую строку в соответствии с языковым стандартом. Чтобы функции передавалась строка Юникода, определяемая пользователем функция в VBA должна принимать Variant вместо аргумента String. При выполнении этого условия функция DLL сможет принимать строку Variant BSTR с расширенными символами VBA.
Чтобы из DLL возвращались строки Юникода в VBA, следует изменить имеющийся аргумент строки Variant. Для этого следует объявить функцию DLL как принимающую указатель на Variant в коде C/C++, а также объявить аргумент в коде VBA как ByRef varg As Variant . Память предыдущей строки следует освободить, а значение новой строки, созданное с использованием строки OLE Bstr, работает только в DLL.
Чтобы байтовая строка возвращалась в VBA из DLL, следует изменить имеющийся аргумент BSTR байтовой строки. Для этого следует объявить функцию DLL как принимающую указатель на BSTR в коде C/C++, а также объявить аргумент в коде VBA как ByRef varg As String.
Чтобы избежать проблем, связанных с памятью, необходимо обеспечить обработку только строк, которые передаются этими способами из VBA, используя функции строки OLE BSTR. Например, необходимо обеспечить вызов SysFreeString для освобождения памяти перед перезаписью переданной строки, а также SysAllocStringByteLen или SysAllocStringLen, чтобы назначить место для новой строки.
Вы можете обеспечить создание сообщений об ошибках на листе Excel как Variant в VBA при помощи функции CVerr с аргументами, как показано в приведенной ниже таблице. Ошибки на листе также могут быть возвращены в VBA из DLL при помощи Variant типа VT_ERROR, а также с указанными ниже значениями в поле ulVal.
Ошибка | Значение Variant ulVal | Аргумент CVerr |
---|---|---|
#NULL! | 2148141008 | 2000 |
#ДЕЛ/0! | 2148141015 | 2007 |
#ЗНАЧ! | 2148141023 | 2015 |
#ССЫЛКА! | 2148141031 | 2023 |
#ИМЯ? | 2148141037 | 2029 |
#ЧИСЛО! | 2148141044 | 2036 |
#Н/Д | 2148141050 | 2042 |
Обратите внимание на то, что значение Variant ulVal эквивалентно значению аргумента CVerr с шестнадцатеричным значением x800A0000.
Вызов функций DLL непосредственно с листа
Вы не сможете получить доступ к функциям DLL Win32 с листа, если не используете, к примеру, интерфейсы VBA или XLM либо не сообщите Excel заранее о функции, ее аргументах и типе возвращаемого значения. Этот процесс называется регистрацией.
Ниже приведены способы, которыми можно получить доступ к функциям DLL на листе.
Объявите функцию в VBA, как показано выше, и получите доступ к ней через пользовательскую функцию VBA.
Сначала обеспечьте вызов функции DLL с помощью CALL на листе макросов XLM, а затем — доступ к ней с помощью определяемой пользователем функции XLM.
Используйте команду XLM или VBA, чтобы вызвать функцию XLM REGISTER, которая предоставляет сведения, необходимые Excel для опознания функции при ее вводе в ячейке листа.
Преобразуйте DLL в XLL и зарегистрируйте функцию с помощью функции xlfRegister C API после активации XLL.
Четвертый подход изолированный: код, регистрирующий функции, и код функций хранятся в одном объекте кода. Изменение надстройки не включает изменение листа XLM или модуля кода VBA. Чтобы сделать это с широкими возможностями управления, оставаясь в рамках возможностей API C, необходимо преобразовать DLL в XLL и загрузить получившуюся надстройку с помощью диспетчера настроек. Это позволяет Excel вызывать функцию, предоставленную библиотекой DLL, при загрузке или активации надстройки, из которой затем можно зарегистрировать все функции, которые содержит XLL, и выполнять другие задачи инициализации DLL.
Вызов команд DLL непосредственно из Excel
Команды DLL Win32 недоступны напрямую из диалоговых окон и меню Excel без интерфейса, например VBA, или без предварительной регистрации команд.
Получать доступ к командам DLL можно следующими способами:
Объявите команду в VBA так, как описано выше, и получите к ней доступ с помощью макроса VBA.
Сначала обеспечьте вызов команды DLL с помощью CALL на листе макросов XLM, а затем — доступ к ней с помощью макроса XLM.
Используйте команду XLM или VBA, чтобы вызвать функцию XLM REGISTER, которая предоставляет сведения, необходимые Excel для опознания команды при ее вводе в диалоговом окне, которое запрашивает имя команды макроса.
Преобразуйте DLL в XLL и зарегистрируйте команду с помощью функции xlfRegister C API.
Как упоминалось ранее в контексте функций DLL, четвертый подход является самым изолированным, так как код регистрации хранится наряду с кодом команд. Для этого необходимо преобразовать DLL в XLL и загрузить получившуюся надстройку с помощью диспетчера надстроек. Регистрация команд таким способом также позволяет присоединить команду к элементу пользовательского интерфейса, например пользовательскому меню, или настроить перехват события с вызовом команды по нажатию определенной клавиши или другому событию.
Приложение Excel обрабатывает все команды XLL, зарегистрированные в нем, как имеющие такой вид:
Excel игнорирует возвращаемое значение, если оно не было вызвано с листа макросов XLM. Если оно было вызвано так, возвращаемое значение преобразуется в TRUE или FALSE. Поэтому следует обеспечить возвращение 1 при успешном выполнении команды и 0 при ошибке или отмене команды.
Память DLL и многочисленные экземпляры DLL
Когда приложение загружает DLL, исполняемый код DLL загружается в глобальную кучу для выполнения, а для его структур данных назначается место в глобальной куче. Windows использует сопоставление памяти, чтобы эти области памяти отображались, как в процессе приложения. Таким образом приложение может получать к ним доступ.
Если второе приложение загружает эту библиотеку DLL, Windows не создает дополнительную копию исполняемого кода DLL, так как эта память доступна только для чтения. Windows сопоставляет память исполняемого кода DLL с процессами обоих приложений. Но при этом Windows выделяет другое место для частной копии структур данных DLL и сопоставляет эту копию только со вторым процессом. Благодаря этому одно приложение не может конфликтовать с данными DLL другого.
Это означает, что разработчикам DLL не следует беспокоиться, что несколько приложений (или несколько экземпляров одного приложения) будут получать доступ к статическим и глобальным переменным и структурам данных. Каждый экземпляр всех приложений получает собственную копию данных DLL.
Разработчикам DLL следует позаботиться о том, чтобы один и тот же экземпляр приложения не вызывал DLL много раз из разных потоков, так как это может привести к состязанию за данные этого экземпляра. Дополнительные сведения см. в статье Управление памятью в Excel.
Источник
Как использовать Личную Книгу Макросов
Если вы еще не знакомы с макросами в Excel, то я вам даже немного завидую. Ощущение всемогущества и осознание того, что ваш Microsoft Excel можно прокачивать почти до бесконечности, которые придут к вам после знакомства с макросами — приятные чувства.
Однако, эта статья для тех, кто уже «познал мощь» и начал использовать макросы (чужие или написанные самостоятельно — не важно) в своей повседневной работе.
Макрос — это код (несколько строк) на языке Visual Basic, которые заставляют Excel сделать то, что вам нужно: обработать данные, сформировать отчет, скопипастить много однообразных таблиц и т.п. Вопрос — где эти несколько строк кода хранить? Ведь от того, где макрос хранится будет потом зависеть где он сможет (или не сможет) работать.
Если макрос решает небольшую локальную проблему в отдельно взятом файле (например обрабатывает внесенные в конкретный отчет данные особым образом), то логично хранить код внутри этого же файла. Без вопросов.
А если макрос должен быть относительно универсален и нужен в любой книге Excel — как, например, макрос для конвертирования формул в значения? Не копировать же его код на Visual Basic каждый раз в каждую книгу? Кроме того, рано или поздно, почти любой пользователь приходит к мысли, что неплохо было бы сложить все макросы в одну коробку, т.е. иметь их всегда под рукой. И может быть даже запускать не вручную, а сочетаниями клавиш? И вот тут может здорово помочь Личная Книга Макросов (Personal Macro Workbook).
Как создать Личную Книгу Макросов
На самом деле, Личная Книга Макросов (ЛКМ) — это обычный файл Excel в формате двоичной книги (Personal.xlsb), который автоматически в скрытом режиме открывается одновременно с Microsoft Excel. Т.е. когда вы просто запускаете Excel или открываете любой файл с диска, на самом деле открываются два файла — ваш и Personal.xlsb, но второго мы не видим. Таким образом все макросы, которые хранятся в ЛКМ оказываются доступы для запуска в любой момент, пока открыт Excel.
Если вы еще ни разу не пользовались ЛКМ, то изначально файл Personal.xlsb не существует. Самый легкий способ его создать — это записать рекордером какой-нибудь ненужный бессмысленный макрос, но указать в качестве места для его хранения Личную Книгу — тогда Excel будет вынужден автоматически ее для вас создать. Для этого:
- Откройте вкладку Разработчик (Developer). Если вкладки Разработчик не видно, то ее можно включить в настройках через Файл — Параметры — Настройка ленты (Home — Options — Customize the Ribbon).
- На вкладке Разработчик нажмите кнопку Запись макроса (Record Macro). В открывшемся окне выберите Личную книгу макросов (Personal Macro Workbook) как место для хранения записанного кода и нажмите OK:
- Остановите запись кнопкой Остановить запись (Stop Recording) на вкладке Разработчик (Developer)
Проверить результат можно, нажав на кнопку Visual Basic там же на вкладке Разработчик — в открывшемся окне редактора в левом верхнем углу на панели Project — VBA Project должен появиться наш файл PERSONAL.XLSB. Его ветку которого можно развернуть плюсиком слева, добравшись до Module1, где и хранится код только что записанного нами бессмысленного макроса:
Поздравляю, вы только что создали себе Личную Книгу Макросов! Только не забудьте нажать на кнопку сохранения с дискеткой в левом верхнем углу на панели инструментов.
Как использовать Личную Книгу Макросов
Дальше все просто. Любой нужный вам макрос (т.е. кусок кода, начинающийся на Sub и заканчивающийся End Sub) можно смело копировать и вставлять либо в Module1, либо в отдельный модуль, добавив его предварительно через меню Insert — Module. Хранить все макросы в одном модуле или раскладывать по разным — исключительно вопрос вкуса. Выглядеть это должно примерно так:
Запустить добавленный макрос можно в диалоговом окне, вызываемом с помощью кнопки Макросы (Macros) на вкладке Разработчик:
В этом же окне, нажав кнопку Параметры (Options), можно задать сочетание клавиш для быстрого запуска макроса с клавиатуры. Будьте внимательны: сочетания клавиш для макросов различают раскладку (русская или английская) и регистр.
Кроме обычных макросов-процедур в Личной Книге можно хранить и пользовательские макро-функции (UDF = User Defined Function). В отличие от процедур, код функций начинаются с оператора Function или Public Function, а заканчиваются на End Function:
Код необходимо аналогичным образом скопировать в любой модуль книги PERSONAL.XLSB и затем можно будет вызвать функцию обычным образом, как любую стандарную функцию Excel, нажав кнопку fx в строке формул и выбрав функцию в окне Мастера Функций в категории Определенные пользователем (User Defined):
Примеры таких функций можно в больших количествах найти в интернете или здесь же на сайте (сумма прописью, приблизительный текстовый поиск, ВПР 2.0, конвертация кириллицы в транслит и т.п.)
Где хранится Личная Книга Макросов
Если вы будете использовать Личную Книгу Макросов, то рано или поздно у вас возникнет желание:
- поделиться своими накопленными макросами с другими пользователями
- скопировать и перенести Личную Книгу на другой компьютер
- сделать ее резервную копию
Для этого нужно будет найти файл PERSONAL.XLSB на диске вашего компьютера. По умолчанию, этот файл хранится в специальной папке автозапуска Excel, которая называется XLSTART. Так что все, что нужно — это добраться до этой папки на нашем ПК. И вот тут возникает небольшая сложность, потому что местоположение этой папки зависит от версии Windows и Office и может различаться. Обычно это один из следующих вариантов:
- C:Program FilesMicrosoft OfficeOffice12XLSTART
- C:Documents and SettingsComputerApplication DataMicrosoftExcelXLSTART
- C:Usersимя-вашей-учетной-записиAppDataRoamingMicrosoftExcelXLSTART
Как вариант, можно спросить о положении этой папки сам Excel с помощью VBA. Для этого в редакторе Visual Basic (кнопка Visual Basic на вкладке Разработчик) нужно открыть окно Immediate сочетанием клавиш Ctrl+G, ввести туда команду ? Application.StartupPath и нажать на Enter:
Полученный путь можно скопировать и вставить в верхнюю строку окна Проводника в Windows и нажать Enter — и мы увидим папку с нашим файлом Личной Книги Макросов:
P.S.
И несколько практических нюансов вдогон:
- при использовании Личной Книги Макросов Excel будет запускаться чуть медленнее, особенно на слабых ПК
- стоит периодически очищать Личную Книгу от информационного мусора, старых и ненужных макросов и т.п.
- у корпоративных пользователей бывают иногда сложности с использованием Личной Книги, т.к. это файл в системной скрытой папке
Ссылки по теме
- Что такое макросы, как их использовать в работе
- Полезности для VBA-программиста
- Тренинг «Программирование макросов на VBA в Microsoft 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
Библиотека функций в Excel
Смотрите также потомственный программист по выборе способа реализацииC_sanches на лыжах мечтает…2. TMS FlexCel запаковать не получилось. в указанном вами его в dataset. мало где используется. решить вашу «проблему».: Здравствуйте, не могуВ меню Вы увидите результат. увидите, как вставитьсодержит функции для результаты для наиболееВ этом уроке мы C# функции отпал. Нужна
: а каким образомНу а по — из всех Походу руки кривые компоненте не нашелНасчет картинок не Так что остановлюсьРекомендую не использовать объявить Excel вСервис Результат показывает, что функцию из библиотеки
Как получить доступ к библиотеке
работы с датами распространенных функций Excel, познакомимся с самым, думаю на указанно именно библиотека. Желательно его встроить в поводу «будет использовать 3 испытанных на у меня.)))
функции открытия готового знаю не пробовал… на «родном» варианте
Вставить функцию
для обработки документов коде c#, таквыберите пункт доставка заказа заняла Excel, позволяющую вычислить и временем в таких как СУММ, объемным и часто
Автосумма
ресурсе и здесь, на C#. файл Excel? на разных ПК данный момент большеqwertehok шаблона.umatkot
Последние
serg4242 сам офис (эта как нужен дальнейшийСсылки 4 рабочих дня. количество рабочих дней,
Финансовые
формулах. Например, функция СРЗНАЧ, СЧЕТ, МАКС посещаемым разделом Microsoft на планете, естьbedvit, подскажите, пожалуйста,The_Prist в разных книгах» всего понравилась. Не: работаетqwertehok
Логические
:: Подскажите компонент для библиотека — «мостик» экспорт данных из.Так же, как и в течение которыхСЕГОДНЯ и МИН. Excel – специалисты по С# какие нибудь статьи: Смотря какие вычисления — неясно, в нашел косяков +да нет же,
Текстовые
: откройте примеры -yagami2 работы с Excel. между вашим приложением датагрид в эксель.В разделе формулы, функции в должна быть произведенавозвращает текущую дату,КомандаБиблиотекой функций намного прокаченней меня. о создании библиотеки должны производиться. Если чем проблема для работа с файлами
Дата и время
работает она с там есть чтение, кажется, это делается Надо: читать .xls и офисом). Для Референсы на офисДоступные ссылки Excel могут быть доставка товара. В а функцияПоследние. Мы рассмотрим структуру
Ссылки и массивы
Из литературы я на C# для громоздкие, то смотреть макросов. У меня формата xml, Xls, xlsx xls стандартным ODBC драйвером и .xlsx, в таких целей можно добавил все. Подскажите,установите флажок для скопированы в смежные нашем случае мыТДАТА
Математические
дает доступ к библиотеки, из каких пользовался гуглом - подключения ее потом стоит в сторону много таких и Xls.ну посмотри тыплохо и, кстати, делает идеале с возможностью использовать сторонние библиотечки, с какого боку библиотеки объектов, которую ячейки. Наведите курсор будем использовать данныедополнительно к дате функциям Excel, с
Другие функции
категорий и команд тем, библиотек, примеров в Excel’е. Или C++ и создания проблем нет. Может3. zexmlss простенькая примеры — ониSetix это рекордно быстро, чтения картинок из которые позволяют работать
Как вставить функцию из библиотеки
зайти. требуется задействовать в на ячейку, которая в столбцах B еще и время. которыми Вы работали она состоит. К на С# - примеры такой реализации, XLL. Вычисления по тут стоит пояснить библиотека с исходным идут вместе
- : В общем формируется как вставка данных ячеек; создавать документы. с документами напрямую,
- P.S. В Visual вашем проекте Visual содержит функцию. Затем и C дляВ категории недавно.
- каждой категории приведено множество. буду очень благодарен! скорости тогда дадут точнее проблему следует? кодом, доступно описанPS я писал
- временная таблица с в DataSet, так Сейчас использую Microsoft без необходимости иметь studio 2012 я Basic. нажмите левую кнопку расчета времени доставки.
- Ссылки и массивыКатегория небольшое описание, котороеК Примеру:Андрей VG фору всем остальнымЦитатаC_sanches написал: на класс. От остальных в xlsxlsx точно, помощью SQL запроса и загрузка в Office, но он на машине установленный
- совсем чайник.Примечание: мыши и, неВыделите ячейку, которая будет
- содержатся функции, которыеФинансовые даст Вам общеена Хабрахабре.: Доброе время суток.
вариантам.ЦитатаC_sanches написал: каком языке лучше отстает тем что читал из экселя в БД. В Excel из DataSet. не на всех офис.MansMI Чтобы ускорить компиляцию, снимите отпуская ее, перетащите содержать формулу. В предназначены для просмотрасодержит функции для представление о предназначенииСразу вам скажу,C_sanches, есть такой
Макросы в их
office-guru.ru
Добавление библиотек объектов в проект Visual Basic
писатькакой лучше знаете нет возможности работать точно шаблоне Excel указываетсяSetix машинах стоит. ТакжеПогуглите OpenXML SDK: C# using System.Runtime.InteropServices; флажки для библиотек маркер автозаполнения по нашем примере это и поиска информации. финансовых расчетов, например, функций, входящих в если вы хорошо проект , там файлах не используютсяИЦитатаC_sanches написал: будет с диаграммами иkrapotkin место вывода таблицы: Кто может посоветовать
работал с NPOI, или ClosedXML. using Excel = объектов, которые не ячейкам, которые необходимо
Добавление объекта
ячейка D3. Например, Вы можете сумма периодического платежа библиотеку. В конце знаете VBA, но достаточно много и
-
что? Нельзя использовать? ли приводить вызов комментарием, Они хоть: для работы с с помощью спец.
-
библиотеку или компоненты но он неMsGuns Microsoft.Office.Interop.Excel; ……………… //Проект/Добавить будут использоваться в заполнить. Функция будетВыберите вкладку
добавить гиперссылку (ПЛТ урока мы на не знаете C#, примеров, есть и Т.к.ЦитатаC_sanches написал:
-
функции в этой и описаны в файлами Excel довольно меток (а также для работы с поддерживает .xlsx. Желательно: Спасибо за ответ. ссылку/NET/Microsoft.Office.Interop.Excel //http://www.sql.ru/forum/620401/funkcii-dlya-raboty-s-excel-iz-c try проекте. скопирована, а значения
-
ФормулыГИПЕРССЫЛКАили процентная ставка примере разберем, как написать надстройку .xlam группа, обсуждающая вопросыим нужна некая
-
Отображение вкладки «Разработчик»
-
библиотеке к зависанию классе, но сохраняются неплохо подходит Libre нужные колонки (тоже файлами (Xls и простой, быстрый иСсылка на библиотеку
-
{ app =Чтобы задать порядок доступа вычислены в зависимостина Ленте, чтобы) в ячейку или по кредиту вставить функцию из
-
вам будет значительно использования. В частности функция, которой нет или крашу Excel’я?зависит только в формате
support.office.com
Как подключить библиотеки для работы с Excel
Office, который тоже спец метки)). Суть: Xlsx). Желательно чтобы с нормальным описанием. добавляется (Core),но interopt new Excel.Application(); app.Workbooks.Open(tbFile.Text, к библиотекам объектов, от строк или открыть вернуть значение, котороеСТАВКА
библиотеки. проще и быстрее. bedvit создал свою
в Excelто её от того, как Xml, Xslx формат поддается автоматизации прочитать шаблон, найти работать можно былоlexus-tikhvin не появляется. Поставил obj, obj, obj, в разделе столбцов.Библиотеку функций
CyberForum.ru
Библиотека для работы с Excel в Windows Form
расположено на пересечении.
В Microsoft Excel имеются Но если уж библиотеку с использованием и можно написать напишите код библиотеки.
их вырезает.еще есть TMS метки, вывести между без установки Excel.: OfficeOpenXml. вместо 2003-го 2007-й obj, obj, obj,Доступные ссылкиАвтор: Антон Андронов. заданных строки и
Функции из категории сотни самых различных вы решили… дерзайте
этого проекта. как раз на
Напишите правильно -C_sanches
FlexCell метками информацию. ВqwertehokНе уверен насчет офис и все obj, obj, obj,
выберите любую библиотекуПримечание:В группе команд столбца (Логические функций, которые делятсяbedvitУспехов. VBA и использовать не будет приводить.:Setix связи с этим
: платный или бесплатный? чтения, использую для
заработало. obj, obj, obj,
и переместите ееМы стараемся какБиблиотека функцийИНДЕКСиспользуются для проверки по категориям. Все
: Причем для увеличенияbedvit на листе:C_sanchesВсем привет!
: И так опробовал формирование шаблона наSetix быстрого создания иxxxxXML установить не obj, obj); } вверх или вниз
можно оперативнее обеспечивать, выберите нужную категорию.). аргументов на соответствие эти функции составляют быстродействия, в моем: C_sanches, почитайте, то
bedvit: Пользователи уже имеютНужно написать функцию со 3 библиотеки: уровне кода не: В идеале бесплатный. форматирования excel-файла. могу, т.к. поMsGuns с помощью кнопок вас актуальными справочными В нашем случаеКатегория определенному значению или общую библиотеку. Вам
CyberForum.ru
Независимая библиотека для работы с Excel
случае, использовались библиотеки что советует Андрей: C_sanches, все зависит Excel-файлы со всеми сложными вычислениями. И1. XLSReadWriteII 5.2, приемлемо так как Просто пока ничегоRius требованию заказчика, проект: Здравствуйте !приоритета материалами на вашем мы выберемМатематические условию. Например, если нет необходимости досконально
написанные на С VG, ExcelDNA -
от ваших знаний, вычислениями, которые доступны возникло несколько вопросов:TMS FlexCell,
шаблон доступен для найти не могу: Если пойдёт только должен быть вНеобходимо в проекте.
языке. Эта страницаДата и времявключает в себя сумма заказа меньше изучать каждую функцию,
с ассемблерными вставками
в некоторых случаях вот использования библиотеки, Excel без сторонних1. Что лучше, сохранитьzexmlss правки пользователю (форматирование путного. Требуется на xlsx, то упомянутый
«чистой» VS-2012
работать с книгами
Чтобы добавить в раздел переведена автоматически, поэтому. функции для обработки
$50, то добавляется
но познакомиться с (сторонние), здесь я очень полезная разработка,
написанной на C# библиотек и надстроек.
код как надстройкаНе много о строк, столбцов). Нужен основе шаблона сделать выше способ. КакUsaga Excel. Для этого,Доступные ссылки ее текст можетВыберите нужную функцию из числовых аргументов, выполняющие
CyberForum.ru
Xls и Xlsx библиотеки и компоненты для работы с файлами
цена доставки $4.99, несколькими основными из пасс… Поэтому прирост особенно если вы для Excel (VBA) Но им нужна (*.xla) или в каждой:
компонент или библиотека отчет без использования
начать: Генерируем OfficeOpenXML-документы: как я узнал,другую библиотеку, нажмите содержать неточности и выпадающего меню. Мы различные математические и а если больше,
каждой категории будет производительности от обычного
планируете писать на (автором этих строк).
некая функция, которой отдельную библиотеку (макрос1. Начну с чтобы прочитать файл Excel.
за 5 минут.MsGuns
используется библиотека Microsoft.Office.Interop.Excel. кнопку грамматические ошибки. Для выберем функцию тригонометрические вычисления. Например, то стоимость доставки весьма полезно. кода на С# C# для Excel Используется для расчета нет в Excel, не подойдет, т.к. платной XLSReadWriteII 5.2 заполнить данными иqwertehokNewOrdered, установка библиотеки «чистоту»
Но если ееОбзор нас важно, чтобыЧИСТРАБДНИ
вы можете округлить
не взимается. ВЧтобы получить доступ к в dll/xll и (VBA). Скачайте и больших чисел (длинная поэтому и встал функция будет использоваться — обладает почти сохранить.: на форуме обсуждался: проекта не портит. добавить явно ви укажите путь эта статья была, чтобы вычислить количество значение ( данном примере целесообразно библиотеке функций Excel, VBA в xlam установите Microsoft Visual арифметика). вопрос о написании в нескольких Excel-книгах полным функционалом для
qwertehokПриёмы работы сserg4242 К тому же, Using, то компилятор
к необходимому файлу. вам полезна. Просим рабочих дней междуОКРУГЛ
использовать функцию выберите вкладку Формулы. возможно будет не
Studio 2015 (бесплатнаяНо это когда библиотеки. Пользователь только на разных ПК) работы с файлами: я тебе написал zexmlss, взгляните на этуMicrosoft.Office.Interop.Excel ругается на отсутствиеНа верхней панели выберите вас уделить пару датами заказа и
), найти значение ПиЕСЛИ
Все возможные категории столь высок, что версия, с незначительными
критически важно считать подключит ее и2. Если это библиотека,
xlsx и xls. уже — этаотличный компонент, на библиотеку
- тоже сторонняя ‘Office’ в пространствеExcel секунд и сообщить, получения товара. (
. и команды вы
бы компенсировать быстроту для ваших целей быстро и наиболее
сможет использовать. Макросы
то на каком
Много различных классов
библиотека позволяет читать сайте есть все
http://epplus.codeplex.com/ библиотека, её в имен. Попытка добавить> помогла ли онаПоявится диалоговое окноПИВ категории можете увидеть в разработки в VBA, ограничениями). эффективно использовать ресурсы в их файлах языке лучше писать и описаний, и экселевские файлы примеры и почтаumatkot .NET нету, тащится ссылку через обозревательнастройки вам, с помощьюАргументы функции), произведение (Текстовые
группе и преодоления порогаПоделайте простые задания, ПК. не используются.ЦитатаThe_Prist написал: (подойдет ли C#)? прочего. На версииSetix автора — связаться
: Странно, заметил, за с офисным пакетом. решений (раздел COM,> кнопок внизу страницы.. Здесь вы можетеПРОИЗВЕДсодержатся функции, которыеБиблиотека функций вхождения в новый к примеру, .В вашем случае, какой лучше знаетет.е.
CyberForum.ru
Написание библиотеки для Excel
3. Вычисления будут сложными 5,2 нашел 1
: Поставил библиотеку посмотрел
можно собой черту, что Так, что условие
библиотека Microsoft Excelпанель инструментов и ленты Для удобства также ввести или выбрать), промежуточные итоги ( работают с текстом. язык.
Там же можно возможно, можно просто нет принципиальной разницы, и их будет
косяк при попытке с чем работаетиз платных - всегда при ответе, «чистоты» вы уже 12.0 Object Library). приводим ссылку на
ячейки, которые будут
ПРОМЕЖУТОЧНЫЕ.ИТОГИ в качестве значенийРазберем, какую задачу выполняетC_sanches создать тему, если обойтись надстройкой (*.xla) на чем будет очень много. Используя
записать ячейку с она. XLSReadWriteII получается, что с нарушили. проблему не решила.В разделе оригинал (на английском составлять аргументы. Мы) и многое другое. аргументов. С помощью
каждая из команд: Андрей VG, bedvit, вам потребуется помощь
или (*.xlam) написана библиотека? В библиотеку, будет ли данными в формате1. Работу сSetix кем-то спорю. ТакMsGunsСтудия 2012, на
Настройка ленты языке) . введем B3 вРаздел них можно решать группы: спасибо за ссылки (это не реклама),bedvit плане скорости работы приводить вызов функции «{}» вместо фигурной файлами Xls совсем: zexmlss: там идет вот же: закон: ПК установлен ExcelвыберитеВ своем коде можно полеДругие функции такие задачи, какЕсли у Вас возникли и пояснения. может и я
: Это проще и и возможности добавить в этой библиотеке скобки «}» выводит не обнаружил. создание самого шаблона подлости.
Usaga 2003Основные вкладки задействовать другие объекты
Нач_датасодержит дополнительные категории преобразование текста в проблемы с поискомC# выбран, т.к. чем-то смогу помочь нужно только знания функцию, которая будет к зависанию или — «/» на
2. Там представленна с помощью кода.Используйте ClosedXml))), Спасибо еще раз,
Подскажите, пожалуйста, чтои установите флажок приложения, задав ссылкии С3 в библиотеки функций, такие нижний регистр ( необходимой функции в
его знаю (что (когда будет время). VBA. доступна потом в крашу Excel’я? более поздних версиях работа с xml У меня неhttps://github.com/ClosedXML но, судя по
делать.Разработчик на библиотеку объектов поле как Статистические, Инженерные,
СТРОЧН Excel, команда не сказать о Потом, если вы
C_sanches ячейках Excel’яСпасибо! не могу сказать
и много другая задача.yagami2 количеству материала вСпасибо за любую. этого приложения.
Кон_дата Аналитические, Проверка свойств) или замена частиВставить функцию VBA).
поймете, что это: именно это иПытливыйThe_Prist не тестировал. СохраняетРАСПАКОВАННЫМ Шаблон условно создает: Меня в своем
Сети, interop, пожалуй, помощь
Нажмите кнопкуНа вкладке «Разработчик» откройте. и значений, а текста на другоепозволяет найти ееБуду пробовать реализовывать для вас интересно важно в моей
: Если встроить код
: вопрос из разряда все стандартные форматыxlsx файлом. При пользователь. Моя цель время вот эта самый популярный вариантUsagaСохранить окно проекта VisualЕсли аргументы введены правильно, также функции, оставленные значение ( при помощи ключевых то, что задумал. и вы готовы
задаче. Только будут функции в файл, «как провести лето». (xml,xls,xlsx). Есть возможность этом не приведены открыть этот шаблон библиотека очень выручила работы из шарпа:и закройте Basic. Увидеть вкладки нажмите для поддержки совместимостиЗАМЕНИТЬ слов. Еще раз всем писать на C#, использоваться не большие то эта функция Кому-то нравится дикарем перевода в другие примеры, чем запаковывать взять данные чтоhttps://exceldatareader.codeplex.com/ с Экселем. ПоменялMsGunsПараметров Excel «разработчик» отображается ниже,ОК
с предыдущими версиями
).
Команда спасибо. Если будут далее почитайте по числа, а большое будет доступна в на море, кому-то форматы Html и файл потом. Попробовал есть в шаблоне
Берет excel файл офис, все равно, добавление ссылки на. если она еще. Excel.КатегорияАвтосумма вопросы, обязательно сюда COM, XLL, DLL. количество небольших чисел. файле, в чем All-inclusive подавай, а прочие. Подробнее на поработать с распакованным и по ним и целиком пихает старый 2003 сейчас
эту библиотеку должноLoathem не открыта.Функция будет вычислена, и
В следующем примере ВыДата и времяпозволяет автоматически вычислять обращусь.
Признаться я неUPD: Вопрос о проблема? Пользовательская функция. кто-то в Альпы сайте у производителя. файлом, а потом
planetaexcel.ru
заполнить отчет. Просто
В этом уроке мы познакомимся с самым объемным и часто посещаемым разделом Microsoft Excel – Библиотекой функций. Мы рассмотрим структуру библиотеки, из каких категорий и команд она состоит. К каждой категории приведено небольшое описание, которое даст Вам общее представление о предназначении функций, входящих в библиотеку. В конце урока мы на примере разберем, как вставить функцию из библиотеки.
В Microsoft Excel имеются сотни самых различных функций, которые делятся по категориям. Все эти функции составляют общую библиотеку. Вам нет необходимости досконально изучать каждую функцию, но познакомиться с несколькими основными из каждой категории будет весьма полезно.
Содержание
- Как получить доступ к библиотеке
- Вставить функцию
- Автосумма
- Последние
- Финансовые
- Логические
- Текстовые
- Дата и время
- Ссылки и массивы
- Математические
- Другие функции
- Как вставить функцию из библиотеки
Как получить доступ к библиотеке
Чтобы получить доступ к библиотеке функций Excel, выберите вкладку Формулы. Все возможные категории и команды вы можете увидеть в группе Библиотека функций.
Разберем, какую задачу выполняет каждая из команд группы:
Вставить функцию
Если у Вас возникли проблемы с поиском необходимой функции в Excel, команда Вставить функцию позволяет найти ее при помощи ключевых слов.
Автосумма
Команда Автосумма позволяет автоматически вычислять результаты для наиболее распространенных функций Excel, таких как СУММ, СРЗНАЧ, СЧЕТ, МАКС и МИН.
Последние
Команда Последние дает доступ к функциям Excel, с которыми Вы работали недавно.
Финансовые
Категория Финансовые содержит функции для финансовых расчетов, например, сумма периодического платежа ПЛТ или процентная ставка по кредиту СТАВКА.
Логические
Функции из категории Логические используются для проверки аргументов на соответствие определенному значению или условию. Например, если сумма заказа меньше $50, то добавляется цена доставки $4.99, а если больше, то стоимость доставки не взимается. В данном примере целесообразно использовать функцию ЕСЛИ.
Текстовые
В категории Текстовые содержатся функции, которые работают с текстом в качестве значений аргументов. С помощью них можно решать такие задачи, как преобразование текста в нижний регистр (СТРОЧН) или замена части текста на другое значение (ЗАМЕНИТЬ).
Дата и время
Категория Дата и время содержит функции для работы с датами и временем в формулах. Например, функция СЕГОДНЯ возвращает текущую дату, а функция ТДАТА дополнительно к дате еще и время.
Ссылки и массивы
В категории Ссылки и массивы содержатся функции, которые предназначены для просмотра и поиска информации. Например, Вы можете добавить гиперссылку (ГИПЕРССЫЛКА) в ячейку или вернуть значение, которое расположено на пересечении заданных строки и столбца (ИНДЕКС).
Математические
Категория Математические включает в себя функции для обработки числовых аргументов, выполняющие различные математические и тригонометрические вычисления. Например, вы можете округлить значение (ОКРУГЛ), найти значение Пи (ПИ), произведение (ПРОИЗВЕД), промежуточные итоги (ПРОМЕЖУТОЧНЫЕ.ИТОГИ) и многое другое.
Другие функции
Раздел Другие функции содержит дополнительные категории библиотеки функций, такие как Статистические, Инженерные, Аналитические, Проверка свойств и значений, а также функции, оставленные для поддержки совместимости с предыдущими версиями Excel.
Как вставить функцию из библиотеки
В следующем примере Вы увидите, как вставить функцию из библиотеки Excel, позволяющую вычислить количество рабочих дней, в течение которых должна быть произведена доставка товара. В нашем случае мы будем использовать данные в столбцах B и C для расчета времени доставки.
- Выделите ячейку, которая будет содержать формулу. В нашем примере это ячейка D3.
- Выберите вкладку Формулы на Ленте, чтобы открыть Библиотеку функций.
- В группе команд Библиотека функций, выберите нужную категорию. В нашем случае мы выберем Дата и время.
- Выберите нужную функцию из выпадающего меню. Мы выберем функцию ЧИСТРАБДНИ, чтобы вычислить количество рабочих дней между датами заказа и получения товара.
- Появится диалоговое окно Аргументы функции. Здесь вы можете ввести или выбрать ячейки, которые будут составлять аргументы. Мы введем B3 в поле Нач_дата и С3 в поле Кон_дата.
- Если аргументы введены правильно, нажмите ОК.
- Функция будет вычислена, и Вы увидите результат. Результат показывает, что доставка заказа заняла 4 рабочих дня.
Так же, как и формулы, функции в Excel могут быть скопированы в смежные ячейки. Наведите курсор на ячейку, которая содержит функцию. Затем нажмите левую кнопку мыши и, не отпуская ее, перетащите маркер автозаполнения по ячейкам, которые необходимо заполнить. Функция будет скопирована, а значения вычислены в зависимости от строк или столбцов.
Оцените качество статьи. Нам важно ваше мнение:
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .
В своем коде можно задействовать другие объекты приложения, задав ссылки на библиотеку объектов этого приложения.
Добавление объекта
На вкладке «Разработчик» откройте окно проекта 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 производит подключение
Создание, расположение, удаление и добавление Личной книги макросов (PERSONAL.XLSB), предназначенной в Excel для записи, хранения и вызова процедур.
Личная книга макросов
Личная (персональная) книга макросов – это скрытая служебная книга Excel с именем PERSONAL.XLSB, предназначенная для записи и хранения программного кода (функций и подпрограмм) и предоставления доступа к нему из всех открытых рабочих книг.
Личная книга макросов автоматически открывается в фоновом режиме сразу после загрузки программы Excel и закрывается вместе с приложением, что обеспечивает постоянный доступ из других открытых книг к записанным в ней процедурам.
Персональная книга макросов является скрытой, поэтому добавлять, удалять и изменять размещенные в ней процедуры можно только в редакторе VBA.
Так же, как и в других рабочих книгах, в Личной книге макросов можно создавать программные модули, импортировать и экспортировать их, записывать в модули пользовательские процедуры (подпрограммы и функции) или копировать и вставлять их из модулей других книг.
Подпрограммы, размещенные в Личной книге макросов, можно просмотреть в окне «Список макросов», открыв его из любой рабочей книги Excel. Они будут перечислены с приставкой «PERSONAL.XLSB!». Функции в этом окне не отображаются.
Пользовательские функции, размещенные в Личной книге макросов, доступны для просмотра, выбора и вставки их в ячейки рабочего листа в Мастере функций:
Список пользовательских функций в Личной книге макросов
По умолчанию пользовательские функции расположены в категории «Определенные пользователем». Они выбираются и вставляются в ячейки рабочего листа с помощью Мастера функций так же, как и все остальные.
Пользовательские функции, расположенные в обычной рабочей книге Excel, тоже будут доступны в Мастере функций, но для этого книга должна быть открыта.
Вызов процедуры из Личной книги макросов осуществляется так же, как и запуск процедуры из любой другой рабочей книги.
Создание
Изначально Личная книга макросов в приложении Excel отсутствует. Чтобы проверить, есть ли она в вашей программе (не создал ли ее кто-то ранее), откройте любую рабочую книгу и перейдите в редактор VBA, нажав сочетание клавиш «Alt+F11» (в этом сочетании используется левая клавиша Alt). Открыть редактор VBA можно и пройдя по пунктам меню:
Excel 2007-2016: «Разработчик» –> «Visual Basic» (смотрите, как отобразить вкладку «Разработчик», которая изначально скрыта);
Excel 2000-2003: «Сервис» –> «Макрос» –> «Редактор Visual Basic».
Откроется редактор VBA:
Проводник в редакторе VBA
Если в проводнике сверху вы видите строку «VBAProject (PERSONAL.XLSB)», значит Личная книга макросов на вашем компьютере уже есть.
Если же ее нет, необходимо записать какой-нибудь простенький макрос, выбрав при его создании Сохранить в: Личная книга макросов.
Сохранение макроса в Личной книге макросов
После записи макроса, сохраненного в Личную книгу макросов, эта книга будет создана и появится в проводнике редактора VBA.
Расположение
Место расположения Личной книги макросов на конкретном компьютере, по словам разработчиков, зависит только от версии операционной системы. О его зависимости от версии Excel в их статье ничего не сказано.
В любом случае, книга PERSONAL.XLSB находится в папке XLSTART, которую можно разыскать с помощью поиска в проводнике:
Результаты поиска папки XLSTART в проводнике
Личная книга макросов в папке XLSTART
Удаление
Если вы хотите удалить Личную книгу макросов из своего приложения Excel, найдите с помощью поиска в проводнике папку XLSTART и удалите из нее файл PERSONAL.XLSB.
В принципе, наличие неиспользуемой Персональной книги макросов ничем не мешает. Но если не вы ее создавали и вас беспокоит наличие в ней чужого кода, можете удалить из нее в редакторе VBA все стандартные модули и очистить от процедур модули книги (по умолчанию «ЭтаКнига») и листа (по умолчанию «Лист1»).
Добавление
Как видно из комментариев к этой статье, у некоторых пользователей приложения Excel при создании макроса в выпадающем списке «Сохранить в» отсутствует пункт «Личная книга макросов».
В этом случае можно попытаться найти с помощью поиска в проводнике папку XLSTART и, если она будет найдена, вставить в нее пустой файл PERSONAL.XLSB. В данном случае «пустой» означает «без пользовательских процедур (макросов)».
Скачать архив с пустым файлом PERSONAL.XLSB (создан в Excel 2016).
После добавления файла PERSONAL.XLSB в папку XLSTART и перезагрузки приложения Excel, Личная книга макросов появится в проводнике редактора VBA. Перезагрузка Excel заключается в закрытии всех открытых рабочих книг и последующем открытии любого файла этой программы.
0 / 0 / 0 Регистрация: 19.01.2016 Сообщений: 2 |
|
1 |
|
27.09.2016, 18:56. Показов 41139. Ответов 5
Здравствуйте, у меня есть файл ексель с макросами, раньше все работало нормально, сейчас открываю и выдает ошибку «Microsoft Visual Basic for Applications» «Сan’t find project or library», далее нажимаю «ок» и Excell закрывается. Читал другие темы, предлагают зайти в VBA — Refences и снять галочки с библиотек MISSING, но не могу, так как не могу открыть файл Раньше на этом же компе этот файл работал без проблем Поможете? Спасибо!
0 |
Заблокирован |
|
27.09.2016, 19:23 |
2 |
Сообщение было отмечено plyacik как решение Решение Открывайте файл с нажатым [Shift]`ом.
1 |
1337 / 308 / 74 Регистрация: 13.11.2008 Сообщений: 635 |
|
27.09.2016, 21:02 |
3 |
далее нажимаю «ок» А нажать Debug или End позволяет? Если да — то жмите End. Файл должен открыться, код остановиться. И тогда уже сможете перейти в код.
1 |
0 / 0 / 0 Регистрация: 19.01.2016 Сообщений: 2 |
|
28.09.2016, 11:32 [ТС] |
4 |
В общем проблема решилась, но не очень разумным способом, нашел комп на котором открылся файл, пересохранил и все решилось. кстати с нажатим Shift’ом тоже получилось, выскочило окно на котором отключил макросы, файл пересохранил и все ок Спасибо!
0 |
0 / 0 / 0 Регистрация: 25.02.2020 Сообщений: 3 |
|
15.08.2020, 22:07 |
5 |
Случилась у меня такая же проблема, и есть там еще один обход.
0 |
0 / 0 / 0 Регистрация: 03.07.2020 Сообщений: 169 |
|
20.04.2021, 11:59 |
6 |
Franky101010, не работает решение по указанной ссылке.
0 |