Menu

Tree [7e1c8a] default tip /
 History

Read Only access


File Date Author Commit
 .idea 2024-02-24 Maksim Grishkin Maksim Grishkin [7add84] style: Улучшает оформление кода
 sample 2024-02-25 Maksim Grishkin Maksim Grishkin [e6f100] docs: Добавляет примеры работы с ф-циями
 udf 2024-03-09 Maksim Grishkin Maksim Grishkin [7e1c8a] fix: Добавляет проверку входящих параметров на ...
 udf.tests 2024-02-26 Maksim Grishkin Maksim Grishkin [02bf7f] style: Изменяет автоматическое оформление кода
 .commitlintrc.json 2022-07-15 Maksim Grishkin Maksim Grishkin [f4a03b] chore: Создает solution Rider
 .hgflow 2022-07-15 Maksim Grishkin Maksim Grishkin [f4a03b] chore: Создает solution Rider
 .hgignore 2022-07-15 Maksim Grishkin Maksim Grishkin [f4a03b] chore: Создает solution Rider
 excel.sln 2024-02-24 Maksim Grishkin Maksim Grishkin [0bd7ed] fix(json): Исправляет работу с Json
 excel.sln.DotSettings 2024-02-26 Maksim Grishkin Maksim Grishkin [02bf7f] style: Изменяет автоматическое оформление кода
 license.txt 2024-01-06 Maksim Grishkin Maksim Grishkin [271b01] docs: Добавляет readme и лицензию
 readme.md 2024-02-25 Maksim Grishkin Maksim Grishkin [2e96f1] feat: Добавляет ф-ции работы с массивами

Read Me

Add-in (надстройка) для Excel (в разработке)

Add-in построен на базе Excel-DNA.

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

Название Описание
Форматирование текста:
НаборСтроки Замена заполнителей в строке ({0}, {1}) переданными в качестве аргументов функции значениями. [Подробности] (https://learn.microsoft.com/ru-ru/dotnet/standard/base-types/composite-formatting)
РублиПрописью Отображает сумму в рублях прописью
ОкруглГаус Округление десятичных чисел по Гауссу (до ближайшего четного знака)
СократитьФио Сокращает Фамилию Имя Отчество до ФИО или ИОФ
ПрописнаяПервая Делает первую букву в строке прописной
Реверс Возвращает символы текста в обратном порядке
Информационные функции
ТекущийПользователь Доступная информация о текущем пользователе из ActiveDirectory
Функции для работы с файлами
ФайлСуществуетЛи Проверяет существует ли файл
Управляющие функции
Coalesce Возвращает первый из аргументов, не являющихся ошибкой или пустым
ОтобрСтр Отоброжает/скрывает строку по условию
ОтобрСтлб Отоброжает/скрывает столбец по условию
JSON:
JsonИндекс Извлекает элементы json по индексу
JsonPath Извлекает элементы json с помощью синтаксисаJSONPath
JmesPath Извлекает элементы json с помощью синтаксисаJMESPath
Http:
HttpGet_active Get запрос (выполняется каждый раз при пересчете формулы 😕)
HttpGet_if Get запрос. Необходимость отправки повторного запроса регулируется специальным флагом
HttpPost_active Post запрос (выполняется каждый раз при пересчете формулы 😕)
HttpPost_if Post запрос. Необходимость отправки повторного запроса регулируется специальным флагом
Base64Кодировать Кодирует текст в base64 код
Base64Декодировать Декодирует текст из формата base64
Функции для работы с массивами
СоединитьСписки Соединяет несколько списков в один
Сортировать Сортирует элементы в списке
УбратьПовторы Убирает повторяющиеся значения в списке
ОставитьЗначимые Убирает из списка не значимые элементы: ошибки, пустые строки
ЧислоЗначимых Возвращает количество значимых элементов (не ошибки, и не пустые строки)

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

Доступны по адресу sample\sample.xlsm.
Для исследования примера необходимо рядом с файлом sample.xlsm разместить файл надстройки:
gmafffff.excel.udf_x64.xll или gmafffff.excel.udf_x32.xll.

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

Установка для пользователя системы

Согласно инструкции
от Microsoft.

Загрузка надстройки при запуске только конкретного файла Excel

Сохраните файл как книгу Excel с поддержкой макросов (.xlsm).
Разместите рядом с файлом Excel файлы надстройки "
.xll"
В проекте VBA добавьте к элементу ЭтаКнига следующую процедуру:

Private Sub Workbook_Open()
Dim succes As Boolean
Dim addinPath, addinName, addinFullName, defaultPath As String

    addinPath = IIf(Not ActiveWorkbook Is Nothing, ActiveWorkbook.Path, _
                IIf(Not ActiveWindow.Parent Is Nothing, ActiveWindow.Parent.Path, _
                    ThisWorkbook.Path))

    addinName = "gmafffff.excel.udf"
    #If Win64 Then
        Debug.Print ("x64")
        addinName = addinName & "_x64.xll"
    #Else
        Debug.Print ("x32")
        addinName = addinName & "_x32.xll"
    #End If
    addinFullName = addinPath & "\" & addinName

    defaultPath = Application.DefaultFilePath
    Application.DefaultFilePath = addinPath

    For Each надстр In Application.AddIns2
        If надстр.Name = addinName Then
            Exit Sub
        End If
    Next

    Debug.Print ("Load addin")
    succes = Application.RegisterXLL(addinFullName)

    If succes Then
        Debug.Print ("addin " & addinName & " успешно загружен")
    Else
        Debug.Print ("addin " & addinName & " не загружен")
    End If

    Application.DefaultFilePath = defaultPath
End Sub