Построить Excel Add-In в Microsoft Excel
Надстройки Excel
Надстройка Excel — это файл (обычно с расширением .xla или .xlam), который Excel может загружать при запуске. Файл содержит код VBA, который добавляет в Excel дополнительные функции, обычно в виде новых функций.
Надстройки предоставляют отличный способ повысить мощность Excel и являются идеальным средством распространения ваших пользовательских функций. Excel поставляется с множеством надстроек, готовых для загрузки и начала использования, а также доступны многие надстройки сторонних производителей.
В этой статье показано, как написать настраиваемую функцию с помощью Excel VBA, а также как сохранить и установить ее как надстройку. Пользовательские функции часто называют UDF (пользовательские функции).
Написание пользовательской функции
Надстройка может содержать столько UDF (определяемых пользователем функций), сколько вы хотите, и вы можете добавить больше в последнее время, просто открыв и отредактировав файл надстройки.
Шаг 1. Добавьте модуль кода в новую книгу
-
Запустите Excel или, если у вас уже открыт Excel, создайте новую пустую книгу.
-
Откройте редактор Visual Basic на вкладке «Разработчик», перейдите на вкладку «Разработчик».
-
Щелкните Visual Basic (клавиши: ALT + F11), откроется редактор Visual Basic.
-
В редакторе Visual Basic выберите VBAProject на панели Project Explorer. Это выбирает пустую книгу.
Если Project Explorer не отображается, откройте его, выбрав «Просмотр»> «Project Explorer».
-
В меню «Вставка» выберите «Модуль». Это добавляет новый пустой модуль кода в выбранную книгу. Вы также увидите, что модуль появится на панели Project Explorer.
Шаг 2: Введите код функции, определяемой пользователем
В окне кода введите код функции, определяемой пользователем возраста
Шаг 3: Проверьте функцию
Вы можете сразу же опробовать эту функцию. Переключитесь в Excel и в пустой книге (той же, которую вы используете для создания модуля кода функции) введите дату в ячейку. В другой ячейке введите свою функцию так же, как если бы вы использовали одну из встроенных функций Excel, например = Возраст (A1)
UDF доступна для всех открытых книг, когда открыта ее главная книга (книга, содержащая модуль кода UDF). Однако, если вы закроете основную книгу и попытаетесь использовать функцию в другой книге, вы получите ошибку. В другой книге функция не найдена, поэтому #NAME? появляется ошибка.
Чтобы преодолеть ошибку, необходимо объявить UDF внутри надстройки Excel и назначить надстройку Excel приложению Excel.
Создание надстройки Excel
Сохранить книгу как надстройку
Теперь книгу, содержащую ваш модуль кода, необходимо сохранить как файл надстройки Excel (.xla или .xlam).
В окне Excel выберите Файл> Сохранить, чтобы открыть диалоговое окно «Сохранить как». Введите имя файла надстройки (применяются обычные правила именования файлов) и используйте параметр «Сохранить как тип:», чтобы изменить тип файла на надстройку Microsoft Excel (.xla) или (.xlam).
Прежде чем щелкнуть [OK], проверьте место, в котором вы сохраняете файл надстройки.
Наконец, нажмите [OK], чтобы принять ваши изменения. Теперь ваша надстройка готова к установке и при необходимости может быть передана другим пользователям.
Установка надстройки
Перейдите в Инструменты> Надстройки, чтобы открыть диалоговое окно Надстройки. Если вы сохранили свою надстройку в месте по умолчанию, вы увидите ее имя, отображаемое в окне «Доступные надстройки:» (если вы сохранили надстройку в другой папке, используйте кнопку [Обзор], чтобы найти ее ).
Чтобы установить надстройку, установите флажок рядом с именем надстройки и нажмите [OK].
Как только надстройка будет установлена, ее функции станут доступны в Excel. Найдите их в разделе «Пользовательские» мастера функций (инструмент вставки функций) или просто введите их в ячейку, как любую встроенную функцию. Надстройка будет оставаться установленной до тех пор, пока вы не вернетесь в диалоговое окно надстройки и не удалите ее, сняв галочку с флажка.
Создание добавления UDF и изменений в надстройку
Ваш файл надстройки может содержать любое количество модулей и пользовательских функций. Вы можете добавить их в любое время.
Если ваша надстройка установлена, вы увидите ее в списке на панели Project Explorer редактора VB. Найдите модуль, содержащий ваши функции, и внесите необходимые дополнения и изменения. Если ваша надстройка не установлена, найдите файл надстройки и дважды щелкните его, чтобы открыть в Excel. Вы не сможете увидеть его в окне Excel, но он появится в проводнике проектов редактора VB.
Не забудьте сохранить изменения! Сделайте это из окна редактора VB с помощью File> Save.
Пожалуйста, введите код ниже
'Insert below code in Addin Option Explicit Function Age(DoB As Date) 'Gives a name to the function and declares that a single argument is needed, which must be a date. 'Checking whether Date of Birth is zero If DoB = 0 Then Age = "type the correct Date of Birth" Else 'If Date of Birth is not zero, compare the current month value with the Date of Birth Select Case Month(Date) 'If current month is before (i.e. less than) the month of date of birth, 'then they have not had their birthday, so their age is this year minus their birth year minus 1 Case Is < Month(DoB) Age = (Year(Date) - Year(DoB)) - 1 'If current month is same as the month of date of birth 'we need to know whether or not they have had their birthday yet Case Is = Month(DoB) 'If today date is equal to or past the day of their birthday, 'then they have had their birthday (or it is today) 'so their age is this year minus their birth year? 'otherwise their age is this year minus their birth year minus 1 If Day(Date) >= Day(DoB) Then Age = Year(Date) - Year(DoB) Else Age = Year(Date) - Year(DoB) - 1 End If 'If today?s month is after (i.e. greater than) the month of the person?s date of birth, 'they have had their birthday, so their age is this year minus their birth year. Case Is > Month(DoB) Age = Year(Date) - Year(DoB) 'Close the CASE statement End Select 'Close the IF statement End If 'Close the Function End Function
Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]