ifempty

    Урок 7. Создание пользовательских надстроек

    Введение

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

    В уроке 4 рассматривалась пользовательская функция ВПР с N-м вхождением и чтобы сохранить файл приходилось его сохранять в формате с поддержкой макросов. Попробуем на его основе создать надстройку.

     

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

     

    Шаг 1. Сохранение файла в формате Надстройка Excel

    Нужно открыть пустой файл Excel и сохранить его в формате надстройки -  указав тип файла Надстройка Excel (*.xlam), имя файла укажите Myvlookup (см. рисунок 1):

     пользв надстройки рис1

    Рисунок 1. Сохранение файла с типом Надстройка Excel

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

    На эданном шаге нужно подключить созданную надстройку. Для этого нужно перейти в меню Файл - Параметры - Надстройки и в нижней части окна нажимаем на кнопку Перейти. далее в окне Надстройка нужно установить галочку в поле Myvlookup и нажать ОК. Смотрите рисунки 2 и 3.

     пользв надстройки рис2

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

     пользв надстройки рис3

    Рисунок 3. Подключение надстройки
    Шаг 3. Добавление в надстройку макроса

    Чтобы добавить код функции ВПР в макров нужно перейти на вкладку Разработчик и открыть Visual Basic. Далее в окне Explorer щелкните правой кнопкой мыши по объекту VBAProject (myvlookup.xlam) и выберите Insert - Module (см. рисунок 4). Если  у вас не открыто окно Explorer, то перейдите в меню View и нажмите на кнопку Project Explorer.

     пользв надстройки рис4

    Рисунок 4. Создание модуля для надстройки

    Далее в редакторе вставьте этот код функции:

    Function MYVLOOKUP(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _
    N As Long, ResultColumnNum As Long)
    Dim i As Long, iCount As Long
    Select Case TypeName(Table)
    Case "Range"
    For i = 1 To Table.Rows.Count
    If Table.Cells(i, SearchColumnNum) = SearchValue Then
    iCount = iCount + 1
    End If
    If iCount = N Then
    MYVLOOKUP = Table.Cells(i, ResultColumnNum)
    Exit For
    End If
    Next i
    Case "Variant()"
    For i = 1 To UBound(Table)
    If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1
    If iCount = N Then
    MYVLOOKUP = Table(i, ResultColumnNum)
    Exit For
    End If
    Next i
    End Select
    End Function

     Затем нажмите на кнопку Сохранить (дискета) в левом верхнем углу окна:

     пользв надстройки рис5

    Рисунок 5. Вставка кода функции в модуль надстройки

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

     пользв надстройки рис6

    Рисунок 6. Функция созданной надстройки в категории Определенные пользователем

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

    C:\Users\Имя пользователя\AppData\Roaming\Microsoft\AddIns

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

     

     

     

     

     


    У вас недостаточно прав