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