Как создать надстройка с формулой для excel

Даже если вы не умеете программировать, то существует множество мест (книги, сайты, форумы), где можно найти готовый код макросов на VBA для огромного количества типовых задач в Excel. По моему опыту, большинство пользователей рано или поздно собирают свою личную коллекцию макросов для автоматизации рутинных процессов, будь то перевод формул в значения, вывод суммы прописью или суммирования ячеек по цвету. И тут встает проблема — код макросов на Visual Basic нужно где-то хранить, чтобы потом использовать в работе.

Самый простой вариант — сохранять код макросов прямо в рабочем файле, зайдя в редактор Visual Basic с помощью сочетания клавиш Alt+F11 и добавив новый пустой модуль через меню Insert — Module:

Добавление модуля в книгу

При таком способе возникает, однако, несколько неудобств:

  • Если рабочих файлов много, а макрос нужен везде, как например макрос преобразования формул в значения, то и копировать код придется в каждую книгу.
  • Нужно не забыть сохранить файл в формате с поддержкой макросов (xlsm) или в формате двоичной книги (xlsb).
  • При открытии такого файла защита от макросов будет каждый раз выдавать предупреждение, которое нужно подтвердить (ну, или отключить защиту полностью, что может быть не всегда желательно).

Более изящным решением будет создание своей собственной надстройки (Excel Add-in) — отдельного файла особого формата (xlam), содержащего все ваши «любимые» макросы. Плюсы такого подхода:

  • Достаточно будет один раз подключить надстройку в Excel — и можно будет использовать её VBA процедуры и функции в любом файле на этом компьютере. Пересохранять ваши рабочие файлы в xlsm- и xlsb-форматы, таким образом, не потребуется, т.к. исходный код будет храниться не в них, а в файле надстройки.
  • Защита от макросов вас тоже беспокоить уже не будет, т.к. надстройки по определению входят в доверенные источники.
  • Можно сделать отдельную вкладку на ленте Excel с красивыми кнопками для запуска макросов надстройки.
  • Надстройка — это отдельный файл. Его легко переносить с компьютера на компьютер, делиться им с коллегами или даже продавать ;)

Давайте рассмотрим весь процесс создания своей собственной надстройки для Microsoft Excel по шагам.

Шаг 1. Создаем файл надстройки

Открываем Microsoft Excel с пустой книгой и сохраняем ее под любым подходящим именем (например MyExcelAddin) в формате надстройки с помощью команды Файл — Сохранить как или клавиши F12, указав тип файла Надстройка Excel (Excel Add-in):

Сохраняем файл в формате надстройки

Обратите внимание, что стандартно Excel хранит надстройки в папке C:UsersВаше_имяAppDataRoamingMicrosoftAddIns, но, в приниципе, можно указать любую другую удобную вам папку.

Шаг 2. Подключаем созданную надстройку

Теперь созданную нами на прошлом шаге надстройку MyExcelAddin надо подключить к Excel. Для этого идем в меню Файл — Параметры — Надстройки (File — Options — Add-Ins), жмем на кнопку Перейти (Go) в нижней части окна. В открывшемся окне жмем кнопку Обзор (Browse) и указываем положение нашего файла надстройки.

Если вы все сделали правильно, то наша MyExcelAddin должна появиться в списке доступных надстроек:

Список надстроек

Шаг 3. Добавляем в надстройку макросы

Наша надстройка подключена к Excel и успешно работает, но в ней нет пока ни одного макроса. Давайте её наполним. Для этого нужно открыть редактор Visual Basic сочетанием клавиш Alt+F11 или кнопкой Visual Basic на вкладке Разработчик (Developer). Если вкладки Разработчик не видно, то её можно отобразить через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).

В левом верхнем углу редактора должно быть окно Project (если его не видно, то включите его через меню View — Project Explorer):

Project Explorer

В этом окне отображаются все открытые книги и запущенные надстройки Microsoft Excel, в том числе и наша VBAProject (MyExcelAddin.xlam) Выделите её мышью и добавьте в неё новый модуль через меню Insert — Module. В этом модуле мы и будем хранить VBA-код наших макросов надстройки.

Код можно либо набрать «с нуля» (если вы умеете программировать), либо скопировать откуда-нибудь уже готовый (что гораздо проще). Давайте, для пробы, введем в добавленный пустой модуль код простого, но полезного макроса:

Код макроса

После набора кода не забудьте нажать на кнопку сохранения (дискетку) в левом верхнем углу.

Наш макрос FormulasToValues, как легко сообразить, преобразует формулы в значения в выделенном предварительно диапазоне. Иногда такие макросы называют еще процедурами. Чтобы его запустить, нужно выделить ячейки с формулами и открыть специальное диалоговое окно Макросы с вкладки Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. Обычно в этом окне отображаются доступные макросы из всех открытых книг, но макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса (Macro name), а затем нажать кнопку Выполнить (Run) — и наш макрос заработает:

Здесь же можно назначить сочетание клавиш для быстрого запуска макроса — за это отвечает кнопка Параметры (Options) в предыдущем окне Макрос:

Назначаем сочетание клавиш макросу

При назначении клавиш имейте ввиду, что здесь учитывается регистр и раскладка клавиатуры. Поэтому, если вы назначите сочетание, например, Ctrl+Й, то, по факту, вам придется в будущем следить за тем, чтобы у вас была включена именно русская раскладка и жать дополнительно Shift, чтобы получить заглавную букву.

Для удобства можно добавить и кнопку для нашего макроса на панель быстрого доступа в левом верхнем углу окна. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar), а затем в выпадающем списке в верхней части окна опцию Макросы. После этого наш макрос FormulasToValues можно поместить на панель кнопкой Добавить (Add) и выбрать для него значок кнопкой Изменить (Edit):

Назначаем кнопку макросу на панели быстрого доступа

Шаг 4. Добавляем в надстройку функции

Кроме макросов-процедур, существуют еще и макросы-функции или как их еще называют UDF (User Defined Function = пользовательская функция). Давайте создадим в нашей надстройке отдельный модуль (команда меню Insert — Module) и вставим туда код такой функции:

Пользовательская функция

Несложно сообразить, что эта функция нужна для извлечения НДС из суммы включающей НДС. Не бином Ньютона, конечно, но нам для примера сгодится, чтобы показать основные принципы.

Заметьте, что синтаксис функции отличается от процедуры:

  • используется конструкция Function …. End Function вместо Sub … End Sub
  • после названия функции в скобках указываются её аргументы
  • в теле функции производятся необходимые вычисления и затем результат присваивается переменной с названием функции

Также обратите внимание, что эту функцию не нужно, да и невозможно запустить как предыдущий макрос-процедуру через диалоговое окно Макросы и кнопку Выполнить. Такую макрофункцию нужно использовать как стандартную функцию листа (СУММ, ЕСЛИ, ВПР…), т.е. просто ввести в любую ячейку, указав в качестве аргумента значение суммы с НДС:

Используем созданную UDF

… или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул), выбрав категорию Определенные пользователем (User Defined):

Выбираем пользовательскую функцию

Единственный неприятный момент здесь — это отсутствие привычного описания функции в нижней части окна. Чтобы его добавить придется проделать следующие действия:

  1. Откройте редактор Visual Basic сочетанием клавиш Alt+F11
  2. Выделите надстройку в панели Project и нажмите клавишу F2, чтобы открыть окно Object Browser
  3. Выберите в верхней части окна в выпадающем списке свой проект надстройки
  4. Щелкните по появившейся функции правой кнопкой мыши и выберите команду Properties.
  5. Введите описание функции в окно Description
  6. Сохраните файл надстройки и перезапустите Excel.

Добавляем свое описание для UDF

После перезапуска у функции должно отобразиться описание, которое мы ввели:

Описание функции

Шаг 5. Создаем вкладку надстройки в интерфейсе

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

Информация об отображаемых вкладках по умолчанию содержится внутри книги и должна быть оформлена в виде специального XML-кода. Проще всего писать и редактировать такой код с помощью специальных программ — XML-редакторов. Одна из самых удобных (и бесплатных) — это программа Максима Новикова Ribbon XML Editor.

Алгоритм работы с ней следующий:

  1. Закройте все окна Excel, чтобы не было конфликта файлов, когда мы будем редактировать XML-код надстройки.
  2. Запустите программу Ribbon XML Editor и откройте в ней наш файл MyExcelAddin.xlam
  3. При помощи кнопки tabs в левом верхнем углу добавьте заготовку кода для новой вкладки:

    Добавляем новую вкладку для надстройки

  4. В пустые кавычки нужно вписать id нашей вкладки и группы (любые уникальные идентификаторы), а в label — названия нашей вкладки и группы кнопок на ней:

    Добавляем id и названия

  5. При помощи кнопки button на панели слева добавляем заготовку кода для кнопки и дописываем к ней теги:

    Добавляем кнопку

    — label — это текст на кнопке
    — imageMso — это условное название изображения на кнопке. Я использовал иконку с красной кнопкой, которая имеет название AnimationCustomAddExitDialog. Названия всех доступных кнопок (а их несколько сотен!) можно найти на большом количестве сайтов в интернете, если искать по ключевым словам «imageMso». Для начала можно сходить сюда.
    onAction — это имя процедуры обратного вызова — специального короткого макроса, который будет запускать наш основной макрос FormulasToValues. Назвать эту процедуру можно как угодно. Мы добавим её чуть позже.

  6. Проверить правильность всего сделанного можно с помощью кнопки с зеленой галочкой сверху на панели инструментов. Там же рядом нажмите на кнопку с дискетой для сохранения всех изменений.
  7. Закрываем Ribbon XML Editor
  8. Открываем Excel, заходим в редактор Visual Basic и добавляем к нашему макросу процедуру обратного вызова KillFormulas, чтобы она запускала наш основной макрос замены формул на значения.

    Добавляем процедуру обратного вызова

  9. Сохраняем внесенные изменения и, вернувшись в Excel проверяем результат:

    Созданная вкладка для надстройки

Вот и всё — надстройка готова к использованию. Наполните её своими процедурами и функциями, добавьте красивые кнопки — и использовать макросы в работе станет намного проще.

Ссылки по теме

  • Что такое макросы, как их использовать в работе, где взять код макросов на Visual Basic.
  • Как сделать заставку при открытии книги в Excel
  • Что такое Личная Книга Макросов и как её использовать

На чтение 14 мин. Просмотров 6.3k.

В Excel более 450 функций, и некоторые из них весьма полезны в вашей повседневной работе.

Но… Excel дает вам возможность создавать пользовательские функции с помощью VBA.

Да — да, вы не ослышались. Пользовательская функция.

И я могу сказать со 100%-ой уверенностью, что каждый начинающий пользователь VBA хочет научиться создавать пользовательские функции. Не так ли? Кивните, если вы один из них.

Итак, сегодня я собираюсь поделиться всем, что вам нужно знать о создании Пользовательской функции.

… так что оставайтесь со мной, вы станете рок-звездой VBA в ближайшие пару минут.

Содержание

  1. Зачем вам создавать пользовательскую функцию Excel?
  2. Как создать свою первую пользовательскую функцию в Excel
  3. Как эта функция работает и возвращает значение в ячейке
  4. Как улучшить пользовательскую функцию?
  5. Как использовать пользовательскую функцию VBA
  6. Различные способы создания пользовательской функции VBA
  7. Область действия определяемой пользователем функции
  8. Ограничения пользовательской функции
  9. Заключение

Зачем вам создавать пользовательскую функцию Excel?

Как я уже сказал, в Excel много функций, которые могут помочь вам решить практически все проблемы и выполнить все виды расчетов. Но…

… Иногда в определенных ситуациях вам нужно создать пользовательскую.

Вот некоторые причины, почему вам нужно перейти к пользовательской функции.

1. Когда нет подходящей функции

Иногда бывает, что вам нужно что-то вычислить, и для этого нет подходящей встроенной функции.

Например, подсчет слов в ячейке, в этом случае пользовательская функция — идеальное решение.

Function MyWordCount(rng As Range) As Integer

MyWordCount = UBound(Split(rng.Value, " "), 1) + 1

End Function
пример пользовательской функции

2. Заменить сложную формулу

Если вы работаете с формулами, то вы знаете, что сложные формулы бывает трудно читать самому, а другим пользователем еще сложнее.

Пользовательская функция может решить эту проблему.

Пример сложной пользовательской функции

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

3. Когда вы не хотите использовать SUB

Хотя вы можете использовать код VBA для выполнения расчетов, но коды VBA не динамические.

Вам нужно снова запустить этот код, если вы хотите обновить свой расчет.

Но если вы преобразуете этот код в функцию, вам не нужно будет запускать этот код снова и снова.

Как создать свою первую пользовательскую функцию в Excel

Обычно для создания функции VBA необходимо выполнить следующие шаги:

  • Объявить вашу процедуру как функцию
  • Определить ее аргументы и их тип данных
  • Добавить код для расчета желаемого значения

Позвольте мне привести вам простой пример.

Вам необходимо создать функцию, которая может возвращать название дня недели из значения даты.

Да, у нас есть функция, которая возвращает номер дня недели, но не название.

Итак, давайте создадим эту функцию VBA, используя следующие шаги.

  • Прежде всего, откройте редактор VB с помощью сочетания клавиш ALT + F11 или перейдите на вкладку «Разработчик» и нажмите кнопку «Visual Basic».

откройте редактор vb для написания кода

  • Вставка модуля: щелкните правой кнопкой мыши в окне проекта VBA, затем перейдите к Insert и после этого нажмите «Module».
добавить модуль в редакторе VBA, чтобы написать ПФ
  • Следующим шагом является определение имени для функции, здесь я использую «myDayName». Поэтому вы должны написать «Function mydayName».
написать имя пользовательской функции VBA

Почему «Function» перед именем?

Поскольку вы создаете функцию VBA, то используете слово «Function». Excel понимает, что этот код следует рассматривать как функцию

  • После этого вам нужно определить аргументы для пользовательской функции. Поэтому вставьте начальные скобки и напишите «InputDate As Date».
следующий шаг для добавления аргумента в пользовательскую функцию
  • Здесь InputDate — имя аргумента, а date — его тип данных. Всегда лучше определить тип данных для аргумента.
  • Теперь закройте скобки и напишите «As String». Здесь вы определяете тип данных результата, возвращаемого функцией. Так как вы хотите, чтобы название дня недели было текстовым, его тип данных должен быть «String».
после этого определить тип данных для ПФ
  • В конце нажмите ENTER.

На этом этапе имя вашей функции, ее аргумент, тип данных аргумента и тип данных функции определены, и у вы должны видеть что-то вроде этого в вашем модуле:

Пользовательская функция VBA после определения аргументов имени

Теперь между «Function» и «End Function» вам нужно сделать расчет.

В Excel есть функция рабочего листа под названием «Text», давайте используем ее здесь. Для этого вам нужно написать следующий код:

myDayName = WorksheetFunction.Text (InputDate, "dddddd")

С помощью этого кода вы определяете значение, которое должно быть возвращено функцией.

после написания кода для использования в пользовательской функции vba
  • Теперь закройте редактор VB и вернитесь к рабочему листу.
  • В ячейке B2 введите «= myDayName (A2)», нажмите Enter, и у вы увидите название дня недели.
вставьте свою собственную функцию VBA в лист

Поздравляю! Вы только что создали свою первую пользовательскую функцию!

Как эта функция работает и возвращает значение в ячейке

Вы создали свою первую пользовательскую функцию, но дело в том, что нужно еще понять, как она работает.

Можно сказать в двух словах, это код VBA, но мы используем его как функцию. Давайте разбираться.

  • Вы вводите код в ячейку как функцию и указываете ссылку на ячейку
  • Excel запускает код функции и использует значение, которое вы указали
  • Вы получаете результат в ячейке

А теперь детали: в тот момент, когда вы вводите код в ячейку и ссылаясь на другую, код выполняется, используя указанное вами значение для возврата результата.

Давайте чуть медленнее:

Есть код для функции, которую мы создали, и вы знаете, что в этом коде. Правильно?

Когда вы ссылаетесь на ячейку в вашей функции, этот блок кода работает для вычисления значения. Он берет дату из аргумента InputDate и возвращает название дня недели.

как работает пользовательская функция

Важно: когда вы пишете код для пользовательской функции, вам нужно позаботиться о том, чтобы значение, возвращаемое этим кодом, было присвоено имени функции.

Как улучшить пользовательскую функцию?

Вы уже знаете, как создать пользовательскую функцию VBA. Но…

Есть одна вещь, о которой вы должны позаботиться: код, который вы используете должен быть достаточно хорош, чтобы использовать все возможности.

Если говорить о функции, которую вы только что написали выше, да вы можете вернуть название дня недели из даты. Но… Что если указанное вами значение не будет датой? А если указанная вами ячейка пуста?

Могут быть и другие проблемы, но я уверен, что вы поняли, о чем я.

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

Прежде всего, вам нужно изменить тип данных аргумента и использовать:

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

Далее нам нужно использовать оператор VBA IF, чтобы проверить InputDate для некоторых условий. Первое условие — пустая ячейка или нет. И для этого вам нужно использовать следующий код:

If InputDate = "" Then
myDayName = ""

Функция ничего не будет возвращать, если указанная вами ячейка будет пустой. Одна проблема решена, давайте перейдем к следующей.

Помимо даты есть возможности, что значение может быть числом или текстом. Поэтому необходимо создать условие, которое будет проверять, является ли указанное значение действительной датой или нет. Код такой:

If IsDate (InputDate) = False Then
myDateName = ""

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

Таким образом, после добавления вышеуказанных условий код будет выглядеть так:

Функция myDayName (InputDate As Variant) в виде строки

Function myDayName(InputDate As Variant) As String
If InputDate = "" Then
myDayName = ""
Else
If IsDate(InputDate) = False Then
myDateName = ""
Else
myDayName = WorksheetFunction.Text(InputDate, "dddddd")
End If
End If
End Function

Я думаю, что вы можно внести еще некоторые изменения в эту функцию, но я уверен, что суть вы уловили.

Как использовать пользовательскую функцию VBA

Научившись создавать функцию VBA в Excel, нужно узнать, как вы можете ее использовать. И в этой части статьи я расскажу вам, как и где вы можете это делать.

Итак, давайте начнем.

1. На рабочем листе

Почему мы создаем пользовательскую функцию? Чтобы использовать ее на рабочем листе. Вы можете просто использовать ПФ на листе, используя знак равенства и введя имя функции, а затем указав ее аргументы.

вставить пользовательскую функцию в лист, набрав

Вы также можете ввести пользовательскую функцию из библиотеки функций.

Перейдите на вкладку «Формулы» ➜ «Вставить функцию» ➜ «Определенные пользователем».

вставить пользовательскую функцию в лист из библиотеки

Из списка можно выбрать функцию, которую хотите вставить.

2. Использование в других подпроцедурах и функциях

Вы также можете использовать функцию в других функциях или в процедуре «Sub».

Ниже приведен код VBA, в котором мы использовали функцию, чтобы получить название дня недели для текущей даты.

Sub todayDay()
MsgBox "Сегодня " & myDayName(Date)
End Sub

3. Доступ к функциям из другой книги

Если у вас есть ПФF в одной рабочей книге и вы хотите использовать его в другой или во всех рабочих книгах, вы делаете это путем создания надстройки для нее. Выполните следующие простые шаги:

  • Прежде всего, вам нужно сохранить файл (в котором у вас есть код пользовательской функции) в виде надстройки.
  • Для этого перейдите на вкладку «Файл» ➜ «Сохранить как» ➜ «Надстройки Excel (.xalm)».
Сохранить как надстройку
  • После этого дважды щелкните на надстройку и установите ее.
  • нажмите добавить, чтобы добавить все определенные пользователем функции в другую книгу
Надстройка

Теперь вы можете использовать все свои функции VBA в любой книге.

Различные способы создания пользовательской функции VBA

Когда мы используем встроенные функции, они имеют разные типы аргументов. В этом разделе руководства вы узнаете, как создать ПФ с аргументами другого типа.

  • без каких-либо аргументов
  • только с одним аргументом
  • с несколькими аргументами
  • использование массива в качестве аргумента

1. Без каких-либо аргументов

Помните есть такие функции, как СЕЙЧАС и СЕГОДНЯ, в которых вам не нужно вводить какие-либо аргументы? Вы можете создать пользовательскую функцию, в которой вам тоже не нужно вводить аргумент. Сделаем это на примере:

Давайте создадим пользовательскую функцию, которая может возвращать местоположение текущего файла.

Вот код:

Function myPath() As String
Dim myLocation As String
Dim myName As String
myLocation = ActiveWorkbook.FullName
myName = ActiveWorkbook.Name
If myLocation = myName Then
myPath = "Файл еще не сохранен."
Else
myPath = myLocation
End If
End Function

Эта функция возвращает путь к месту, где хранится текущий файл, и, если рабочая книга нигде не сохранена, будет отображаться сообщение «Файл еще не сохранен».

создание пользовательской функции без аргумента

Теперь, если вы обратите пристальное внимание на код этой функции, вы не увидите ни одного аргумента (в скобках). Вы определяете тип данных для результата функции. Основное правило создания функции без аргументов — это код, в который вам не нужно ничего вводить. Проще говоря, значение, которое вы хотите получить взамен функции, должно вычисляться автоматически.

Этот код «ActiveWorkbook.FullName» возвращает местоположение файла, а этот «ActiveWorkbook.Name» возвращает имя. Так что здесь вам не нужно ничего вводить.

2. Только с одним аргументом

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

Это функция нужна для извлечения URL-адреса из гиперссылки.

Function giveMeURL(rng As Range) As String
On Error Resume Next
giveMeURL = rng.Hyperlinks(1).Address
End Function

В этой функции у вас есть только один аргумент.

простая пользовательская функция для извлечения URL из гиперссылки

Когда вы напишите функцию, а затем укажите ячейку, в которой у вас есть гиперссылка, она вернет URL-адрес.

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

rng.Hyperlinks (1) .Address

rng ​​- это то, что вам нужно указать.

3. С несколькими аргументами

Обычно большинство встроенных функций Excel имеют несколько аргументов. Поэтому вам необходимо узнать, как создать пользовательскую функцию с несколькими аргументами. Давайте рассмотрим пример:

Вы хотите удалить определенные буквы из текстовой строки и получить оставшуюся часть. У вас есть такие функции, как RIGHT и LEN, которые вы собираетесь использовать в этой пользовательской функции. Но здесь они нам не понадобятся. Все, что нам нужно, это пользовательская функция, использующая VBA.

Итак, вот функция:

Function removeFirstC(rng As String, cnt As Long) As String
removeFirstC = Right(rng, Len(rng) - cnt)
End Function

Итак, посмотрим:

функция VBA с несколькими аргументами

В этой функции у вас два аргумента:

  • rng: в этом аргументе вам нужно указать ячейку, из которой вы хотите удалить символ текста.
  • cnt: а в этом аргументе вам нужно указать количество символов для удаления (если вы хотите удалить более одного символа из текста).

Когда вы вводите ее в ячейку, она работает примерно так:

3.1 Создание пользовательской функции с необязательным и обязательным аргументом

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

Как создать пользовательскую функцию в Excel, используя VBA

Но можно сделать этот аргумент необязательным, чтобы он принимал значение по умолчанию. Чтобы сделать аргумент необязательным, вам просто нужно добавить «Optional» перед ним.

4. Использование массива в качестве аргумента

Есть несколько встроенных функций, которые могут принимать аргументы в виде массива, также вы можете сделать свою собственную функцию VBA. Давайте рассмотрим простой пример: вам нужно создать функцию, в которой вы суммируете значения из диапазона, в котором у вас есть числа и текст.

Function addNumbers(CellRef As Range)
Dim Cell As Range
For Each Cell In CellRef
If IsNumeric(Cell.Value) = True Then
Result = Result + Cell.Value
End If
Next Cell
addNumbers = Result
End Function

В приведенном выше коде функции мы использовали весь диапазон A1: A10 вместо одного значения или ссылки на ячейку.

пользовательская функция VBA для суммирования чисел

Используем цикл FOR EACH, он проверяет каждую ячейку диапазона и суммирует значение, если в ячейке есть число.

Область действия определяемой пользователем функции

Проще говоря, область действия функции означает, может ли она вызываться из других процедур или нет. UDF может иметь два разных типа областей действия:

1. Public

Вы можете сделать свою пользовательскую функцию общедоступной, чтобы ее можно было вызывать во всех рабочих листах рабочей книги. Для этого вам просто нужно использовать слово «Public», как показано ниже.

делаем функцию общедоступной

Функция является Public по умолчанию, если вы не делаете ее Private. Во всех приведенных нами примерах все функции общедоступны.

2. Private

Когда вы делаете функцию Private, вы можете использовать ее в процедурах того же модуля.

добавить приват перед именем пользовательской функции vba

Допустим, если у вас есть функция в «Module1», вы можете использовать ее только в процедурах, которые вы используете в «Module1». И она не появится в списке функций на рабочем листе (когда вы используете знак = и пытаетесь ввести имя), но вы все равно можете использовать ее, введя ее название полностью и указав аргументы.

Ограничения пользовательской функции

Пользовательские функции супер полезны. Но они ограничены в некоторых ситуациях. Вот несколько вещей, которые нужно записать и запомнить при создании пользовательской функции в VBA:

  • Вы не можете изменять, удалять или форматировать ячейки и диапазон с помощью пользовательской функции.
  • Также нельзя перемещать, переименовывать, удалять или добавлять рабочие листы в рабочую книгу.
  • Не сможете вносить изменения в значение другой ячейки.

Есть ли разница между встроенной функцией и пользовательской функцией?

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

  • Медленнее, чем встроенная. Если вы сравните скорость встроенных функций и функции VBA, вы обнаружите, что первые быстрее. Причина в том, что встроенные функции написаны с использованием C ++ или FORTRAN.
  • Трудно обмениваться файлами. Мы часто обмениваемся файлами по электронной почте и в облаке, поэтому, если вы используете какую-либо из пользовательских функций, вам необходимо поделиться этим файлом в формате «xlam», чтобы другой человек также мог использовать вашу пользовательскую функцию.

Но все равно, есть ситуации, когда пользовательские функции будут незаменимы.

Заключение

Создать пользовательскую функцию просто.

Все, что вам нужно сделать, это использовать «Function» перед названием, чтобы определить его как функцию, добавить аргументы, определить тип данных аргументов, а затем определить тип данных для возвращаемого значения.

простая иллюстрация, чтобы понять, как создать пользовательскую функцию

В конце добавьте код, чтобы вычислить значение, которое вы хотите получить от функции.

Это самое простое руководство, как создать пользовательскую функцию в VBA, и я надеюсь, вы нашли ее полезной.

Один из посетителей нашего сайта оставил идею сделать в Excel кнопку, по которой можно было бы переходить в Контакт, просто и удобно. Идею поддержали еще 4 человека и мы решили привести простой пример реализации этой задумки.

Сегодня мы рассмотрим как написать собственный макрос, функцию, произвести установку надстройки и попробуем создать собственную вкладку в ленте Excel.

Итак, задача: добавить в Excel, возможность выхода вКонтакт.

Для этого нам потребуется объявить обозреватель, открыть его и перейти по ссылке ресурса.

Создадим функцию VK для выхода в Контакт:

Function vk()
Dim ie As Object
Set ie = CreateObject(«InternetExplorer.Application»)
ie.Visible = True
ie.Navigate «http://vkontaktui.ru/»
End Function

где http://vkontaktui.ru/ — анонимайзер Контакта (если на работе Контакт закрыт), можно подставить привычный http://vk.com/ или любой другой сайт.

Копируем в наш документ:

функция перехода в Контакт

функция перехода в Контакт

Теперь переходим на любой лист Excel и пишем формулу =vk() после ввода формулы в любую ячейку и нажатия кнопки Enter будет открываться IE с указанным адресом.

Второй вариант.

Для удобства использования пропишем функцию в Макрос:

Sub vkcom()

Function vk()
Dim ie As Object
Set ie = CreateObject(«InternetExplorer.Application»)
ie.Visible = True
ie.Navigate «http://vkontaktui.ru/»
End Sub

функция в макросе

функция в макросе
Теперь у нас есть несколько больше возможностей по использованию функции вызова EI. Например, мы можем назначить макрос на кнопку:

Назначение макроса

Теперь сделаем из этого файла надстройку и разместим кнопки быстрого запуска в Ленте и На панели быстрого доступа.

Делается это очень просто. Сохраним makros.xlsm как mkrs.xlа (скачать mkrs.xla)

Откроем новый документ Excel. Перейдем в меню Файл >> Параметры >>Надстройки

появится новое окно:

Параметры Excel

Параметры Excel

В управлении выбираем «Надстройки Excel» и кликаем кнопку перейти. Появится новое окно «Надстройки» , через Обзор выбираем созданный файл mkrs.xlа:

Установка надстройки

Установка надстройки
Теперь выведем макрос на Панель быстрого доступа, сделаем это через меню Параметры :

Кнопка панели быстрого запуска

И добавим новую вкладку на Ленту:

Лента

Лента

(Создаем вкладку, группу, называем как нам нравится и добавляем наш макрос).

теперь любой Excel на нашем компьютере будет иметь слегка измененный вид, в котором работает новая функция =VK() и две кнопки:

Excel с включенной надстройкой

Excel с включенной надстройкой

Надеемся статья была вам полезна. Будем благодарны, если Вы нажмете +1 и/или Мне нравится или поделитесь с друзьями с помощью кнопок ниже. Если у Вас остались вопросы — задавайте!

Спасибо.

Загрузка надстройки «Пакет анализа» в Excel

​Смотрите также​ идентификаторы), а в​ привычного описания функции​ макрос​Наш макрос​Перейти (Go)​ Add-in)​ закладке «Protection» в​ из выпадающего списка​ их множество.​ выполнять другие операции.​ формате или в​ Excel добавляются новые​ надстройки, которые не​ предоставляется компанией AnalystSoft.​ и перезапустите его.​.​При проведении сложного статистического​label​

​ в нижней части​FormulasToValues​FormulasToValues​в нижней части​- отдельного файла​ поле ввода «Password:»​ «Управление:» укажите на​Автор: Александр Сорокин​Используя данный набор макросов,​ формате даты и​ функции, команды, что​ используются или применяются​Корпорация Майкрософт не поддерживает​Теперь на вкладке​Если​ или инженерного анализа​- названия нашей​

​ окна. Чтобы его​можно поместить на​

  1. ​, как легко сообразить,​​ окна. В открывшемся​​ особого формата (xlam),​​ введите пароль для​​ опцию «Надстройки Excel»​​Надстройки Excel – это​​ можно отбирать строки​

    ​ времени.​ характерно и для​​ редко, необходимо выгружать.​ Изображение кнопки Office​ эти продукты.​Данные​​Пакет анализа​​ можно упростить процесс​

  2. ​ вкладки и группы​​ добавить придется проделать​​ панель кнопкой​​ преобразует формулы в​​ окне жмем кнопку​​ содержащего все ваши​​ защиты доступу к​

    ​ и нажмите на​ прекрасная альтернатива создания​ на основе заданной​Используя данный набор макросов,​​ других подобных макросов,​​ Выгрузка удаляет команды​Надстройки Excel позволяют задействовать​​доступна команда​​отсутствует в списке​

  3. ​ и сэкономить время,​​ кнопок на ней:​​ следующие действия:​​Добавить (Add)​​ значения в выделенном​Обзор (Browse)​​ «любимые» макросы. Плюсы​​ макросам проекта рабочей​

    • ​ кнопку «Перейти».​​ макросов доступных для​​ ячейки.​ можно создавать Динамический​​ но, помимо этого,​​ и возможность запуска​​ какие-то новые возможности​​Анализ данных​

    • ​ поля​ используя надстройку «Пакет​При помощи кнопки​Откройте редактор Visual Basic​и выбрать для​​ предварительно диапазоне. Иногда​​и указываем положение​

​ такого подхода:​​ книги. В поле​В появившемся диалоговом окне​ использования любых других​При вводе формул показываются​ Именованный Диапазон. Он​​ использование данного мини-приложения​​ набора макросов в​ и свойства, которые​.​Доступные надстройки​ анализа». Для анализа​button​​ сочетанием клавиш Alt+F11​​ него значок кнопкой​​ такие макросы называют​​ нашего файла надстройки.​

​Достаточно будет​​ ввода «Confirm password:»​ «Надстройки» нажмите на​ файлов рабочих книг.​ стрелки, отображающие зависимости.​ по образу и​ уменьшит затраты времени​ электронных таблицах, но​ не присущи по​

​Существует несколько сторонних надстроек,​, нажмите кнопку​ данных с помощью​на панели слева​

  1. ​Выделите надстройку в панели​​Изменить (Edit)​​ еще​​Если вы все сделали​​один раз подключить надстройку​

  2. ​ введите пароль повторено​​ кнопку «Обзор», а​​ Если Вам понравиться​​ Книгу и диапазон​​ подобию таблиц в​ на выполнение однотипных​​ не деинсталлирует саму​​ умолчанию данной программе.​

    1. ​ обеспечивающих функциональные возможности​​Обзор​​ этого пакета следует​ добавляем заготовку кода​​ Project и нажмите​​:​​процедурами​​ правильно, то наша​

    2. ​в Excel -​ и нажмите на​ после найдите и​ создавать свои надстройки​ ячеек можно очистить​​ Word сжимается и​​ действий, автоматизировав данный​

    3. ​ надстройку по пути​Файлы, содержащие подобные дополнения,​

      ​ надстройки «Пакет анализа»​​, чтобы выполнить поиск.​​ указать входные данные​​ для кнопки и​​ клавишу F2, чтобы​

Я не могу найти надстройку «Пакет анализа» в Excel для Mac 2011

​Кроме​. Чтобы его запустить,​MyExcelAddin​ и можно будет​

​ кнопку ОК.​​ найдите свое название,​ и вы войдете​ от лишнего в​ расширяется при вводе​ вид работы. Данную​ установки, поэтому при​ имеют расширение xla​ в Excel 2011.​Если появится сообщение о​

  1. ​ и выбрать параметры;​ дописываем к ней​

  2. ​ открыть окно Object​макросов-процедур​ нужно выделить ячейки​должна появиться в​

  3. ​ использовать её VBA​Даже если вы не​

  4. ​ на против него​ во вкус, то​ любой момент времени.​ данных. Помимо того​ надстройку нельзя назвать​

  5. ​ необходимости она может​ в версиях до​Вариант 1.​ том, что надстройка​ расчет будет выполнен​ теги:​ Browser​, существуют еще и​ с формулами и​ списке доступных надстроек:​

​ процедуры и функции​​ умеете программировать, то​ поставьте галочки и​ это полезное и​Plex позволяет менять местами​ что данный диапазон​

​ просто макросом, это​ быть загружена снова.​ 2007 или xlam,​    Скачайте дополнительный компонент XLSTAT​ «Пакет анализа» не​ с помощью подходящей​- label​

  1. ​Выберите в верхней части​макросы-функции​ открыть специальное диалоговое​

  2. ​Наша надстройка подключена к​ в любом файле​ существует множество мест​ нажмите на кнопку​

  3. ​ интересное занятие может​ столбцы и строки,​ может использоваться в​ комплекс последних, что​

    ​ После выгрузки доступность​​ начиная с него​

    • ​ для Mac и​ установлена на компьютере,​ статистической или инженерной​- это текст​ окна в выпадающем​или как их​ окно​

    • ​ Excel и успешно​ на этом компьютере.​

support.office.com

Надстройки Excel: обзор, особенности и требования

​ (книги, сайты, форумы),​ «Ок». Если вы​ еще для вас​ строить мини-гистограммы. Данная​ повседневной работе Excel,​

Расширение надстроек

​ и называется набором.​ набора макросов остается​ соответственно. В данный​ используйте его в​ нажмите кнопку​ макрофункции, а результат​ на кнопке​ списке свой проект​ еще называют​Макросы​ работает, но в​ Пересохранять ваши рабочие​ где можно найти​ не находите названия​ приносить неплохой доход.​

Типы надстроек

​ надстройка позволяет осуществлять​ с его помощью​

  • ​ В состав программы​

  • ​ до момента перезапуска​ формат можно сохранять​ Excel 2011. XLSTAT содержит​Да​ будет помещен в​- imageMso​ надстройки​UDF​с вкладки​ ней нет пока​

  • ​ файлы в xlsm-​

Установка

надстройки excel

​ готовый код макросов​ нажмите на кнопку​ Надстройки можно публиковать​ почтовую рассылку по​ можно создавать динамические​ входит более 25​ Excel.​ и собственные файлы,​ более 200 базовых​, чтобы ее установить.​ выходной диапазон. Некоторые​- это условное​Щелкните по появившейся функции​(​Разработчик (Developer — Macros)​ ни одного макроса.​ и xlsb-форматы, таким​

​ на VBA для​ «Обзор», чтобы указать​ и продавать в​ различным электронным адресам.​

Загрузка и выгрузка

надстройка для microsoft excel

​ диаграммы и сводные​ макросов и 80​К таким наборам макросов​ которые будут использоваться​ и расширенных статистических​Примечание:​ инструменты позволяют представить​ название изображения на​ правой кнопкой мыши​User Defined Function =​или сочетанием клавиш​ Давайте её наполним.​

​ образом, не потребуется,​ огромного количества типовых​ путь к вашему​ магазине Office Store.​ Большие таблицы могут​ таблицы.​ функций, среди которых​ относятся:​ как надстройки Excel.​ инструментов, включая все​ Для включения в «Пакет​ результаты анализа в​ кнопке. Я использовал​ и выберите команду​ пользовательская функция).​ Alt+F8. Обычно в​ Для этого нужно​ т.к. исходный код​ задач в Excel.​ файлу с надстройкой.​ В данном примере​

Стандартные надстройки, идущие вместе с электронными таблицами

надстройки ms excel

​ быть распределены на​На любую команду можно​

  • ​ есть такие, как​«Пакет анализа», с помощью​ Для этого при​ функции надстройки «Пакет​ анализа» функций Visual​ графическом виде.​ иконку с красной​Properties​Давайте создадим в​
  • ​ этом окне отображаются​ открыть редактор Visual​ будет храниться не​ По моему опыту,​
  • ​Надстройка VBA готова! Теперь​ мы покажем, как​ несколько страниц по​ назначить свои горячие​ ДАТАИЗСТРОКИ, ФАМИЛИЯ и​ которого Excel получает​ сохранении книги необходимо​

сумма excel надстройка

  • ​ анализа».​ Basic для приложений​Функции анализа данных можно​ кнопкой, которая имеет​
  • ​.​ нашей надстройке отдельный​ доступные макросы из​ Basic сочетанием клавиш​ в них, а​ большинство пользователей рано​ во всех открытых​
  • ​ создать свою достройку​ заданным условиям. Внешние​ клавиши.​ другие.​ возможность совершать статистические,​ в диалоговом окне​Перейдите на страницу скачивания​ (VBA) можно загрузить​ применять только на​
  • ​ название AnimationCustomAddExitDialog. Названия​Введите описание функции в​ модуль (команда меню​ всех открытых книг,​ Alt+F11 или кнопкой​ в файле надстройки.​ или поздно собирают​ рабочих книгах можно​ с макросом, написанным​

Надстройка VBA-Excel

надстройка vba excel

​ связи книги могут​Эта надстройка имеет полезное​Установка осуществляется включением в​ инженерные или финансовые​ «Сохранить» выбрать «Тип​ XLSTAT.​ надстройку​ одном листе. Если​ всех доступных кнопок​ окно​Insert — Module​ но макросы надстроек​Visual Basic​Защита​ свою личную коллекцию​ будет воспользоваться макросами​ на коде самого​ быть разорваны или​ свойство по добавлению​ параметрах макросов, а​ функции, некоторые из​ файла» xlam.​Выберите версию XLSTAT, соответствующую​Пакет анализа VBA​ анализ данных проводится​ (а их несколько​Description​) и вставим туда​ здесь не видны.​

​на вкладке​от макросов вас​ макросов для автоматизации​ из вашего *.xla​ простого и весьма​ открыты. Некоторые листы​ функций данного набора​ также постановкой галочки​ которых доступны через​Надстройки Excel можно подразделить​ вашей операционной системе​. Для этого необходимо​ в группе, состоящей​ сотен!) можно найти​Сохраните файл надстройки​ код такой функции:​

Plex

​ Несмотря на это,​Разработчик (Developer)​ тоже беспокоить уже​ рутинных процессов, будь​ файла. Чтобы убедиться​ востребованного языка программирования​ из различных файлов​ макросов в книгу,​ напротив пункта «Доверять​ стандартные формулы, но​ на три типа:​

​ Mac OS, и скачайте​ выполнить те же​ из нескольких листов,​ на большом количестве​

​и перезапустите Excel​Несложно сообразить, что эта​ мы можем ввести​. Если вкладки​ не будет, т.к.​ то перевод формул​

​ в этом снова​ VBA (Visual Basic​ могут быть скопированы​ после чего их​ доступ к объектной​ обеспечивающие иной формат​самой программы;​ ее.​ действия, что и​ то результаты будут​

​ сайтов в интернете,​.​ функция нужна для​ имя нашей процедуры​Разработчик​ надстройки по определению​ в значения, вывод​ откройте редактор Visual​ for Applications).​ в один. В​

надстройка excel plex

​ можно будет использовать​ модели проектов VBA».​ вывода.​COM-надстройки (для модели компонентных​Следуйте инструкциям по установке​ для загрузки надстройки​ выведены на первом​ если искать по​После перезапуска у функции​ извлечения НДС из​ в поле​не видно, то​ входят в доверенные​ суммы прописью или​ Basic (ALT+F11).​

​Чтобы создать, добавить и​ ячейке можно создать​ на тех компьютерах,​

​ Загрузка производится таким​«Пакет анализа VBA», предоставляющий​ объектов) — за​ для Mac OS.​ «Пакет анализа». В​ листе, на остальных​ ключевым словам «imageMso».​ должно отобразиться описание,​ суммы включающей НДС.​

​Имя макроса (Macro name)​ её можно отобразить​ источники.​ суммирования ячеек по​Как видно ее теперь​ включить свою надстройку​ выпадающий список. Plex​ где Plex не​

​ же образом, как​ возможность программистам публиковать​ счет этих файлов​Откройте файл Excel с​ окне​ листах будут выведены​ Для начала можно​ которое мы ввели:​ Не бином Ньютона,​, а затем нажать​ через​Можно сделать​ цвету. И тут​ всегда можно найти​ с макросом, следует:​ позволяет сортировать строки​ устанавливался.​

​ и других надстроек.​ функции, предоставляемые предыдущей​ увеличиваются возможности рассматриваемого​ данными и щелкните​Доступные надстройки​ пустые диапазоны, содержащие​ сходить сюда.​

​Финальным, хоть и не​ конечно, но нам​ кнопку​Файл — Параметры -​отдельную вкладку​ встает проблема -​ в списке проектов​Создайте новую рабочую книгу:​ по цвету заливки​

​Использование данной надстройки позволяет​ Во время загрузки​ надстройкой.​ приложения из-за появления​ значок XLSTAT, чтобы​установите флажок​

​ только форматы. Чтобы​-​ обязательным, но приятным​ для примера сгодится,​

​Выполнить (Run)​ Настройка ленты (File​на ленте Excel​ код макросов на​ и использовать все​ «ФАЙЛ»-«Создать»-«Пустая книга». Или​

​ или в случайном​ извлекать уникальные элементы​ появится окно регистрации,​«Мастер суммирования». Эта надстройка​ новых функций и​ открыть панель инструментов​Пакет анализа VBA​ провести анализ данных​onAction​ штрихом будет создание​ чтобы показать основные​- и наш​ — Options -​ с красивыми кнопками​ Visual Basic нужно​ ее макросы в​ нажмите комбинацию горячих​ порядке. Листы книги​ из некоторого списка​ которое можно заполнить​ «Сумма» в Excel,​ команд, которые разработаны​ XLSTAT.​.​

​ на всех листах,​- это имя​ отдельной вкладки с​ принципы.​

​ макрос заработает:​ Customize Ribbon)​ для запуска макросов​ где-то хранить, чтобы​

Макрос «Сумма прописью»

надстройка сумма прописью в excel

​ любых других файлах.​ клавиш CTRL+N.​ можно сохранять отдельными​ по заданной колонке.​ любыми данными, и​ которая автоматически суммирует​ определенными пользователями, они​Вы получите доступ ко​Примечание:​ повторите процедуру для​ процедуры обратного вызова​ кнопкой запуска нашего​Заметьте, что синтаксис функции​Здесь же можно​

​.​ надстройки.​ потом использовать в​​Откройте редактор макросов: «РАЗРАБОТЧИК»-«Код»-«Visual​ файлами.​ Извлекаемые элементы могут​

В заключение

​ лучше отметить «Я​ те значения, которые​ имеют расширения exe​ всем функциям XLSTAT​ Надстройка «Пакет анализа» для​ каждого листа в​ — специального короткого​ макроса, которая будет​ отличается от процедуры:​ назначить сочетание клавиш​В левом верхнем углу​Надстройка — это отдельный​ работе.​

​Чтобы отключить вашу надстройку​

fb.ru

Как создать и добавить надстройку в Excel с кодом VBA

​ Basic».​Помимо этого, можно осуществлять​ быть выделены или​ гуру Excel, мне​ определены в условии.​ или dll;​ на 30 дней. Через​ Excel для Mac 2011​ отдельности.​ макроса, который будет​ появляться в интерфейсе​используется конструкция​ для быстрого запуска​ редактора должно быть​ файл. Его​Самый простой вариант -​ снова откройте окно​Вставьте новый модуль выбрав​ сравнение диапазонов, копирование​ из них можно​ это не интересно».​ С 2010-й версии​автоматизации.​ 30 дней можно будет​ недоступна. Дополнительные сведения​

Как сделать и установить надстройку в Excel

​Windows Mac OS​ запускать наш основной​ Excel после подключения​

  1. ​Function …. End Function​ макроса — за​ окно​легко переносить​Создать файл XLA.
  2. ​ сохранять код макросов​ «ФАЙЛ»-«Параметры»-«Надстройки»-«Перейти» и снимите​Редактор Visual Basic.
  3. ​ инструмент: «Insert»-«Module».​ формул без сдвига​Код макроса.
  4. ​ сформировать новый список.​Надстройка Excel Plex позволяет​ не поддерживается.​Стандартный набор получают вместе​​ использовать бесплатную версию,​
    ​ см. в разделе​ ​
    ​ макрос​ нашей надстройки.​
    ​вместо​
    ​ это отвечает кнопка​
    ​Project​с компьютера на​ прямо в рабочем​ соответственную галочку в​
    ​В окне модуля введите​
  5. ​ диапазона.​Помимо этого, можно менять​ осуществлять ввод сложных​«Пересчет в евро» вызывает​ с программой Excel.​ которая включает функции​ Я не могу​Откройте вкладку​FormulasToValues​Информация об отображаемых вкладках​Sub … End Sub​Параметры (Options)​(если его не​ компьютер, делиться им​ файле, зайдя в​ появившемся диалоговом окне.​Сохранение совместимости.
  6. ​ свой код макроса.​Здесь перечислены только основные​ размер диапазона ячеек,​ формул. Введя ее​ функцию EUROCONVERT, которая​
  7. ​ Дополнительные надстройки могут​ надстройки «Пакет анализа»,​ найти надстройку «Пакет​Файл​. Назвать эту процедуру​ по умолчанию содержится​Параметры Excel.
  8. ​после названия функции в​в предыдущем окне​ видно, то включите​ с коллегами или​ редактор Visual Basic​ Для полного удаления​ Возьмем простейший пример​ возможности этой надстройки,​ тип ссылок в​ один раз, данную​ осуществляет пересчет введенных​ быть получены с​ или заказать одно​ анализа» в Excel​

Включить.

​, нажмите кнопку​ можно как угодно.​ внутри книги и​ скобках указываются её​Макрос​ его через меню​ даже продавать ;)​ с помощью сочетания​ надстройки придется удалить​

Проверка.

​ макроса:​ а их гораздо​ формулах, применять в​ форму можно сохранить​ сумм в евро.​ сайта офисных продуктов​

​ из комплексных решений​

Как удалить надстройку в Excel

​ для Mac 2011.​Параметры​ Мы добавим её​ должна быть оформлена​ аргументы​:​View — Project Explorer​Давайте рассмотрим весь процесс​ клавиш Alt+F11 и​ ее файл *.xla​

Полезные советы по надстройкам

​Sub MyMakros()​ больше.​ работе различные инструменты,​ как шаблон и​«Помощник по Интернету» -​ корпорации Microsoft. Перед​ XLSTAT.​Чтобы загрузить надстройку «Пакет​и выберите категорию​ чуть позже.​ в виде специального​в теле функции производятся​При назначении клавиш имейте​):​ создания своей собственной​ добавив новый пустой​

​ из папки C:Documents​Dim polzovatel As​При заполнении квитанций во​ позволяющие ускорить работу​ использовать в дальнейшем.​ дает возможность программистам​ загрузкой в электронные​Вариант 2.​

​ анализа» в Excel 2016​Надстройки​Проверить правильность всего сделанного​ XML-кода. Проще всего​ необходимые вычисления и​ ввиду, что здесь​В этом окне отображаются​ надстройки для Microsoft​ модуль через меню​ and SettingsUser_Name AppDataRoamingMicrosoftAddIns.​ String​ многих случаях нужно​ со сводными таблицами.​ В составе уже​ размещать данные электронных​ таблицы данные расширяющие​    Скачайте бесплатный выпуск StatPlus:mac​

exceltable.com

Как создать свою надстройку для Microsoft Excel

​ для Mac, выполните​.​ можно с помощью​ писать и редактировать​ затем результат присваивается​ учитывается регистр и​ все открытые книги​ Excel по шагам.​Insert — Module​Внимание! В данном примере​Dim data_segodnya As​ проставить сумму не​ Plex имеет встроенный​ находятся более 50​ таблиц от Microsoft​ приложения необходимо установить.​ LE с сайта​ указанные ниже действия.​Если вы используете Excel 2007,​ кнопки с зеленой​ такой код с​ переменной с названием​ раскладка клавиатуры. Поэтому,​ и запущенные надстройки​Открываем Microsoft Excel с​:​

​ мы использовали формат​ Date​ только цифрами, но​ календарь, с помощью​ встроенных формул и​ в Глобальной сети​ Они могут быть​ AnalystSoft и используйте​Откройте меню​​ нажмите​​ галочкой сверху на​

Добавление модуля в книгу

​ помощью специальных программ​ функции​

  • ​ если вы назначите​ Microsoft Excel, в​ пустой книгой и​При таком способе возникает,​ рабочей книги для​polzovatel = Application.UserName​ и прописью. Есть​​ которого можно осуществить​​ различных функций.​
  • ​ при использовании синтаксиса​​ установлены в каталог​ его вместе с​​Сервис​кнопку Microsoft Office​ панели инструментов. Там​
  • ​ — XML-редакторов. Одна​​Также обратите внимание, что​​ сочетание, например, Ctrl+Й,​ том числе и​ сохраняем ее под​ однако, несколько неудобств:​ сохранения файла в​data_segodnya = Now​ дополнительная надстройка MS​

​ мгновенный ввод даты​В данной надстройке имеется​​ рассматриваемой надстройки.​ (папку) Library или​​ Excel 2011.​и выберите​, а затем​ же рядом нажмите​ из самых удобных​

  • ​ эту функцию не​​ то, по факту,​​ наша​ любым подходящим именем​Если рабочих файлов много,​ формате «Надстройка 97-2003».​MsgBox «Макрос запустил​ Excel, которая позволяет​ в ячейку, конвертер​ форма для ввода​«Мастер подстановок». Данный макрос​ одно из его​StatPlus:mac LE включает многие​Надстройки Excel​ – кнопку​ на кнопку с​
  • ​ (и бесплатных) -​​ нужно, да и​ вам придется в​VBAProject (​ (например​ а макрос нужен​ Это позволяет использовать​
  • ​ пользователь: » &​​ осуществлять последнее действие.​​ формул в значения,​ времени в заданную​ позволяет создать формулу,​ вложений, расположенных по​
  • ​ функции, которые были​.​​Параметры Excel​​ дискетой для сохранения​ это программа Максима​ невозможно запустить как​ будущем следить за​

​MyExcelAddin.xlam)​MyExcelAddin​ везде, как например​ ее в разных​

Шаг 1. Создаем файл надстройки

​ polzovatel & vbNewLine​ При необходимости ее​ что можно осуществить​ ячейку.​ с помощью которой​​ пути установки MS​​ ранее доступны в​В окне​​.​​ всех изменений.​ Новикова Ribbon XML​​ предыдущий макрос-процедуру через​​ тем, чтобы у​

Сохраняем файл в формате надстройки

​Выделите её мышью​) в формате надстройки​ макрос преобразования формул​ версиях Excel. Например,​ & data_segodnya​ автоматической загрузки необходимо​ как во всей​

Шаг 2. Подключаем созданную надстройку

​Помимо этого, данный набор​ осуществляется поиск данных​​ Office или в​​ надстройке «Пакет анализа»,​Доступные надстройки​В раскрывающемся списке​​Закрываем Ribbon XML Editor​ Editor.​ диалоговое окно​​ вас была включена​​ и добавьте в​​ с помощью команды​ в значения, то​ файлы, сохраненные в​​End Sub​​ разместить скачанный файл​ книге, так и​

​ макросов позволяет осуществлять​ в некотором списке​​ папке пользователяApplication DataMicrosoftAddIns.​​ такие как регрессии,​установите флажок​

Список надстроек

Шаг 3. Добавляем в надстройку макросы

​Управление​Открываем Excel, заходим в​Алгоритм работы с ней​Макросы​ именно русская раскладка​ неё новый модуль​Файл — Сохранить как​ и копировать код​ формате *.xlam не​Закройте окно редактора макросов​​ sumprop.xls в папку​​ в выделенном фрагменте.​​ бэкап книги с​​ по иному значению​​Помимо этого, надстройки Excel​​ гистограммы, дисперсионный анализ​Пакет анализа​выберите пункт​​ редактор Visual Basic​ следующий:​и кнопку​ и жать дополнительно​​ через меню​

​или клавиши F12,​ придется​ может быть использована​​ и выберите инструмент:​​ XLStart, находящуюся в​Данная надстройка снабжена менеджером​ добавлением даты и​​ из этого списка.​​ могут быть установлены​

Project Explorer

​ и t-тесты.​, а затем нажмите​Надстройки Excel​ и добавляем к​Закройте все окна Excel,​Выполнить​​ Shift, чтобы получить​​Insert — Module​​ указав тип файла​в каждую книгу​ в версии 2007​ «ФАЙЛ»-«Сохранить как» (CTRL+S).​​ папке установки программы.​​ листов, что позволяет​ времени создания резервной​ С 2010-й версии​ по иным путям,​

​Посетите веб-сайт AnalystSoft и​ кнопку​и нажмите кнопку​ нашему макросу процедуру​ чтобы не было​. Такую макрофункцию нужно​ заглавную букву.​. В этом модуле​Надстройка Excel (Excel Add-in)​.​

Код макроса

​ и старше. Поэтому​ В поле «Имя​Надстройка «Сумма прописью» в​ скрывать и показывать​ копии.​

​ не поддерживается.​​ определенным Администратором.​​ следуйте инструкциям на​ОК​Перейти​ обратного вызова​ конфликта файлов, когда​ использовать как стандартную​​Для удобства можно добавить​​ мы и будем​:​Нужно не забыть​ лучше воспользоваться старым​ файла:» введите название​​ Excel позволяет вводить​​ листы, сортировать и​​Также, используя в работе​​«Поиск решения» — осуществляет​Загрузка осуществляется после установки​ странице скачивания.​.​.​KillFormulas​ мы будем редактировать​ функцию листа (СУММ,​ и кнопку для​ хранить VBA-код наших​Обратите внимание, что стандартно​​сохранить файл в формате​​ форматом файлов надстройке​ для своей тестовой​​ прописью как денежные​​ защищать их, а​ данную надстройку, можно​

​ то, что задано​ надстройки. После совершения​После скачивания и установки​Если надстройка​Если вы используете Excel​​, чтобы она запускала​​ XML-код надстройки.​​ ЕСЛИ, ВПР…), т.е.​​ нашего макроса на​

Назначаем сочетание клавиш макросу

​ макросов надстройки.​ Excel хранит надстройки​ с поддержкой макросов​ *.xla.​ программы. А из​ суммы при использовании​ также осуществлять с​ получить курс одной​ в ее названии,​ данной операции все​ StatPlus:mac LE откройте​Пакет анализа​ для Mac, в​ наш основной макрос​Запустите программу Ribbon XML​

​ просто ввести в​ панель быстрого доступа​Код можно либо набрать​ в папке C:UsersВаше_имяAppDataRoamingMicrosoftAddIns,​(xlsm) или в​Читайте также: скачать VBA​ выпадающего списка «Тип​​ функции «СуммаПрописью», так​ ними иные действия.​ из 17 валют​ по сценариям, под​ предоставляемые данным набором​​ книгу с данными​отсутствует в списке​ строке меню откройте​ замены формул на​​ Editor и откройте​​ любую ячейку, указав​ в левом верхнем​​ «с нуля» (если​​ но, в приниципе,​ формате двоичной книги​​ код программы надстройки​​ файла:» выберите значение​ и обычные числа​​С ее помощью можно​​ с учетом ставки​

Назначаем кнопку макросу на панели быстрого доступа

Шаг 4. Добавляем в надстройку функции

​ которыми понимают входные​​ макросов возможности становятся​​ для анализа.​​ поля​​ вкладку​ значения.​​ в ней наш​​ в качестве аргумента​​ углу окна. Для​ вы умеете программировать),​​ можно указать любую​ (xlsb).​ сумма прописью с​​ «Надстройка Excel 97-2003»​​ при использовании «ЧислоПрописью».​ округлять числа, переставлять​

Пользовательская функция

​ рефинансирования на любую​ значения, подставляемые в​ доступными в электронных​Откройте StatPlus:mac LE. Функции​Доступные надстройки​Средства​Сохраняем внесенные изменения и,​ файл MyExcelAddin.xlam​ значение суммы с​

​ этого выберите​ либо скопировать откуда-нибудь​

  • ​ другую удобную вам​​При открытии такого файла​​ копейками на русском,​​ (*.xla). Автоматически откроеться​
  • ​Существуют различные надстройки для​ значения в обратном​ прошедшую дату. Данные​
  • ​ Excel. Решения подбираются​ таблицах. Они добавляются​ можно будет найти​, нажмите кнопку​и в раскрывающемся​

​ вернувшись в Excel​При помощи кнопки​ НДС:​Файл — Параметры -​ уже готовый (что​ папку.​​защита от макросов​​ украинском и английском​​ папка для установки​​ Microsoft Excel. Их​ порядке с автоматической​ берутся автоматически с​ «что-если», анализируя ячейки​ в соответствующие меню​ в меню StatPlus:mac​Обзор​ списке выберите пункт​ проверяем результат:​

Используем созданную UDF

​tabs​… или ввести через​ Панель быстрого доступа​​ гораздо проще). Давайте,​​Теперь созданную нами на​будет каждый раз​​ языке. Или перевод​​ надстроек: C:Documents and​

Выбираем пользовательскую функцию

​ назначение состоит в​ заменой формул. При​ Центробанков России, Украины​ перебора и ограничений.​ вместе с теми​ LE.​, чтобы найти ее.​

  1. ​Надстройки для Excel​Вот и всё​
  2. ​в левом верхнем​ стандартное диалоговое окно​ (File — Options​ для пробы, введем​ прошлом шаге надстройку​
  3. ​ выдавать предупреждение, которое​ числа в текст​ SettingsUser_Name AppDataRoamingMicrosoftAddIns. И​ облегчении проведения различных​
  4. ​ использовании Plex существует​ или Беларуси.​Как и после загрузки​​ командами, которые вложены​​Важно:​
  5. ​Если появится сообщение о​.​​ — надстройка готова​
  6. ​ углу добавьте заготовку​​ вставки функции (кнопка​​ — Customize Quick​

Добавляем свое описание для UDF

​ в добавленный пустой​MyExcelAddin​ нужно подтвердить (ну,​

Описание функции

Шаг 5. Создаем вкладку надстройки в интерфейсе

​ средствами Excel.​ нажмите на кнопку​ операций в данной​ возможность объединения ячеек​Надстройка позволяет генерировать в​ любого другого набора​ в коде данной​ ​ том, что надстройка​

​В диалоговом окне​ к использованию. Наполните​ кода для новой​fx​ Access Toolbar)​ модуль код простого,​надо подключить к​ или отключить защиту​Примечание. Если вы хотите​ «Сохранить».​ программе, добавлении отсутствующих​ с сохранением текста​ выделенный диапазон ячеек​ макросов, на ленте​ надстройки Excel.​

​В Excel 2011 отсутствует справка​ «Пакет анализа» не​

  1. ​Надстройки​ её своими процедурами​ вкладки:​в строке формул),​, а затем в​
  2. ​ но полезного макроса:​ Excel. Для этого​ полностью, что может​ защитить паролем доступ​
  3. ​Перед тем как установить​​ функций, сокращении затрат​​ при использовании символа-разделителя.​ случайные числа, которые​ или в меню​При слишком большом количестве​
    Добавляем новую вкладку для надстройки
  4. ​ по XLStat и​ установлена на компьютере,​​установите флажок​​ и функциями, добавьте​В пустые кавычки нужно​ выбрав категорию​​ выпадающем списке в​​После набора кода не​ идем в меню​ быть не всегда​
    Добавляем id и названия
  5. ​ к своим исходным​​ надстройку в Excel,​​ времени на выполнение​Данная надстройка снабжена инструментом​ могут быть как​ электронных таблиц появятся​ загруженных макросов может​
    Добавляем кнопку
    ​ StatPlus:mac LE. Справка​​ нажмите кнопку​Пакет анализа​
    ​ красивые кнопки -​​ вписать​Определенные пользователем (User Defined)​ верхней части окна​ забудьте нажать на​Файл — Параметры -​ желательно).​ кодам макросов, тогда​ закройте все открытые​ рутинных действий. В​ по форматированию текста,​ дробными, так и​ новые команды или​ снизиться производительность работы​ по XLStat предоставляется​Да​
    ​, а затем нажмите​ ​ и использовать макросы​​id​:​ опцию​ кнопку сохранения (дискетку)​ Надстройки (File -​Более изящным решением будет​​ выберите инструмент в​​ рабочие книги снова​ данной статье рассмотрены​ который позволяет преобразовать​ целыми, повторяющимися и​
  6. ​ табы. С помощью​ компьютера из-за перегрузки​ компанией XLSTAT. Справка​, чтобы ее установить.​ кнопку​ в работе станет​нашей вкладки и​Единственный неприятный момент здесь​Макросы​
  7. ​ в левом верхнем​
  8. ​ Options — Add-Ins)​ создание​ редакторе Visual Basic:​ запустите программу Excel.​ лишь некоторые надстройки.​​ кириллицу в латиницу,​​ неповторяющимися, в числовом​ этой надстройки в​ памяти. Поэтому те​ по StatPlus:mac LE​
    Добавляем процедуру обратного вызова
  9. ​Выйдите из приложения Excel​ОК​ намного проще.​
    Созданная вкладка для надстройки

​ группы (любые уникальные​ — это отсутствие​. После этого наш​ углу.​, жмем на кнопку​своей собственной надстройки (Excel​ «Tools»-«VBAProject Properties». На​Выберите инструмент: «ФАЙЛ»-«Параметры»-«Надстройки». Внизу​ На самом деле​

planetaexcel.ru

​ изменять регистр и​

Skip to content

Как правильно сохранить и применять пользовательскую функцию Excel

Сегодня мы продолжим изучение пользовательских функций Excel. Поскольку вы уже знаете, как их создавать (и, я надеюсь, вы также пробовали применять их), давайте копнем немного глубже и узнаем, как использовать и хранить определяемые пользователем функции в Excel.

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

Вот о чем мы будем говорить:

  • Совместное использование с другими функциями
  • Применение в других функциях и макросах VBA
  • Как вызвать функцию из другой книги
  • Использование файла надстройки (рекомендуется)

Использование с другими функциями

После того, как вы проверили, что ваши пользовательские функции работают правильно, их можно использовать в формулах Excel или в коде VBA.

Пользовательские функции в рабочей книге Excel можно применять точно так же, как вы применяете обычные функции. Например, просто запишите в ячейке формулу

=GetMaxBetween(A1:A6;10;50)

Их также можно использовать в сочетании с обычными функциями. Например, добавим поясняющий текст к рассчитанному максимальному значению:

=СЦЕПИТЬ(«Максимальное значение между 10 и 50 –  «;GetMaxBetween(A1:A6;10;50))

Результат вы видите на скриншоте ниже:

Можно найти товар, количество которого максимальное  и находится в диапазоне от 40 до 50.

В формуле

=ИНДЕКС(A2:A9;ПОИСКПОЗ(GetMaxBetween(B2:B9;F1;F2);B2:B9;0))

пользовательская функция GetMaxBetween находит в диапазоне B2:B9 максимальное число между 40 и 50. Затем при помощи функций ИНДЕКС+ПОИСК мы получаем название товара, которое соответствует этому максимальному значению:

Как видите, использование настраиваемых функций ничем не отличается от обычных функций Excel.

При этом помните, что пользовательская функция может только возвращать значение, но не может выполнять никакие другие действия. Более подробно об ограничениях пользовательских функций читайте здесь.

Применение в других функциях и процедурах VBA

Пользовательские функции также можно использовать в макросах VBA.

На скриншоте ниже вы видите код макроса, который в столбце, содержащем активную ячейку, ищет максимальное значение в диапазоне от 10 до 50.

Код макроса содержит пользовательскую функцию GetMaxBetween(.Cells, 10, 50). Она находит нужное максимальное значение в активном столбце. Затем это значение будет выделено цветом.

Результат работы макроса вы видите на скриншоте ниже.

Также пользовательская функция может быть использована внутри другой пользовательской функции. Проблема конвертации числа в текст обычно решается при помощи пользовательской функции. Функция SpellNumber отлично выполняет эту задачу, добавляя также денежные единицы измерения (рубли). Вот код этого макроса:

Public Function SpellNumber(x As Double) As String
If x > 999999999999.99 Then
SpellNumber = "Число больше 999 999 999 999.99!"
ElseIf x < 0 Then
SpellNumber = "Отрицательное число!"
Else
x = FormatNumber(x, 2)
Dim b As Byte, b1 As Byte, b2 As Byte, kop As String
b = (x - Fix(x)) * 100
b2 = b  10
b1 = b Mod 10
If b2 <> 1 And b1 = 1 Then
kop = " копейка"
ElseIf b2 <> 1 And b1 > 1 And b1 < 5 Then
kop = " копейки"
Else
kop = " копеек"
End If
kop = b2 & b1 & kop
Dim y(1 To 4) As Integer, i1 As Byte
For i1 = 1 To 4
x = Fix(x) / 1000
y(i1) = (x - Fix(x)) * 1000
Next
Dim Numeric(1 To 4) As String, i2 As Byte, y1 As Byte, y2 As Byte, _
y3 As Byte, Numeric0 As String, Numeric1 As String, Numeric2 As String, Numeric3 As String, _
Numeric4 As String
For i2 = 1 To 4
y1 = y(i2) Mod 10
y2 = (y(i2) - y1) / 10 Mod 10
y3 = y(i2)  100
Numeric1 = Choose(y3 + 1, "", "сто ", "двести ", "триста ", "четыреста ", _
"пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
Numeric2 = Choose(y2 + 1, "", "", "двадцать ", "тридцать ", "сорок ", _
"пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ")
If y2 = 1 Then
Numeric3 = Choose(y1 + 1, "десять ", "одиннадцать ", "двенадцать ", _
"тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", _
"семнадцать ", "восемнадцать ", "девятнадцать ")
ElseIf y2 <> 1 And i2 = 2 Then
Numeric3 = Choose(y1 + 1, "", "одна ", "две ", "три ", "четыре ", "пять ", _
"шесть ", "семь ", "восемь ", "девять ")
Else
Numeric3 = Choose(y1 + 1, "", "один ", "два ", "три ", "четыре ", "пять ", _
"шесть ", "семь ", "восемь ", "девять ")
End If
If y2 <> 1 And y1 = 1 Then
Numeric4 = Choose(i2, "рубль ", "тысяча ", "миллион ", "миллиард ")
ElseIf y2 <> 1 And y1 > 1 And y1 < 5 Then
Numeric4 = Choose(i2, "рубля ", "тысячи ", "миллиона ", "миллиарда ")
ElseIf y1 = 0 And y2 = 0 And y3 = 0 Then
Numeric4 = Choose(i2, "рублей ", "", "", "")
Else
Numeric4 = Choose(i2, "рублей ", "тысяч ", "миллионов ", "миллиардов ")
End If
Numeric(i2) = Numeric1 & Numeric2 & Numeric3 & Numeric4
Next
If y(1) + y(2) + y(3) + y(4) = 0 Then
Numeric0 = "ноль рублей " & kop
Else
Numeric0 = Numeric(4) & Numeric(3) & Numeric(2) & Numeric(1) & kop
End If
SpellNumber = Replace(Numeric0, Left(Numeric0, 1), UCase(Left(Numeric0, 1)), 1, 1)
End If
End Function

Применив вместе уже знакомую нам GetMaxBetween и SpellNumber, мы можем получить максимальное значение из диапазона и сразу записать его в виде текста.

Для этого создадим новую пользовательскую функцию, в которой используем уже знакомые нам функции GetMaxBetween и SpellNumber.

Function SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum)
       SpellGetMaxBetween = SpellNumber(GetMaxBetween(rngCells, MinNum, MaxNum))
End Function

Как видите, функция GetMaxBetween является аргументом другой пользовательской функции – SpellNumber. Сначала она определяет максимальное значение, как мы уже неоднократно делали ранее. Затем это число преобразуется в текст.

На скриншоте выше вы видите, как функция SpellGetMaxBetween находит максимальное число в диапазоне от 5000 до 7000, а затем конвертирует его в текст.

Как вызвать пользовательскую функцию из другой книги

Если вы создали пользовательскую функцию в вашей рабочей книге, то это ещё, к сожалению, не означает, что её можно без проблем везде применять.

По моему опыту, большинство пользователей рано или поздно собирают свою личную коллекцию макросов и пользовательских функций для автоматизации отдельных процессов и расчётов. И тут встает проблема: код пользовательских функций на Visual Basic нужно где-то хранить, чтобы потом использовать в работе.

Чтобы применить пользовательскую функцию, рабочая книга, в которой вы ее сохранили, должна быть открыта в вашем Excel. Если вы это не сделали, то при попытке использования вы получите ошибку #ИМЯ!. Эта ошибка говорит о том, что Excel не знает имени функции, которую вы хотите употребить в формуле.

Рассмотрим способы, при помощи которых вы можете использовать созданные настраиваемые функции.

Способ 1.

Вы можете перед именем функции указать имя книги, в которой она находится. Например, если вы сохранили пользовательскую функцию GetMaxBetween в книге с именем My_Functions.xlsm, то необходимо ввести такую формулу:

= My_Functions.xlsm!GetMaxBetween(A1:A6;10;50)

Способ 2.

Сохраняем все пользовательские функции в одной специальной рабочей книге (например, My_Functions.xlsm ) и копируем из нее нужную функцию в текущую рабочую книгу в случае необходимости. Тогда не нужно будет указывать имя файла, как это сделано выше.

При создании каждой новой пользовательской функции вам необходимо дублировать ее код в ту книгу, в которой вы будете ее использовать. При таком способе возникает несколько неудобств:

  • Если рабочих файлов много, а функция нужна везде, то и копировать код придется в каждую книгу.
  • Нужно не забыть сохранить рабочую книгу в формате с поддержкой макросов (xlsm или xlsb).
  • При открытии такого файла защита от макросов будет каждый раз показывать предупреждение, которое нужно подтвердить. Многие пользователи пугаются, видя предупреждение на жёлтой полосе, которое просит их включить макросы. Чтобы не видеть это сообщение, вам нужно отключить защиту Excel полностью. Это может быть не всегда правильно и безопасно.

Думаю, вы согласитесь со мной, что все время открывать файл и копировать из него код пользовательских функций или писать название этого файла в формуле – это не самые удачные решения.

Способ 3.

Думаю, что самый лучший способ – хранить часто используемые пользовательские функции в файле надстройки (Excel Add-in).

Достоинства использования надстройки:

  • Достаточно один раз подключить надстройку в ваш Excel. После этого можно использовать её процедуры и функции в любом файле на этом компьютере. Сохранять ваши рабочие книги в xlsm- и xlsb-формате не потребуется, так как исходный код будет храниться не в них, а в файле надстройки.
  • Защита от макросов вас беспокоить уже не будет, так как надстройки всегда относятся к доверенным источникам. Она будет автоматически загружаться при каждом запуске Excel практически незаметно для вас.
  • Надстройка ­– это отдельный файл. Его легко переносить с компьютера на компьютер, делиться им с коллегами.

О создании и использовании надстройки мы подробнее поговорим далее.

Сохранение пользовательских функций в файле надстройки

Как создать собственную надстройку? Рассмотрим пошагово.

Шаг 1. Создаем файл надстройки.

Открываем Microsoft Excel, создаем новую книгу и сохраняем ее под любым подходящим именем (например My_Functions) в формате надстройки. Для этого используем меню Файл – Сохранить как или клавишу F12. Обязательно указываем тип файла Надстройка Excel:

Ваша надстройка будет иметь расширение .xlam.

Обратите внимание, что стандартно Excel хранит надстройки в папке C:Users[Ваше_имя]AppDataRoamingMicrosoftAddIns. Советую принять расположение по умолчанию. Вы можете указать любую другую папку. Но тогда при подключении надстройки вам нужно будет найти и указать ее новое расположение вручную. Если вы сохраните ее в папке по умолчанию, вам не придется искать надстройку на своем компьютере. Excel автоматически внесет ее в список.

Шаг 2. Подключаем файл надстройки.

Теперь созданную нами надстройку My_Functions надо подключить к Excel. Тогда она будет загружаться автоматически при старте программы. Для этого используем меню Файл — Параметры — Надстройки. Убедитесь, что внизу в поле Управление выбраны Надстройки Excel. Жмем на кнопку Перейти в нижней части окна. В появившемся окне отмечаем нашу надстройку My_Functions. Если вы не видите ее в списке, нажмите кнопку Просмотр и укажите расположение вашего файла надстройки вручную.

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

Шаг 3. Добавляем в надстройку пользовательские функции и макросы.

Наша надстройка подключена к Excel, но в ней пока нет ничего. Чтобы добавить в нее новые пользовательские функции, откройте редактор Visual Basic при помощи сочетания клавиш Alt+F11. После этого вы можете добавлять новые модули с кодом VBA, как описано в этом руководстве.

Выберите в окне VBAProject ваш файл надстройки (My Finctions.xlam). Используйте меню Insert – Module, чтобы добавить пользовательский модуль. В него нужно записывать пользовательские функции.

Код пользовательской функции вы можете либо набрать вручную, либо скопировать откуда-нибудь.

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

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

Сумма по цвету и подсчёт по цвету в Excel В этой статье вы узнаете, как посчитать ячейки по цвету и получить сумму по цвету ячеек в Excel. Эти решения работают как для окрашенных вручную, так и с условным форматированием. Если…
Проверка данных с помощью регулярных выражений В этом руководстве показано, как выполнять проверку данных в Excel с помощью регулярных выражений и пользовательской функции RegexMatch. Когда дело доходит до ограничения пользовательского ввода на листах Excel, проверка данных очень полезна. Хотите…
Поиск и замена в Excel с помощью регулярных выражений В этом руководстве показано, как быстро добавить пользовательскую функцию в свои рабочие книги, чтобы вы могли использовать регулярные выражения для замены текстовых строк в Excel. Когда дело доходит до замены…
Как извлечь строку из текста при помощи регулярных выражений В этом руководстве вы узнаете, как использовать регулярные выражения в Excel для поиска и извлечения части текста, соответствующего заданному шаблону. Microsoft Excel предоставляет ряд функций для извлечения текста из ячеек. Эти функции…
4 способа отладки пользовательской функции Как правильно создавать пользовательские функции и где нужно размещать их код, мы подробно рассмотрели ранее в этой статье.  Чтобы решить проблемы при создании пользовательской функции, вам скорее всего придется выполнить…
Как создать пользовательскую функцию? В решении многих задач обычные функции Excel не всегда могут помочь. Если существующих функций недостаточно, Excel позволяет добавить новые настраиваемые пользовательские функции (UDF). Они делают вашу работу легче. Мы расскажем,…

Как написать и использовать собственную надстройку в Excel

Если пользователь давно и плотно работает с Excel, то рано или поздно у
него собирается приличное количество макросов для автоматизации своей
работы. Если хранить код макроса в рабочем файле, возникают следующие
трудности:

  • при открытии такого файла будет каждый раз срабатывать защита от макросов
    и нужно будет всякий раз подтверждать исключение безопасности или отключить
    защиту полностью, что небезопасно;
  • если макрос нужен везде, то и копировать код его придется в каждую книгу;
  • сохранять файл нужно в формате с поддержкой макросов (xlsm) или в формате
    двоичной книги (xlsb).

Если макросов много, а используются они часто более рационально будет
создание собственной надстройки Excel — отдельного файла
особого формата (xla – Excel2003, xlam – Excel2010 и старше), содержащего
все макросы.

Плюсы такого подхода очевидны:

  • больше не будет срабатывать защита от макросов, потому
    что надстройки по определению входят в доверенные источники;
  • однократное подключение надстройки в Excel. Теперь её
    VBA процедуры и функции можно будет использовать в любом файле на
    компьютере. Сохранять ваши рабочие файлы в xlsm- и xlsb-форматы, также не
    требуется потому, что исходный текст будет храниться не в них, а в
    файле надстройки.
  • можно сделать отдельную вкладку на ленте Excel для запуска макросов надстройки.
  • Надстройку легко переносить с компьютера на компьютер — это отдельный файл.

Рассмотрим процесс создания своей собственной надстройки для Excel на примере Excel 2010.

1. Создать файл надстройки

Открываем Excel с пустой книгой и сохраняем ее в формате надстройки с
помощью команды Файл — Сохранить как, например,ExcelPlus), указав тип файла Надстройка Excel (Excel Add-in):

По умолчанию Excel хранит надстройки в папке C:Users<Учетная запись пользователя
>AppDataRoamingMicrosoftAddIns
, но можно указать и любую другую
папку.

2. Подключить созданную надстройку

Теперь созданную нами на прошлом шаге надстройку ExcelPlus надо
подключить к Excel. Для этого в меню Файл — Параметры — Надстройки, жмем на кнопку Перейти в нижней части окна:

Если вы скопировали файл надстройки в папку по умолчанию, то новая
надстройка ExcelPlus должна появиться в списке доступных
надстроек:

Либо в этом окне жмем Обзор и указываем
положение нашего файла надстройки.

Ставим флажок напротив названия настройки и жмем ОК.

3. Добавить макросы в надстройку

Теперь надстройка подключена к Excel, но она не может работать, так как в
ней отсутствуют макросы. Добавим макрос в надстройку. Для этого откроем
редактор VBA по Alt+F11 или кнопкой Visual Basic на
вкладке Разработчик:

В левом верхнем углу редактора должно быть окно Project

В этом окне отображаются все открытые книги и запущенные надстройки Excel,
в том числе и наша надстройка — VBAProject ( ExcelPlus.xlam) Выделите её мышью и добавьте в неё новый
модуль через меню Insert — Module.

В этом модуле будет хранится VBA-код макросов надстройки.

Добавим в добавленный пустой модуль код макроса, который производит поиск в
тексте кириллических символов:

После вставки кода нужно нажать на кнопку сохранения дискетку в левом
верхнем углу.

Такие макросы как FindCyr называют еще процедурами. Макросы в составе надстроек можно запустить также как
обычные макросы:

  • при помощи сочетания клавиш Alt+F8, а затем нажать кнопку Выполнить
    (макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса);
  • назначить сочетание клавиш для быстрого запуска макроса — кнопка Параметры в окне Макрос
  • создать кнопку для нашего макроса на панели быстрого доступа в левом верхнем углу окна.

Подробнее и с картинками о способах запуска макроса написано здесь.

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

4. Добавить функции в надстройку

Кроме макросов-процедур, существуют еще и макросы-функции или
пользовательская функция. Создадим в нашей надстройке еще один
модуль меню Insert — Module и вставим туда код функции,
которая находит сумму ячеек нужного цвета:

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

Функцию невозможно запустить как предыдущий макрос-процедуру через
диалоговое окно Макросы и кнопку Выполнить. Ее нужно использовать как стандартную функцию
листа (СУММ, ЕСЛИ, …), т.е. просто ввести в любую ячейку, указав в
качестве аргументов ячейку с цветом-образцом и диапазон суммирования:

Или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул),
выбрав категорию Определенные пользователем:

У созданных пользователем функций отсутствует описание функции в нижней
части окна. Чтобы его добавить, нужно:

  1. Открыть редактор VBA по Alt+F11.
  2. Выделить нашу надстройку в панели Project и нажмите клавишу F2, чтобы
    открыть окно Object Browser
  3. Выбрать в верхней части окна в выпадающем списке свой проект надстройки
    (в конце списка)
  4. Щелкнуть по появившейся функции правой кнопкой мыши и выберите команду Properties.
  5. Ввести описание функции в окно Description:
  6. Сохранить файл надстройки и перезапустите Excel.

После перезапуска у функции должно отобразиться описание:

5. Создать вкладку надстройки в интерфейсе Excel

Отдельная вкладка с кнопкой запуска нашего макроса будет появляться в
интерфейсе Excel после подключения нашей надстройки.

Мы будем писать код вкладки с помощью бесплатной программы для редактирования XML

Ribbon XML Editor

  1. Закрыть все окна Excel.
  2. Запустить программу Ribbon XML Editor и открыть в ней файл надстройки Excel Plus.xlam.
  3. При помощи кнопки tabs в левом верхнем углу добавить
    заготовку кода для новой вкладки
  4. В кавычки по стрелке нужно вписать id — любые уникальные
    идентификаторы вкладки и группы, а в label — названия
    вкладки и группы кнопок на ней:
  5. При помощи кнопки button на панели слева добавляем
    заготовку кода для кнопки и дописываем к ней:
  6. Id – идентификатор кнопки;

    label — текст на кнопке;

    imageMso — условное название изображения на кнопке(иконка). Иконку можно выбрать из
    большого числа изображений, щелкнув по кнопке:

    — onAction
    — имя процедуры обратного вызова — специального короткого макроса, который
    будет запускать основной макрос FindCyr. Назвать эту
    процедуру можно, например, FindCyrStart.

  7. Проверить правильность сделанного с помощью кнопки с зеленой галочкой
    сверху на панели инструментов. Рядом с ней нажмите на кнопку с дискетой для
    сохранения изменений:
  8. Закрыть Ribbon XML Editor
  9. Открыть Excel, зайти в редактор VBA по Alt+F11 и добавить к нашему
    макросу процедуру вызова FindCyrStart, для запуска
    основного макросы поиска кириллицы.
  10. Сохранить изменения в редакторе VBA и в Excel проверить результат:


Это всё — надстройка готова к использованию. Теперь использовать макросы в
работе станет намного проще. Если показалось, что настройка ленты – это
слишком сложно, всегда можно использовать кнопки для запуска макросов из
панели быстрого запуска.

Яндекс.Метрика

Как создать свою надстройку для Microsoft Excel

Даже если вы не умеете программировать, то существует множество мест (книги, сайты, форумы), где можно найти готовый код макросов на VBA для огромного количества типовых задач в Excel. По моему опыту, большинство пользователей рано или поздно собирают свою личную коллекцию макросов для автоматизации рутинных процессов, будь то перевод формул в значения, вывод суммы прописью или суммирования ячеек по цвету. И тут встает проблема — код макросов на Visual Basic нужно где-то хранить, чтобы потом использовать в работе.

Самый простой вариант — сохранять код макросов прямо в рабочем файле, зайдя в редактор Visual Basic с помощью сочетания клавиш Alt + F11 и добавив новый пустой модуль через меню Insert — Module:

При таком способе возникает, однако, несколько неудобств:

  • Если рабочих файлов много, а макрос нужен везде, как например макрос преобразования формул в значения, то и копировать код придется в каждую книгу.
  • Нужно не забыть сохранить файл в формате с поддержкой макросов (xlsm) или в формате двоичной книги (xlsb).
  • При открытии такого файла защита от макросов будет каждый раз выдавать предупреждение, которое нужно подтвердить (ну, или отключить защиту полностью, что может быть не всегда желательно).

Более изящным решением будет создание своей собственной надстройки (Excel Add-in) — отдельного файла особого формата (xlam), содержащего все ваши «любимые» макросы. Плюсы такого подхода:

  • Достаточно будет один раз подключить надстройку в Excel — и можно будет использовать её VBA процедуры и функции в любом файле на этом компьютере. Пересохранять ваши рабочие файлы в xlsm- и xlsb-форматы, таким образом, не потребуется, т.к. исходный код будет храниться не в них, а в файле надстройки.
  • Защита от макросов вас тоже беспокоить уже не будет, т.к. надстройки по определению входят в доверенные источники.
  • Можно сделать отдельную вкладку на ленте Excel с красивыми кнопками для запуска макросов надстройки.
  • Надстройка — это отдельный файл. Его легко переносить с компьютера на компьютер, делиться им с коллегами или даже продавать 😉

Давайте рассмотрим весь процесс создания своей собственной надстройки для Microsoft Excel по шагам.

Шаг 1. Создаем файл надстройки

Открываем Microsoft Excel с пустой книгой и сохраняем ее под любым подходящим именем (например MyExcelAddin) в формате надстройки с помощью команды Файл — Сохранить как или клавиши F12 , указав тип файла Надстройка Excel (Excel Add-in):

Обратите внимание, что стандартно Excel хранит надстройки в папке C:UsersВаше_имяAppDataRoamingMicrosoftAddIns, но, в приниципе, можно указать любую другую удобную вам папку.

Шаг 2. Подключаем созданную надстройку

Теперь созданную нами на прошлом шаге надстройку MyExcelAddin надо подключить к Excel. Для этого идем в меню Файл — Параметры — Надстройки (File — Options — Add-Ins) , жмем на кнопку Перейти (Go) в нижней части окна. В открывшемся окне жмем кнопку Обзор (Browse) и указываем положение нашего файла надстройки.

Если вы все сделали правильно, то наша MyExcelAddin должна появиться в списке доступных надстроек:

Шаг 3. Добавляем в надстройку макросы

Наша надстройка подключена к Excel и успешно работает, но в ней нет пока ни одного макроса. Давайте её наполним. Для этого нужно открыть редактор Visual Basic сочетанием клавиш Alt + F11 или кнопкой Visual Basic на вкладке Разработчик (Developer) . Если вкладки Разработчик не видно, то её можно отобразить через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) .

В левом верхнем углу редактора должно быть окно Project (если его не видно, то включите его через меню View — Project Explorer):

В этом окне отображаются все открытые книги и запущенные надстройки Microsoft Excel, в том числе и наша VBAProject (MyExcelAddin.xlam) Выделите её мышью и добавьте в неё новый модуль через меню Insert — Module. В этом модуле мы и будем хранить VBA-код наших макросов надстройки.

Код можно либо набрать «с нуля» (если вы умеете программировать), либо скопировать откуда-нибудь уже готовый (что гораздо проще). Давайте, для пробы, введем в добавленный пустой модуль код простого, но полезного макроса:

После набора кода не забудьте нажать на кнопку сохранения (дискетку) в левом верхнем углу.

Наш макрос FormulasToValues, как легко сообразить, преобразует формулы в значения в выделенном предварительно диапазоне. Иногда такие макросы называют еще процедурами. Чтобы его запустить, нужно выделить ячейки с формулами и открыть специальное диалоговое окно Макросы с вкладки Разработчик (Developer — Macros) или сочетанием клавиш Alt + F8 . Обычно в этом окне отображаются доступные макросы из всех открытых книг, но макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса (Macro name) , а затем нажать кнопку Выполнить (Run) — и наш макрос заработает:

При назначении клавиш имейте ввиду, что здесь учитывается регистр и раскладка клавиатуры. Поэтому, если вы назначите сочетание, например, Ctrl + Й , то, по факту, вам придется в будущем следить за тем, чтобы у вас была включена именно русская раскладка и жать дополнительно Shift , чтобы получить заглавную букву.

Для удобства можно добавить и кнопку для нашего макроса на панель быстрого доступа в левом верхнем углу окна. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar) , а затем в выпадающем списке в верхней части окна опцию Макросы. После этого наш макрос FormulasToValues можно поместить на панель кнопкой Добавить (Add) и выбрать для него значок кнопкой Изменить (Edit) :

Шаг 4. Добавляем в надстройку функции

Кроме макросов-процедур, существуют еще и макросы-функции или как их еще называют UDF (User Defined Function = пользовательская функция). Давайте создадим в нашей надстройке отдельный модуль (команда меню Insert — Module) и вставим туда код такой функции:

Несложно сообразить, что эта функция нужна для извлечения НДС из суммы включающей НДС. Не бином Ньютона, конечно, но нам для примера сгодится, чтобы показать основные принципы.

Заметьте, что синтаксис функции отличается от процедуры:

  • используется конструкция Function . End Function вместо Sub . End Sub
  • после названия функции в скобках указываются её аргументы
  • в теле функции производятся необходимые вычисления и затем результат присваивается переменной с названием функции

Также обратите внимание, что эту функцию не нужно, да и невозможно запустить как предыдущий макрос-процедуру через диалоговое окно Макросы и кнопку Выполнить. Такую макрофункцию нужно использовать как стандартную функцию листа (СУММ, ЕСЛИ, ВПР. ), т.е. просто ввести в любую ячейку, указав в качестве аргумента значение суммы с НДС:

. или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул), выбрав категорию Определенные пользователем (User Defined) :

Единственный неприятный момент здесь — это отсутствие привычного описания функции в нижней части окна. Чтобы его добавить придется проделать следующие действия:

  1. Откройте редактор Visual Basic сочетанием клавиш Alt + F11
  2. Выделите надстройку в панели Project и нажмите клавишу F2 , чтобы открыть окно Object Browser
  3. Выберите в верхней части окна в выпадающем списке свой проект надстройки
  4. Щелкните по появившейся функции правой кнопкой мыши и выберите команду Properties.
  5. Введите описание функции в окно Description
  6. Сохраните файл надстройки и перезапустите Excel.

После перезапуска у функции должно отобразиться описание, которое мы ввели:

Шаг 5. Создаем вкладку надстройки в интерфейсе

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

Информация об отображаемых вкладках по умолчанию содержится внутри книги и должна быть оформлена в виде специального XML-кода. Проще всего писать и редактировать такой код с помощью специальных программ — XML-редакторов. Одна из самых удобных (и бесплатных) — это программа Максима Новикова Ribbon XML Editor.

Алгоритм работы с ней следующий:

  1. Закройте все окна Excel, чтобы не было конфликта файлов, когда мы будем редактировать XML-код надстройки.
  2. Запустите программу Ribbon XML Editor и откройте в ней наш файл MyExcelAddin.xlam
  3. При помощи кнопки tabs в левом верхнем углу добавьте заготовку кода для новой вкладки:

В пустые кавычки нужно вписать id нашей вкладки и группы (любые уникальные идентификаторы), а в label — названия нашей вкладки и группы кнопок на ней:

При помощи кнопки button на панели слева добавляем заготовку кода для кнопки и дописываем к ней теги:

— label — это текст на кнопке
— imageMso — это условное название изображения на кнопке. Я использовал иконку с красной кнопкой, которая имеет название AnimationCustomAddExitDialog. Названия всех доступных кнопок (а их несколько сотен!) можно найти на большом количестве сайтов в интернете, если искать по ключевым словам «imageMso». Для начала можно сходить сюда.
onAction — это имя процедуры обратного вызова — специального короткого макроса, который будет запускать наш основной макрос FormulasToValues. Назвать эту процедуру можно как угодно. Мы добавим её чуть позже.

  • Проверить правильность всего сделанного можно с помощью кнопки с зеленой галочкой сверху на панели инструментов. Там же рядом нажмите на кнопку с дискетой для сохранения всех изменений.
  • Закрываем Ribbon XML Editor
  • Открываем Excel, заходим в редактор Visual Basic и добавляем к нашему макросу процедуру обратного вызова KillFormulas, чтобы она запускала наш основной макрос замены формул на значения.


    Сохраняем внесенные изменения и, вернувшись в Excel проверяем результат:

    Вот и всё — надстройка готова к использованию. Наполните её своими процедурами и функциями, добавьте красивые кнопки — и использовать макросы в работе станет намного проще.

    Финансы в Excel

    Надстройки Excel

    Подробности Создано 27 Март 2011

    Те, кто программирует на VBA для Excel, в определенный момент задумываются над распространением своих приложений в качестве независимых файлов. Лучшая возможность для организации распространяемых файлов – это создание специальных дополнений или надстроек Excel. За время развития программы появилось несколько типов надстроек. Мы попытались собрать и систематизировать информацию для разработчиков обо всех видах, назначениях, достоинствах и недостатках надстроек Excel.

    Персональная книга макросов

    Для общих программ и макросов можно использовать, так называемую, личную книгу макросов – по умолчанию это файл PERSONAL.XLS (в Excel 2007-2010 PERSONAL.XLSB). Файл с данным именем создается с при записи макроса средствами Excel. Этот файл будет автоматически загружаться каждый раз при запуске Excel. Местонахождение данного файла в каталоге Windows: ПОЛЬЗОВАТЕЛЬApplication DataMicrosoftExcelXLSTART. На самом деле Excel будет запускать автоматически все файлы из данного каталога, независимо от имен файлов.

    В принципе, личные книги макросов можно считать надстройками Excel. В файле PERSONAL.XLS (или любом другом из стартового каталога) можно хранить общие функции и макросы, автоматизирующие часто повторяемые операции. Для выполнения каких-либо операций при старте Excel можно использовать событие Worbook_Open этого файла, либо процедуру Auto_Open в модуле кода.

    Надстройки с расширением xla (в версии 2007-2010 xlam) представляют собой стандартный xls-файл, который может быть открыт как невидимая в списке открытых файлов рабочая книга.

    Файл надстройки обычно содержит программный код, который управляет какими-либо оперциями активной рабочей книги Excel. Теоретически, кроме модулей кода, в состав xla-файла могут быть таблицы и даже листы диаграмм, но надо понимать, что особого смысла в этих данных нет, так как нет возможности отобразить эти данные на экране стандартными средствами. На рабочих листах надстройки можно хранить, например, константы для работы кода, если по каким-либо соображениям не хочется использовать константы VBA. Данные в ячейках файла надстройки можно даже изменять во время работы, но сохранять открытый и исполняемый в данный момент файл xla в общем случае недопустимо.

    Для доступа к данным рабочей книги надстройки используется объект ThisWorkbook, а для работы с активной рабочей книгой – объект ActiveWorkbook.

    В надстройках имеется возможность хранить пользовательские функции для работы с данными рабочих листов (user defined function — UDF). Только надо учитывать, что в этом случае рабочий файл сохраняет ссылку (связь) на файл надстройки по абсолютному пути. Эта особенность может затруднить распространение программных продуктов.

    Отладку надстроек лучше производить через xls-файл (не забывая различия между ThisWorkbook и ActiveWorkbook), а впоследствии сохранять этот файл как xla. Нектороые сложности могут в этом случае возникнуть при использовании событий Workbook_AddinInstall и Workbook_AddinUninstall, так как их невозможно эмулировать в простом файле рабочей книги. К счастью, эти события требуются крайне редко; честно говоря, мы не знаем ни одного примера их полезного использования на практике.

    Подключать готовую XLA-надстройку можно через соответствующий диалог (Excel 2000-2003 Сервис Надстройки, Excel 2007 Кнопка Office Параметры Excel Надстройки Перейти).

    Подключаемые надстройки прописываются в реестре Windows по адресу HKEY_CURRENT_USER Software Microsoft Office НОМЕР_ВЕРСИИ.0 Excel Options в строковых параметрах с префиксом OPEN и порядковым номером надстройки (причем первая по порядку надстройка номера не имеет). Управляя этим ключом реестра, можно подключить / отключить надстройку через инсталляционные программы. Это, кстати, еще одна причина никогда не использовать событие Workbook_AddinInstall – очевидно, что оно не будет вызвано при изменении ключей реестра внешними программами.

    Имя и описание надстройки можно задать в свойствах файла перед его сохранением в форматие xla/xlam (Excel 2000-2003 Файл Свойства, Excel 2007 Кнопка Office Подготовить Свойства).

    Важным преимуществом надстройки XLA/XLAM вместо использования кода внутри рабочих файлов является возможность повторного использования кода VBA. Кроме того, установленные надстройки не спрашивают о наличии макросов при запуске Excel на любом уровне безопасности.

    Интересная, но скорее всего бесполезная в работе информация. Надстройки XLA в Excel версии 5.0-8.0 (95-97) хранятся в скомпилированном виде. В связи с этим, там просто нет исходного текста программ в открытом или зашифрованном виде. Эта особенность приводит к невозможности декомпиляции или вскрытию кода специальными средствами. К сожалению, в последующих версиях Excel надстройки хранятся в нескомпилированном виде и легко преобразуются в доступный для изменения файл, даже будучи защищенными паролями. Microsoft рекомендует использовать для разработчиков возможности COM-DLL и средства VSTO (см. далее).

    В качестве примера XLA-надстройки, можно ознакомиться с исходным кодом надстройки ExcelFin в разделе Программы.

    Надстройки excel

    Более 100 команд, которых нет в MS Excel.

    Мгновенная обработка данных благодаря уникальным алгоритмам.

    Полная сохранность данных благодаря встроенному модулю безопасности.

    Гибкая индивидуальная настройка параметров.

    Полная on-line справка на русском языке.

    Более 60 формул, которых нет в MS Excel.

    Дружелюбный интерфейс не оставляет вопросов.

    Действия большинства операций можно отменить стандартным способом.

    Постоянное добавление новых команд и функций.

    E-mail поддержка и консультация пользователей.

    Что такое надстройка ЁXCEL?
    ЁXCEL это набор макросов и функций, которые расширяют стандартные возможности MS Excel и делают «невозможное» — возможным.

    Сергей Хвостов разработчик сайта www.e-xcel.ru

    Как это работает?

    Новая вкладка меню

    Надстройка ЁXCEL создаст в вашем MS Excel новую вкладку меню с командами и формулами. Если надстройку удалить или отключить — эта вкладка исчезнет.

    Как использовать команды?

    Выделите нужный Вам объект (лист, таблицу, диапазон ячеек, диаграмму или рисунок) и кликните по соответствующему пункту меню надстройки ЁXCEL.

    Как работает отмена?

    Просто, нажмите стандартную кнопку отмены последнего действия или сочетание клавиш «Ctrl+Z«.

    Как использовать формулы?

    Встаньте курсором в ячейку, в которую вы хотите поместить формулу. В меню надстройки ЁXCEL выберете соответствующую формулу, укажите необходимые аргументы и нажмите «OK«.

    Возможности надстройки ЁXCEL?

    Управление файлами

    С надстройкой ЁXCEL Вы сможете управлять файлами компьютера прямо из MS Excel.

    Получить список файлов папки

    В меню надстройки ЁXCEL выберите команду «Получить список файлов папки«, укажите папку, тип данных для вывода и нажмите OK. В рабочей книге MS Excel выведется список файлов.

    Удалить файлы

    С помощью фильтра выберите ненужные файлы в списке, выделите их. В меню надстройки ЁXCEL выберите команду «Удалить файлы«, и файлы из выделенных ячеек будут удалены.

    Создать ссылки на файлы

    Выделите ячейки с названиями файлов, в меню надстройки ЁXCEL выберите команду «Текст ячейки в ссылку«. Все выделенные ячейки превратятся в ссылки на файлы, которые можно будет открывать в один клик.

    Переименовать файлы

    Добавьте к списку файлов столбец с новыми названиями. Выделите столбцы со старыми и новыми названиями файлов, в меню надстройки ЁXCEL выберите команду «Переименовать файлы«. Файлы из выделенных ячеек будут переименованы.

    Управление рабочей книгой

    Настраивайте внешний вид рабочей книги прямо из меню надстройки ЁXCEL, не углубляясь в меню параметров MS Excel.

    Создать оглавление книги

    В меню надстройки ЁXCEL выберите команду «Создать оглавление книги» и в активную рабочую книгу добавиться новый лист со ссылками на все листы этой книги.

    Изменить стиль ссылок

    Выберите в меню надстройки ЁXCEL команду «Изменить стиль ссылок» и стиль ссылок измениться на противоположный.

    Полосы прокрутки

    Управляйте отображением полос прокрутки с помощью команд надстройки ЁXCEL: «Скрыть/Отобразить вертикальную (горизонтальную) полосу прокрутки«.

    Показать ярлычки листов

    Выберите в меню надстройки ЁXCEL команду «Скрыть/Отобразить ярлычки листов» и ярлычки листов появятся или исчезнут.

    Управление листами

    С помощью надстройки ЁXCEL Вы сможете сортировать листы, устанавливать и снимать защиту сразу с нескольких листов, сохранять листы как отдельные файлы, быстро создавать листы с названиями из диапазона ячеек, импортировать листы из закрытых файлов, массово переименовывать листы. Всего надстройка ЁXCEL предоставляет 20 команд для работы с листами. Вот только некоторые из них.

    Импортировать листы

    Выберите в меню надстройки ЁXCEL команду «Вставить листы из другой книги» и укажите файл, из которого необходимо импортировать листы. Листы из этого файла будут вставлены в активную книгу.

    Модуль управления листами

    В меню надстройки ЁXCEL выберите команду «Модуль управления листами» и управляйте листами рабочей книги через удобное окно. Выделите любое количество листов и выполните одну из 13 доступных команд.

    Список листов книги

    Выберите в меню надстройки ЁXCEL команду «Получить список листов книги» и в активную книгу будет вставлен новый лист со списком листов этой книги.

    Переименовать листы

    Добавьте к списку листов столбец с новыми названиями. Выделите столбцы со старыми и новыми названиями листов, в меню надстройки ЁXCEL выберите команду «Переименовать листы из списка«. Листы из выделенных ячеек будут переименованы.

    Обработка текста, чисел и дат

    Выделите ячейки с текстом, числами или датами и воспользуйтесь одной из 25 команд надстройки ЁXCEL. Объединяйте ячейки без потери данных, сжимайте пробелы, меняйте регистр, преобразуйте числа и даты в текст, преобразуйте текст в даты и числа. Быстро создавайте нумерованные списки, удаляйте непечатаемые символы, гиперссылки, примечания, условное форматирование и проверку данных из выделенных ячеек. Меняйте кириллицу на латиницу и наоборот. Извлекайте уникальные слова из текста, генерируйте сложные пароли, удаляйте или добавляйте слова, или символы к тексту выделенных ячеек. Вот только некоторые возможности надстройки ЁXCEL по обработки текста, чисел и дат.

    Объединить ячейки

    Выделите ячейки, которые вы хотите объединить. В меню надстройки ЁXCEL выберите команду «Объединить ячейки без потери данных» и выделенные ячейки будут объединены, а все данные в них сохранятся.

    Заполнить пустые ячейки

    Выделите столбец таблицы с пустыми ячейками. Выберите в меню надстройки ЁXCEL команду «Заполнить пустые ячейки верхними значениями» и все пустые ячейки в этом столбце будут заполнены соответствующими значениями.

    Преобразовать значения

    Выделите ячейки, которые Вы хотите преобразовать. Выберите в меню надстройки ЁXCEL команду «Преобразовать» и воспользуйтесь любой из 5 команд. Вот пример работы некоторых из них.

    Редактировать значения

    Выделите ячейки, которые Вы хотите отредактировать. Выберите в меню надстройки ЁXCEL команду «Редактировать» и воспользуйтесь любой из 7 команд. Вот пример работы некоторых из них.

    Управление формулами

    Надстройка ЁXCEL предоставляет 4 удобных команды по управлению формулами.

    Закрепить диапазоны

    Выделите ячейки с формулами, в которых вы хотите закрепить диапазоны. В меню надстройки ЁXCEL выберите команду «Закрепить диапазоны» и в выделенных ячейках все диапазоны будут закреплены одним из трех возможным способов или закрепление будет снято.

    Формулы на значения

    Выберите в меню надстройки ЁXCEL команду «Заменить формулы на значения» и все формулы в выделенном диапазоне или в активном листе, или во всей книге будут заменены на значения.

    Разорвать связи

    Выберите в меню надстройки ЁXCEL команду «Разорвать связи» и все формулы, которые ссылаются на другие книги будут заменены на значения.

    Пересчитать формулы в диапазоне

    Выделите диапазон ячеек, в которых необходимо пересчитать формулы. Выберите в меню надстройки ЁXCEL команду «Пересчитать формулы в выделенном диапазоне» и формулу будут пересчитаны только в этом диапазоне, но не в листе и не в книге.

    Надстройка ЁXCEL

    ОС Windows (RU)
    MS Excel 2007 — 2019 (RU)
    Версия: 19.10
    119 команд
    67 формул
    Открытый код VBA
    On-Line консультации
    Регулярные обновления
    Для любого количества ПК

    Как подключить надстройку ЁXCEL?

    Вариант №1, Вариант №2.

    Если у Вас возникнут какие-либо вопросы, просто, напишите мне и я постараюсь ответить на них как можно скорее.

    Комментарии

    Делается средствами самого Excel:
    1. Жмём F5
    2. Жмём кнопку «Выделить. «
    3. Ставим галку «пустые ячейки»
    4. Жмём Ок
    5. Жмём F2
    6. Водим значение «0» и жмём Ctrl+Enter.
    P.S. Если заменить нужно только в конкретном диапазоне, то на Шаге 0 его предварительно выделяем.

    Делается средствами самого Excel:
    1. Жмём F5
    2. Жмём кнопку «Выделить. «
    3. Ставим галку «пустые ячейки»
    4. Жмём Ок
    5. Жмём F2
    6. Водим значение «0» и жмём Ctrl+Enter.
    P.S. Если заменить нужно только в конкретном диапазоне, то на Шаге 0 его предварительно выделяем.

    Добрый день Сергей!
    Спасибо за настройку! хотелось бы поделится с вами своим решением проблемы выше. Инструкция будет детальная и понятная для простого пользователя и помогла мне решить проблему на 3 рабочих станциях. У меня точно так же возникал запрос на сохранение файла при каждом закрытии файлов эксель.

    Как установить надстройку в программе Excel

    Общие сведения.

    Надстройки для программы excel хранятся в файлах с расширением *.xlam и*. xla.

    Расширение *. Xla, как правило, используется в версиях excel 97-2003, но может поддерживаться и более поздними версиями программы.

    Расширение *.xlam подходит только для последних версий программы, начиная с 2007.

    Как установить надстройку в Эксель.

    1. Необходимо скопировать файл с надстройкой в папку на жестком диске Вашего компьютера для постоянного хранения.

    Внимание: Без файла надстройка работать не будет. Не удаляйте его.

    1. Далее следует запустить программу Excel.
    2. После запуска программы зайти в меню «Файл» =>«Параметры»
    3. В открывшемся окне выбрать вкладку «Надстройки» и нажать кнопку «Перейти».
    4. В появившемся окне при помощи кнопки «Обзор…» указать путь к файлу с надстройкой, которую Вы сохранили на жестком диске компьютера.
    5. После нажатия кнопки «ОК» надстройка будет добавлена в программу.
    6. Следует убедиться, что надстройка активирована флажком («Галочкой» ) напротив названия.

    Видео инструкция по установке надстройки:

    Скачать !SEMTools

    Последнюю версию надстройки можно скачать, нажав на кнопку ниже:

    Как установить:

    1. Не открывая скачанный файл, кликаем по выпадающему списку в вашем браузере.
    2. Открываем папку загрузок.
    3. Копируем или переносим файл надстройки в папку на компьютере, где он не потеряется и не будет случайно удален

    4. По умолчанию Windows блокирует файлы, скачанные из интернета, и в некоторых системах после подключения надстройки вкладка !SEMTools может не отобразиться на панели, для исправления ситуации нужно разблокировать файл, открыв его свойства правой кнопкой мыши.

    Дальнейшие действия производятся в Excel

    Надстройка для Excel !SEMTools поддерживается и корректно работает на версиях Microsoft Excel:
    Excel 2010
    Excel 2013
    Excel 2016
    Excel 365
    На всех версиях Windows от XP до Windows 10
    ВАЖНО: поддержки Excel for Mac нет и стабильная работа на Mac не гарантируется. Большинство функций на Mac не работают/недоступны.

    Подключение надстройки в Excel

    1. Открываем Excel
    2. Идем в Параметры в меню «Файл»
    3. Кликаем по кнопке «Перейти» внизу окна

    4. В открывшемся окошке жмем «Обзор», находим на компьютере файл надстройки и открываем двойным кликом.

    • Файл должен появиться в списке с активной галочкой, жмем «ОК»

    Готово!
    Вкладка !SEMTools на панели управления Excel

    Видеоинструкция:

    Похожие статьи

  • Надстройка ЁXCEL


    Более 100 команд, которых нет в MS Excel.


    Мгновенная обработка данных благодаря уникальным алгоритмам.


    Полная сохранность данных благодаря встроенному модулю безопасности.


    Гибкая индивидуальная настройка параметров.


    Полная on-line справка на русском языке.


    Более 60 формул, которых нет в MS Excel.


    Дружелюбный интерфейс не оставляет вопросов.


    Действия большинства операций можно отменить стандартным способом.


    Постоянное добавление новых команд и функций.


    E-mail поддержка и консультация пользователей.

    Скачать


    Как это работает?

    Все команды и формулы надстройки ЁXCEL работают так же, как и встроенные в MS Excel.

    • Новая вкладка меню
    • Как использовать команды?
    • Как работает отмена?
    • Как использовать формулы?

    Новая вкладка меню

    Надстройка ЁXCEL создаст в вашем MS Excel новую вкладку меню с командами и формулами. Если надстройку удалить или отключить — эта вкладка исчезнет.


    Управление файлами
       
    Управление формулами
       
    Управление почтовыми рассылками
    Управление рабочей книгой
       
    Управление таблицами
       
    Маркетинг и управление запасами
    Управление листами
       
    Управление диаграммами
       
    Управление сводными таблицами
    Обработка текста, чисел и дат
       
    Календарь для ввода дат
       
    Управление графическими объектами

    Управление файлами

     С надстройкой ЁXCEL Вы сможете управлять файлами компьютера прямо из MS Excel.

    • Получить список файлов папки
    • Удалить файлы
    • Создать ссылки на файлы
    • Переименовать файлы

    Получить список файлов папки

    В меню надстройки ЁXCEL выберите команду «Получить список файлов папки«, укажите папку, тип данных для вывода и нажмите OK. В рабочей книге MS Excel выведется список файлов.


    Управление рабочей книгой

    Настраивайте внешний вид рабочей книги прямо из меню надстройки ЁXCEL, не углубляясь в меню параметров MS Excel.

    • Создать оглавление книги
    • Изменить стиль ссылок
    • Полосы прокрутки
    • Показать ярлычки листов

    Создать оглавление книги

    В меню надстройки ЁXCEL выберите команду «Создать оглавление книги» и в активную рабочую книгу добавиться новый лист со ссылками на все листы этой книги.


    Управление листами

    С помощью надстройки ЁXCEL Вы сможете сортировать листы, устанавливать и снимать защиту сразу с нескольких листов, сохранять листы как отдельные файлы, быстро создавать листы с названиями из диапазона ячеек, импортировать листы из закрытых файлов, массово переименовывать листы. Всего надстройка ЁXCEL предоставляет 20 команд для работы с листами. Вот только некоторые из них.

    • Импортировать листы
    • Модуль управления листами
    • Список листов книги
    • Переименовать листы

    Импортировать листы

    Выберите в меню надстройки ЁXCEL команду «Вставить листы из другой книги» и укажите файл, из которого необходимо импортировать листы. Листы из этого файла будут вставлены в активную книгу.


    Обработка текста, чисел и дат

    Выделите ячейки с текстом, числами или датами и воспользуйтесь одной из 25 команд надстройки ЁXCEL. Объединяйте ячейки без потери данных, сжимайте пробелы, меняйте регистр, преобразуйте числа и даты в текст, преобразуйте текст в даты и числа. Быстро создавайте нумерованные списки, удаляйте непечатаемые символы, гиперссылки, примечания, условное форматирование и проверку данных из выделенных ячеек. Меняйте кириллицу на латиницу и наоборот. Извлекайте уникальные слова из текста, генерируйте сложные пароли, удаляйте или добавляйте слова, или символы к тексту выделенных ячеек… Вот только некоторые возможности надстройки ЁXCEL по обработки текста, чисел и дат.

    • Объединить ячейки
    • Заполнить пустые ячейки
    • Преобразовать значения
    • Редактировать значения

    Объединить ячейки

    Выделите ячейки, которые вы хотите объединить. В меню надстройки ЁXCEL выберите команду «Объединить ячейки без потери данных» и выделенные ячейки будут объединены, а все данные в них сохранятся.


    Управление формулами

    Надстройка ЁXCEL предоставляет 4 удобных команды по управлению формулами.

    • Закрепить диапазоны
    • Формулы на значения
    • Разорвать связи
    • Пересчитать формулы в диапазоне

    Закрепить диапазоны

    Выделите ячейки с формулами, в которых вы хотите закрепить диапазоны. В меню надстройки ЁXCEL выберите команду «Закрепить диапазоны» и в выделенных ячейках все диапазоны будут закреплены одним из трех возможным способов или закрепление будет снято.


    Надстройка ЁXCEL

    ОС Windows (RU)
    MS Excel 2007 — 2019 (RU)
    Версия: 22.02
    135 команд
    69 формул
    Открытый код VBA
    On-Line консультации
    Регулярные обновления
    Для любого количества ПК

    Если у Вас возникнут какие-либо вопросы, просто, напишите мне и я постараюсь ответить на них как можно скорее.

    hvostov@e-xcel.ru Хвостов Сергей

    Добавить комментарий

    Like this post? Please share to your friends:
  • Как создать надпись в excel
  • Как создать на рабочем столе документ microsoft word
  • Как создать макрос для кнопки в excel 2007
  • Как создать на листе excel формула
  • Как создать макрос для всех листов в excel