Скачать библиотеки для excel

XLL-надстройка представляет собой скомпилированный на C/C++ файл динамической библиотеки Windows, специально предназначенной для использования в Excel. Разработчикам предоставляется специальная библиотека C API (Excel XLL SDK). Использование языка C/С++ с возможностью управления памятью позволяют разработать самые мощные и производительные функции для работы с данными Excel.

В тестах до 35 раз быстрее кода написанного на VBA.

Технические характеристики:

Последняя стабильная Release-версия (х32 и х64): 4.4 от 18/12/2022
Продукт написан на С/С++

Область применения — Excel 2007 (х32, х64) и выше (для Excel x32 — версия библиотеки (х86), для Excel х64 — версия (х64)). Не поддерживается WinXP.

Содержит библиотеку BedvitCOM (весь функционал BedvitCOM ). Данные версии продуктов — распространяются бесплатно.

НЕ нужно устанавливать или удалять в системе, это один файл (+файл сохранений .bin), подключается как «обычная» надстройка .xla, .xlam или открывается как файл Excel

НЕ нужен .NET Framework, НE нужны какие либо другие библиотеки, НЕ нужна регистрация или активация, НЕ нужно подключение к Интернет

Для ленивых (как я), добавил установщик (Install…), который сам поместит библиотеку в нужную папку и подключит (cостоит из 2 частей. т.к. в единой сборке (предыдущая версия) переодически вызывает рефлексию у антивируса, несмотря на то, что код открыт, и легко проверяется отсутствие вредоносного функционала.).

Как установить и настроить?

Функционал:

1.Вычисления любой точности (в системах счисления с основанием от 2 до 36) на исходниках библиотеки MPIR, Edition 3.0.0 (на основе библиотеки GMP) на С/С++

2.Обработка txt (csv)-файлов (поиск, сортировка, удаление дубликатов, подсчёт строк и др.)

3.Инструменты для работы с массивами (сортировка, удаление дубликатов, транспонирование, изменение размерности с сохранением данных, фильтрация и т.д.)

4.Работа со строками:

+хеширование строки разными алгоритмами SHA (+ новейшие SHA3) , 

+получить/удалить любые символы Unicode из строки

+удалить из текста лишние пробелы

+поиск вхождения подстроки в строку

+заменить одну подстроку на другую

+поиск строки в одномм массиве с выводом данных из второго массива (соответствующим похиции найденного значению в первом массиве)

5.Генератор QR-кода + конвертации графических форматов из одного в другой

5.1  Функцией в Excel: QRcodePrint

5.2 Кодом VBA

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

QR-код на блог.

6.Подбор слагаемых под нужную сумму (по алгоритму от MCH)

7. Прочие команды меню

+ Help: Содержание + Лог текущей версии библиотеки.
+ Открыть (сохраненные настройки)
+ Сохранить в файл (текущие настройки)
+ Влияющие ячейки (на выделенный диапазон)
+ Зависимые ячейки (от выделенного диапазона)
+ Работа с Форматами ячеек (задать, сохранить, выбрать сохраненный и т.д.)
+ Конвертировать число сохраненное как текст в число (с удалением пробелов, мягких переносов, непечатаемых символов между цифрами) — реализовано v2.0.1.7
+ Разорвать связи на текущем листе с другими ЛИСТАМИ этой книги и внешними файлами
+ Транспонирование на месте
+ Работа с именами (показать скрытые, удалить ошибочные, удалить все),в т.ч. скрытые, не отображаемые в диспетчере имён
+ Перевести условное форматирование в обычный формат ячейки в выделенном диапазоне или на всем листе — реализовано v3.0.0.0
+ Подбор слагаемых под нужную сумму
+ Выделить разным цветом группы дубликатов в выделенном диапазоне или на всем листе с выводом статистики — реализовано v2.0.2.4
+ Быстрый поиск значений на листе
+ Вывести на новый лист список всех листов текущей книги (с гиперссылкой)
+ Вывести на новый лист список всех ячеек текущей книги, содержащих ошибку (с гиперссылкой) — реализовано v2.0.2.4
+ Вывести на новый лист список всех внешних связей или ячеек текущей книги, содержащих ссылку на другую книгу(с гиперссылкой) — реализовано v3.0.0.0
+ Удалить пустые строки и столбцы в данных на листе
+ А,R — Стиль ссылок: А1, R1C1
+ Блок работы с VBA-кодом (хранение, выполнение, просмотр по паролю и т.д.)
+ BedvitCOM: ON/OFF — Автоматическое подключение библиотеки BedvitCOM в References (VBA)
+ XLL Язык меню: RU, EN (сейчас поддерживается только RU)
+ XLL Диалог: пользовательский диалог пои выполнении команд: ON-включен, OFF- выключен.
+ XLL API: возможность использования команд XLL в VBA, с задаваемыми параметрами(
первый параметр для каждой команды — API диалога: «0»-Запрос пользователю, «1»-Да, «2»-Нет, «3»-Отмена.
Задаётся отдельно для каждого диалога, т.е. строка «0123» задаёт 4 параметра: «Запрос пользователю», «Да», «Нет», «Отмена» на 4 последовательных диалога)

+ Функции листа:

+ Сумма прописью (разные форматы)

+ ОБЪЕДИНИТЬ (TEXTJOIN) текст из диапазона и (или) строк, вставляя между текстовыми значениями указанный разделитель или массив разделителей — реализовано v2.0.1.7

8. XLL хранение и выполнение VBA кода, или защита VBA кода от просмотра (подробнее по ссылке)

Более подробно (с примерами) в моем блоге на www.cyberforum.ru

Библиотека/Надстройка распространяется бесплатно.

Макрос VBA загрузки списка файлов из папки

Функция FilenamesCollection предназначена для получения списка файлов из папки, с учётом выбранной глубины поиска в подпапках.

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

К статье прикреплено 2 примера файла с макросами на основе этой функции:

  • Читать далее
  • 301923 просмотра
  • 2 прикреплённых файла

Выпадающий календарь в ячейке листа Excel

Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel.

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

Поместите файл надстройки из вложения в папку автозагрузки Excel (C:Program FilesMicrosoft OfficeOFFICExxXLSTART).

В контекстном меню ячеек появляется новый пункт — «Выбрать дату из календаря«.
Рядом с ячейками, в которые уже введена дата, будет отображаться маленький календарик, щелчок по которому вызовет большой календарь — для выбора даты.

  • Читать далее
  • 290087 просмотров
  • 2 прикреплённых файла

Требуется макросом поместить изображение (картинку) на лист Excel?

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

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

В этом примере демонстрируются возможные варианты применения функции вставки картинок:

  • Читать далее
  • 237291 просмотр

макрос удалит на листе все строки, в которых содержится искомый текст:

(пример — во вложении ConditionalRowsDeleting.xls)

Sub УдалениеСтрокПоУсловию()
    Dim ra As Range, delra As Range, ТекстДляПоиска As String
    Application.ScreenUpdating = False    ' отключаем обновление экрана

    ТекстДляПоиска = "Наименование ценности"    ' удаляем строки с таким текстом

    ' перебираем все строки в используемом диапазоне листа
    For Each ra In ActiveSheet.UsedRange.Rows
  • Читать далее
  • 234936 просмотров
  • 2 прикреплённых файла

Функции GetFileName и GetFilePath по сути аналогичны, и предназначены для вывода диалогового окна выбора файла
(при этом можно указать стартовую папку для поиска файла, и тип/расширение выбираемого файла)

Функция GetFilenamesCollection позволяет выборать сразу несколько файлов в одной папке.

Функция GetFolderPath работает также, только служит для вывода диалогового окна выбора папки.

  • Читать далее
  • 214489 просмотров

Запись от bedvit размещена 06.08.2019 в 18:48

Обновил(-а) bedvit 20.12.2022 в 22:16
(BedvitXLL(v3.1.0.0)+BedvitCOM(v2.0.0.0))

Решил объединить все проекты по данной тематике в одно решение.
Скачать новые версии библиотек XLL и COM на сайте.

Более подробно по компонентам — в отдельных темах (будут линки).1.BedvitCOM (библиотека COM/ActiveX)

Область применения — COM/ActiveX поддерживающие приложения/языки на Windows (х32, х64).
Реализованы dual-интерфейсы с Automation-совместимыми типами данных (поддержка раннего и позднего связывания).
При раннем связывании есть описание функционала и параметров.
Регистрация COM реализовано как под админом, так и под пользователем (актуально в офисной части клиентов)
Регистрация стандартная:
Админ: Regsvr32 «FullName.DLL» !ПОМНИМ! В Win10 регистрация под правами админа: «правая кнопка» — «Пуск» -«Командная строка (администратор)»
Пользователь: Regsvr32 /i /n «FullName.DLL»
Удалить из реестра: Regsvr32 /u «FullName.DLL»

Примеры использования:

Кликните здесь для просмотра всего текста

Раннее связывание

Visual Basic
1
2
3
4
Sub Help()
Dim bCOM As New BedvitCOM.BignumArithmeticFloat
bCOM.Help
End Sub

Позднее связывание

Visual Basic
1
2
3
4
5
6
7
Sub Help()
Dim bCOM
Set bCOM = CreateObject("BedvitCOM.BignumArithmeticFloat")
bCOM.Help
'или в одну строку
CreateObject("BedvitCOM.BignumArithmeticFloat").Help
End Sub
1C
1
2
bCOM = Новый COMОбъект("BedvitCOM.BignumArithmeticFloat");
bCOM.Help;

Содержит:
1. Класс BignumArithmeticInteger — длинная арифметика с целыми числами.

Кликните здесь для просмотра всего текста

Свойства и Методы BignumArithmeticInteger

1.Help(); HTML Справка (без параметров).

2.BSTR* StringBSTR = Bignum(BYTE Bignum, LONG BignumBase=10) = BSTR* StringBSTR ; Свойство. Принимает и возвращает BSTR* строку StringBSTR (задает число или возвращает значение). Bignum-индекс длинного числа в массиве (0-255). BignumBase-база длинного числа (от 2 до 36), по умолчанию = 10.

3.LONG Val = Sign(BYTE Bignum); Свойство. Возвращает знак длинного числа LONG Val.Возвращает 1 если Bignum > 0, 0 если Bignum = 0, и -1 если Bignum < 0.

4.LONG Val = Even(BYTE Bignum); Свойство. Определяет, является ли Bignum четное или нечетное. Возвращает 1 — Bignum четное, 0 — Bignum нечетное.

5.LONG Val = Compare(BYTE Bignum1, BYTE Bignum2); Метод. Сравнивает два длинных числа. Возвращает 1 если Bignum1 > Bignum2, 0 если Bignum1 = Bignum2, и -1 если Bignum1 < Bignum2.

6.BignumSet(BYTE Bignum, BSTR StringBSTR, LONG BignumBase=10); Метод. Задает число с параметрами аналогичными свойству Bignum()

7.Sum(BYTE BignumSet, BYTE Bignum1, BYTE Bignum2); Метод. Суммирует два длинных числа. BignumSet = Bignum1 + Bignum2

8.SumL(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Суммирует длинное число с обычным. BignumSet = Bignum1 + LONG_PTR(х64:LONG_PTR= LONGLONG, х32:LONG_PTR= LONG)

9.Abs(BYTE BignumSet, BYTE Bignum1); Метод. Возвращает модуль значения из Bignum1 в BignumSet.

10.Negate(BYTE BignumSet, BYTE Bignum1); Метод. Возвращает значение с противоположным знаком из Bignum1 в BignumSet. BignumSet = — Bignum1.

11.Subtract(BYTE BignumSet, BYTE Bignum1, BYTE Bignum2); Метод. Вычитает из одного длинного числа второе. BignumSet = Bignum1 — Bignum2

12.SubtractL(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Вычитает из длинного числа обычное. BignumSet = Bignum1 — LONG_PTR.

13.Multiply(BYTE BignumSet, BYTE Bignum1, BYTE Bignum2); Метод. Умножает одно длинное число на второе. BignumSet = Bignum1 * Bignum2.

14.MultiplyL(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Умножает длинное число на обычное. BignumSet = Bignum1 * LONG_PTR.

15.Divide(BYTE BignumQuotient, BYTE BignumRemainder, BYTE Bignum1, BYTE Bignum2); Метод. Делит одно длинное число на второе. При делении получаем частное в BignumQuotient, остаток от деления в BignumRemainder = Bignum1 / Bignum2.

16.DivideL(BYTE BignumQuotient, BYTE BignumRemainder, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Делит длинное число на обычное. При делении получаем частное в BignumQuotient, остаток от деления в BignumRemainder = Bignum1 / LONG_PTR.

17.Power(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Возводит в степень LONG_PTR длинное число Bignum1, результат возвращает в BignumSet. BignumSet = Bignum1 ^ LONG_PTR.

18.Clone(BYTE BignumSet, BYTE Bignum1); Метод. Копирует Bignum1 в BignumSet. BignumSet = Bignum1

19.RootRem(BYTE BignumRoot, BYTE BignumRemainder, BYTE Bignum1, LONG_PTR n_root); Метод. Извлекает корень n_root-степени из Bignum1. Целочисленный результат возвращает в BignumRoot, остаток в BignumRemainder = (n-th root)√ Bignum1.

20.Factorial(BYTE BignumSet, LONG n); Метод. Возвращает в BignumSet факториал n!

21.Fibonacci(BYTE BignumSet, LONG_PTR n); Метод. Возвращает в BignumSet число Фибоначи n. Fn+1 = Fn + Fn-1

22.LucNum(BYTE BignumSet, LONG_PTR n); Метод. Возвращает в BignumSet число Лукоса n. Ln+1 =Ln + Ln-1

23.FileSet(BYTE Bignum, BSTR StringBSTRFileName, LONG BignumBase=10); Метод. Загружает длинное число из файла (*.txt). Принимает BSTR* строку StringBSTRFileName в качестве полного пути и имени файла. Bignum-индекс длинного числа в массиве (0-255). BignumBase-база числа (от 2 до 36), по умолчанию = 10.

24.FileGet(BYTE Bignum, BSTR StringBSTRFileName, LONG BignumBase=10); Метод. Сохраняет длинное число в файл (*.txt). Принимает BSTR* строку StringBSTRFileName в качестве полного пути и имени файла. Bignum-индекс длинного числа в массиве (0-255). BignumBase-база числа (от 2 до 36), по умолчанию = 10.

25.Clear(LONG Bignum=-1); Метод. Освобождает память занятую длинным числом Bignum, или освобождает память занятую всеми числами при заданном параметре по умолчанию = -1. Начиная с v2.0.0.0 деструктор класса сам очищает память (при удалении класса или завершении процедуры в VBA).

26.LONG Val = BignumArraySize(); Метод. Возвращает количество чисел Bignum в созданном классе/массиве. Начиная с v2.0.0.0 (теперь массив чисел может быть произвольного размера, а не как ранее 256 чисел. Размер увеличиваться автоматически.)

2. Класс BignumArithmeticFloat — длинная арифметика с дробными числами.

Кликните здесь для просмотра всего текста

Свойства и Методы BignumArithmeticFloat

1.Help(); HTML Справка (без параметров).

2.LONG Val = SizeBits(BYTE Bignum, LONG_PTR* pVal) = .LONG Val; Свойство. Задает и возвращает размер длинного числа в БИТАХ LONG Val. Bignum-индекс длинного числа в массиве (0-255).

3.BSTR* String = Bignum(BYTE Bignum, LONG BignumBase=10, LONG_PTR Precision=0, BSTR Separator=”.”, VARIANT_BOOL Exponential=-1) = BSTR* String; Свойство. Принимает и возвращает BSTR* строку String (задает число или возвращает значение). Bignum-индекс длинного числа в массиве (0-255). BignumBase-база длинного числа (от 2 до 36), по умолчанию = 10. Precision – точность (кол-во цифр в числе), по умолчанию = 0 — максимальная (равна заданному размеру в битах). Separator – символ разделителя целой и дробной частей числа, по умолчанию точка(“.”). Exponential – по умолчанию =-1 экспоненциальная запись, 0 – десятичная (в разработке).

(При парсинге строки в число, ожидаемая десятичная точка берется из текущей локали, на системах, предоставляющих localeconv).

4.LONG Val = Sign(BYTE Bignum); Свойство. Возвращает знак длинного числа LONG Val.Возвращает 1 если Bignum > 0, 0 если Bignum = 0, и -1 если Bignum < 0.

5.LONG Val = Compare(BYTE Bignum1, BYTE Bignum2); Метод. Сравнивает два длинных числа. Возвращает 1 если Bignum1 > Bignum2, 0 если Bignum1 = Bignum2, и -1 если Bignum1 < Bignum2.

6.SizeBitsSet(BYTE Bignum, LONG_PTR SizeBits); Метод. Задает размер длинного числа в БИТАХ LONG Val.

7.BignumSet(BYTE Bignum, BSTR StringBSTR, LONG BignumBase=10, BSTR Separator=”.”); Метод. Задает число с параметрами аналогичными свойству Bignum().

8.Sum(BYTE BignumSet, BYTE Bignum1, BYTE Bignum2); Метод. Суммирует два длинных числа. BignumSet = Bignum1 + Bignum2

9.SumL(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Суммирует длинное число с обычным. BignumSet = Bignum1 + LONG_PTR(х64:LONG_PTR= LONGLONG, х32:LONG_PTR= LONG)

10.Abs(BYTE BignumSet, BYTE Bignum1); Метод. Возвращает модуль значения из Bignum1 в BignumSet.

11.Subtract(BYTE BignumSet, BYTE Bignum1, BYTE Bignum2); Метод. Вычитает из одного длинного числа второе. BignumSet = Bignum1 — Bignum2.

12.SubtractL(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Вычитает из длинного числа обычное. BignumSet = Bignum1 — LONG_PTR.

13.Multiply(BYTE BignumSet, BYTE Bignum1, BYTE Bignum2); Метод. Умножает одно длинное число на второе. BignumSet = Bignum1 * Bignum2.

14.MultiplyL(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Умножает длинное число на обычное. BignumSet = Bignum1 * LONG_PTR.

15.Divide(BYTE BignumSet, BYTE Bignum1, BYTE Bignum2); Метод. Делит одно длинное число на второе. BignumSet = Bignum1 / Bignum2

16.DivideL(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Делит длинное число на обычное. BignumSet = Bignum1 / LONG_PTR.

17.Root(BYTE BignumSet, BYTE Bignum1); Метод. Извлекает квадратный корень из Bignum1. Результат возвращает в BignumSet. BignumSet = √ Bignum1.

18.Negate(BYTE BignumSet, BYTE Bignum1); Метод. Возвращает значение с противоположным знаком из Bignum1 в BignumSet. BignumSet = — Bignum1.

19.Power(BYTE BignumSet, BYTE Bignum1, LONG_PTR LONG_PTR); Метод. Возводит в степень LONG_PTR длинное число Bignum1, результат возвращает в BignumSet. BignumSet = Bignum1 ^ LONG_PTR.

20.Clone(BYTE BignumSet, BYTE Bignum1); Метод. Копирует Bignum1 в BignumSet. BignumSet = Bignum1

21.FileSet(BYTE Bignum, BSTR StringBSTRFileName, LONG BignumBase=10); Метод. Загружает длинное число из файла (*.txt). Принимает BSTR* строку StringBSTRFileName в качестве полного пути и имени файла. Bignum-индекс длинного числа в массиве (0-255). BignumBase-база числа (от 2 до 36), по умолчанию = 10.

(При парсинге строки в число, ожидаемая десятичная точка берется из текущей локали, на системах, предоставляющих localeconv).

22.FileGet(BYTE Bignum, BSTR StringBSTRFileName, LONG BignumBase=10, LONG_PTR Precision=0); Метод. Сохраняет длинное число в файл (*.txt). Принимает BSTR* строку StringBSTRFileName в качестве полного пути и имени файла. Bignum-индекс длинного числа в массиве (0-255). BignumBase-база числа (от 2 до 36), по умолчанию = 10. Precision – точность (кол-во цифр в числе), по умолчанию = 0 — максимальная (равна заданному размеру в битах).

23.Clear(LONG Bignum=-1); Метод. Освобождает память занятую длинным числом Bignum, или освобождает память занятую всеми числами при заданном параметре по умолчанию = -1. Начиная с v2.0.0.0 деструктор класса сам очищает память (при удалении класса или завершении процедуры в VBA).

24.LONG Val = BignumArraySize(); Метод. Возвращает количество чисел Bignum в созданном классе/массиве. Начиная с v2.0.0.0 (теперь массив чисел может быть произвольного размера, а не как ранее 256 чисел. Размер увеличиваться автоматически.)

25.BSTR* String = GetToBignumInt(LONG Bignum, LONG BignumBase=10); Метод. Преобразовать Bignum из Float в Integer и вывести. ВАЖНО! преобразование происходит с заданной ранее точностью в битах для Float (SizeBitsSet). Без округлений, отбрасывается дробная часть. Будьте внимательнее в таких преобразованиях. Начиная с v2.0.0.0.

3. Класс VBA — набор функций/методов для работы в VBA, и в других COM/ActiveX поддерживающих языках
Методы:
3.1 ArraySortS() — быстрая сортировка данных (String) в одномерном/двухмерном массиве

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — указатель на массив (ввод/вывод)
2.sort_order — порядок сортировки : 0-по возрастанию, 1-по убыванию
3.key_1 — ключи сортировки (индекс столбца или строки) по умолчанию — первый столбец/строка
4.key_2
5.key_3
6.sort_orientation — ориентация сортировки (0 — по строкам, 1 — по столбцам, 2- целый массив вывод строка-столбец, 3- целый массив вывод столбец-строка)
7.delete_duplicates — удаляем дубликаты (в одномерных массивах)
8.out_array_index — выводим индексы, «булево» 1/0 (тогда основной массив array_in_out — не меняется, выводятся данные в index_array_out )
9.index_array_out — одномерный массив с индексами (с учетом всех ключей), если задан out_array_index=1

Все параметры метода, кроме входящего массива — опциональные (с значениями по умолчанию — 0 (ключи-1))
Метод «ArraySort» работает через Variant, т.к. на некоторых скриптовых языках SAFEARRAY ходит через границы COM, только в обертке VARIANT (без изобретения костылей).

3.2 FilterUnicodeChar() — получить/удалить любые символы Unicode из строки. Регистрозависимая.

Кликните здесь для просмотра всего текста

Параметры метода:
1. StringIn — входящая строка
2. Второй параметр (EnableChar) — символы включаемые в итоговую строку (через «-» указывается диапазон, сам «-» выводится если его поставить первым символом в шаблоне)
3. Третий параметр (DisableChar) — символы исключаемые из итоговой строки ( через «-» указывается диапазон, сам «-«тудаляется если его поставить первым символом в шаблоне) .
Последние два параметра — не обязательные. Можно задавать любой из них, можно все два, можно никакой — тогда выводится первоначальная строка

3.3 LikeUnicodeChar() — Сравнивает строку с маской/шаблоном (или наоборот исключая символы шаблона). Регистрозависимая. (v1.0.5.0 и выше)

Кликните здесь для просмотра всего текста

Параметры метода:
1.stringIn — входящая строка
2.maskChar — маска/шаблон (через «-» указывается диапазон, сам «-» выводится/удаляется если его поставить первым символом в шаблоне)
3.invertMask — инвертировать маску (сравнение, исключая символы маски)
Возвращает булево.

3.4 Trim() — удаляет из текста все пробелы, за исключением одиночных пробелов между словами.

Кликните здесь для просмотра всего текста

Параметры метода:
1.StringIn — входящая строка
2.StringOut — результирующая строка

3.5 InStr() — ищем первое вхождение подстроки в строку. Регистрозависимая.

Кликните здесь для просмотра всего текста

Параметры метода:
1.StringIn — строка в которой производим поиск
2.StringFind — подстрока для поиска в StringIn
3.Start — позиция с которой начинаем поиск в строке

3.6 Replace() — заменить одну подстроку на другую. Параметр Start — не усекает строку, в отличии от стандартной Replace. Регистрозависимая

Кликните здесь для просмотра всего текста

Параметры метода:
1.StringIn — строка в которой производим поиск
2.StringFind — подстрока для поиска и замены в StringIn
3.StringReplace — подстрока на которую заменяем StringFind
3.Start — позиция с которой начинаем поиск и замены подстрок в строке
4.Count — количество замен

3.7 ArraySortV() — быстрая сортировка данных (Variant) в одномерном/двухмерном массиве

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — указатель на массив (ввод/вывод)
2.key_1 — ключи сортировки (порядковый номер столбца, начиная с 1), по умолчанию — первый столбец.
3.sort_order1 — порядок сортировки для key_1 : 0-по возрастанию (по умолчанию для всех), 1-по убыванию
4.key_2 — по умолчанию — не участвует
5.sort_order2 — порядок сортировки для key_2
6.key_3 — по умолчанию — не участвует
7.sort_order3 — порядок сортировки для key_3
Ключи задаются по порядку, т.е. сразу указать 3й — нельзя.

3.8 Transpose() — быстрое транспонирование (на месте) двухмерного массива (поддерживаются все типы данных)

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — указатель на массив (ввод/вывод)

3.9 QRcodePrint() — Печать QR-кода

3.10 ConvertFormatImage() — конвертации графических форматов из одного в другой

3.11 GetRowsCountCSVansi() — возвращает кол-во строк в файле

3.12 GetRowCSVansi() — возвращает найденную строку по индексу

3.13 FindRowsInCSVansi() — возвращает найденную строку/строки по искомой подстроке

3.14 SortDeleteDuplicateRowsCSVansi() — сортировка и удаление дубликатов строк в csv/txt(ANSI) файлах

3.15 HashStringSHA() — хеширование строки разными алгоритмами SHA (+ новейшие SHA3) :

3.16 Array2Dto1D() — быстрое преобразования двухмерного массива в одномерный (данные не обрезаются, 2е измерение преобразуются в очередь) (v1.0.5.0 и выше)

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — массив, который нужно преобразовать
2.lLbound1 — нижняя граница нового массива (по умолчанию=0)

3.17 Array1Dto2D() — быстрое преобразование одномерного массива в двухмерный (данные не удаляются) (v1.0.5.0 и выше)

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — массив, который нужно преобразовать
2.lLbound1 — нижняя граница нового массива, 1е измерение (по умолчанию=0)
3.lLbound2 — нижняя граница нового массива, 2е измерение (по умолчанию=0)

3.18 ArrayFilterV() — фильтр для одномерного и двухмерного массива (тип данных VARIANT) с любым количества столбцов, с любом количеством условий (начиная с v2.0.1.0, в XLL c v3.2.1.0).

Кликните здесь для просмотра всего текста

Параметры метода:
1. array_in — массив входящий (одномерный, двухмерный), тип данных VARIANT.
2. array_parameters — массив задаваемых параметров, тип данных VARIANT (6 параметров для одного условия, можно для одного и того же столбца, можно для разных). Количество условий не ограничено. Условия можно создать из списка, можно создать двухмерный массив и заполнить, можно забрать сразу с листа Excel.
3. array_out_index — режим вывода: 0- отфильтрованный массив, 1-массив индексов
4. array_out — массив результатов

Новые инструменты для массива (начиная с BedvitCOM.dll_v2.0.2.0, BedvitXLL.dll_v3.2.2.0)
Для массивов любого количества размерностей, тип данных VARIANT.
Преобразование происходит «на месте» (штатным инструментом от Microsoft VariantChangeType, CharUpperW, CharLowerW)
Для всех элементов массива, для которых возможны преобразования:
3.19 ArrayCharLowerV() — преобразовать все символы строки в нижний регистр

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — массив, который нужно преобразовать (на месте)

3.20 ArrayCharUpperV() — преобразовать все символы строки в ВЕРХНИЙ регистр

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — массив, который нужно преобразовать (на месте)

3.21 ArrayNumToCharV() — преобразовать все данные в тип: String

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — массив, который нужно преобразовать (на месте)

3.22 ArrayCharToNumV() — преобразовать все данные в тип: Double (числа сохраненные как текст)

Кликните здесь для просмотра всего текста

Параметры метода:
1.array_in_out — массив, который нужно преобразовать (на месте)

4. Класс UnorderedMap — ассоциативный контейнер, содержащий пары ключ-значение с уникальными ключами. Поиск, вставка и удаление элементов имеют среднюю постоянную сложность.

2.BedvitXLL (библиотека XLL c C API Functions для Excel)

версия библиотеки XLL — 1.0.0.0
Добавлены функции
02/02/2021 — новая версия библиотеки XLL — 2.0.0.0
Добавлена вкладка команд.
16/04/2022 — новая версия библиотеки XLL — 3.0.0.0
Добавлен функционал работы с VBA-кодом (хранение, выполнение, шифрование). + Новый формат файла пользовательских сохранений (не совместим со старым).

Область применения — Excel 2010 (х32, х64) и выше, VBA
Устанавливается так же, как и «обычная» надстройка Excel (xla, xlam) в папку надстроек или просто открывается как файл.
Содержит библиотеку BedvitCOM, распаковывает (в пользовательский «TEMP») и регистрирует автоматом COM при открытии XLL, и автоматически удаляет COM из реестра при закрытии XLL.
т.е. пользователю НЕ нужно ничего самостоятельно регистрировать, нужно только открыть XLL — всё, можно работать в Excel с новыми функциями и COM-объектами из библиотеки COM в VBA (как с ранним, так и с поздним связыванием).
Upd: 18.12.2022. Начиная с версии 4.4 библиотека СОМ выгружается в ту же папку, из которой запускается надстройка XLL. Для автоматического подключения пользователю нужно разово нажать кнопку подключения СОМ

Примеры использования:

Кликните здесь для просмотра всего текста

Начиная с версии xll v1.0.3.0 рекомендуется использовать раннее связывание, т.к. теперь библиотека сама подключает COM в References и пользователю не нужно писать доп код или подключать вручную COM.

Раннее связывание, версия xll v1.0.3.0 и выше.

Visual Basic
1
2
3
Sub Help()
Dim bCOM As New BedvitCOM.BignumArithmeticFloat: bCOM.Help
End Sub

Позднее связывание (одной строкой)

Visual Basic
1
2
3
Sub Help()
CreateObject("BedvitCOM.BignumArithmeticFloat").Help
End Sub

Раннее связывание (версии xll до v1.0.3.0) вариант 1 (подключаем СОМ в коде)

Visual Basic
1
2
3
4
5
6
7
8
9
Sub RUN_Help() 'подключаем СОМ в References, для раннего связывания
On Error Resume Next: ThisWorkbook.VBProject.References.AddFromGuid "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}", 1, 0
Help
ThisWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("BedvitCOM") 'отключаем библу в References
End Sub
 
Sub Help()
Dim bCOM As New BedvitCOM.BignumArithmeticFloat: bCOM.Help
End Sub

Раннее связывание (версии xll до v1.0.3.0) вариант 2 (подключаем СОМ при открытии книги)

Visual Basic
1
2
3
Sub Help()
Dim bCOM As New BedvitCOM.BignumArithmeticFloat: bCOM.Help
End Sub

а в модуль книги

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    On Error Resume Next: ThisWorkbook.VBProject.References.AddFromGuid "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}", 1, 0 ' подключаем библу "BedvitCOM" в References - version(1.0) для раннего связывания (если библа уже подключена - On Error Resume Next)
End Sub
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    On Error Resume Next: ThisWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("BedvitCOM") 'отключаем библу в References
End Sub
 
Private Sub Workbook_Open()
    On Error Resume Next: ThisWorkbook.VBProject.References.AddFromGuid "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}", 1, 0 ' подключаем библу "BedvitCOM" в References - version(1.0) для раннего связывания (если библа уже подключена - On Error Resume Next)
End Sub

+Новые категории Функций в Excel:
1.XLLBignumArithmeticInteger — функции для работы с длинными целыми числами.
Функции:
1.1 SumInteger() — сложение двух длинных/обычных целых чисел
1.2 SubtractInteger() — вычитание двух длинных/обычных целых чисел
1.3 MultiplyInteger() — умножение двух длинных/обычных целых чисел
1.4 DivideInteger() — деление двух длинных/обычных целых чисел — Неполное частное
1.5 ModInteger() — деление двух длинных/обычных целых чисел — Остаток от деления
1.6 PowerInteger() — возведение в степень длинного/обычного целого числа
1.7 ConvertBaseInteger() — конвертирование целого числа (строки) из одной базы в другую (от 2 до 36).
1.8 FactorialInteger() — факториал задаваемого числа.

2.XLLBignumArithmeticFloat — функции для работы с длинными дробными числами.
Функции:
2.1 SumFloat() — сложение двух длинных/обычных чисел с плавающей точкой
2.2 SubtractFloat() — вычитание двух длинных/обычных чисел с плавающей точкой
2.3 MultiplyFloat() — умножение двух длинных/обычных чисел с плавающей точкой
2.4 DivideFloat() — деление двух длинных/обычных чисел с плавающей точкой
2.5 PowerFloat() — возведение в степень длинного/обычного числа
2.6 RootFloat() — извлечение квадратного корня из длинного/обычного числа

3.XLL — функции не попавшие в другие категории данной библиотеки, с разнообразным функционалом.
Функции:
3.1 FilterUnicodeChar() — получить/удалить любые символы Unicode из строки.

Кликните здесь для просмотра всего текста

Параметры функции:
1. StringIn — входящая строка
2. Второй параметр (EnableChar) — символы включаемые в итоговую строку (через «-» указывается диапазон, сам «-» выводится/удаляется если его поставить первым символом в шаблоне)
3. Третий параметр (DisableChar) — символы исключаемые из итоговой строки (через «-» указывается диапазон).

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

3.2 TrimXLL() — удаляет из текста все пробелы, за исключением одиночных пробелов между словами.

Кликните здесь для просмотра всего текста

Параметры функции:
1.StringIn — входящая строка
2.StringOut — результирующая строка

3.2 VlookupXLL() — это смесь ВПР() и ПРОСМОТР(). Подробное описание

Кликните здесь для просмотра всего текста

Параметры функции:
1.ArrayFind — массив для поиска
2.Find- значение, которое ищем
3.ArrayResult — значение во втором массиве, соответствующее найденному значению в первом массиве.

3.3 GetRowsCountCSVansi() — возвращает кол-во строк в файле

3.4 GetRowCSVansi() — возвращает найденную строку по индексу

3.5 FindRowsInCSVansi() — возвращает найденную строку/строки по искомой подстроке

3.6 QRcodePrint() — Печать QR-кода

3.7 TextJoinXLL() — объединяет текст из нескольких строк, вставляя между текстовыми значениями указанные разделитель(и) — можно задать массив разделителей. Введенные числа будут считаться текстом. Аналог ОБЪЕДИНИТЬ (TEXTJOIN) — начиная с v2.0.1.7
Если объединенная строка содержит свыше 32767 символов (ограничение для ячейки), функция вернет ошибку #ЧИСЛО!.

Кликните здесь для просмотра всего текста

Параметры функции:
1.Range — массив/диапазон строк
2.Delimiter — строка-разделитель (опционально = «»)
3.IgnoreEmpty — игнорировать пустые ячейки в Range (опционально = 0 — не игнорировать)

+Команды меню (начиная с v2.0.0.0)

+ Help: Содержание + Лог текущей версии библиотеки.
+ Открыть (сохраненные настройки)
+ Сохранить в файл (текущие настройки)
+ Влияющие ячейки (на выделенный диапазон)
+ Зависимые ячейки (от выделенного диапазона)
+ Работа с Форматами ячеек (задать, сохранить, выбрать сохраненный и т.д.)
+ Конвертировать число сохраненное как текст в число (с удалением пробелов, мягких переносов, непечатаемых символов между цифрами) — реализовано v2.0.1.7
+ Разорвать связи на текущем листе с другими ЛИСТАМИ этой книги и внешними файлами
+ Транспонирование на месте
+ Работа с именами (показать скрытые, удалить ошибочные, удалить все),в т.ч. скрытые, не отображаемые в диспетчере имён
+ Перевести условное форматирование в обычный формат ячейки в выделенном диапазоне или на всем листе — реализовано v3.0.0.0
+ Подбор слагаемых под нужную сумму
+ Выделить разным цветом группы дубликатов в выделенном диапазоне или на всем листе с выводом статистики — реализовано v2.0.2.4
+ Быстрый поиск значений на листе
+ Вывести на новый лист список всех листов текущей книги (с гиперссылкой)
+ Вывести на новый лист список всех ячеек текущей книги, содержащих ошибку (с гиперссылкой) — реализовано v2.0.2.4
+ Вывести на новый лист список всех внешних связей или ячеек текущей книги, содержащих ссылку на другую книгу(с гиперссылкой) — реализовано v3.0.0.0
+ Удалить пустые строки и столбцы в данных на листе
+ А,R — Стиль ссылок: А1, R1C1
+ Блок работы с VBA-кодом (хранение, выполнение, просмотр по паролю и т.д.)
+ BedvitCOM: ON/OFF — Автоматическое подключение библиотеки BedvitCOM в References (VBA)
+ XLL Язык меню: RU, EN (сейчас поддерживается только RU)
+ XLL Диалог: пользовательский диалог пои выполнении команд: ON-включен, OFF- выключен.
+ XLL API: возможность использования команд XLL в VBA, с задавливаемыми параметрами(
первый параметр для каждой команды — API диалога: «0»-Запрос пользователю, «1»-Да, «2»-Нет, «3»-Отмена.
Задаётся отдельно для каждого диалога, т.е. строка «0123» задаёт 4 параметра: «Запрос пользователю», «Да», «Нет», «Отмена» на 4 последовательных диалога)

Версии библиотек можно посмотреть в имени архива или свойствах файла.
В XLL эти свойства скрыты, нужно временно сменить расширение файла на DLL, см. рис. ниже.

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

Примеры макросов для автоматизации работы

makrosy-filtra-svodnoy-tablicyМакросы для фильтра сводной таблицы в Excel.
Как автоматизировать фильтр в сводных таблицах с помощью макроса? Исходные коды макросов для фильтрации и скрытия столбцов в сводной таблице.

makros-svodnoy-tablicyМакрос для создания сводной таблицы в Excel.
Как автоматически сгенерировать сводную таблицу с помощью макроса? Исходный код VBA для создания и настройки сводных таблиц на основе исходных данных.

makrosy-dlya-formatirovaniya-yacheekМакросы для изменения формата ячеек в таблице Excel.
Как форматировать ячейки таблицы макросом? Изменение цвета шрифта, заливки и линий границ, выравнивание. Автоматическая настройка ширины столбцов и высоты строк по содержимому с помощью VBA-макроса.

makros-pereimenovat-listyМакрос для копирования и переименования листов Excel.
Как одновременно копировать и переименовывать большое количество листов одним кликом мышкой? Исходный код макроса, который умеет одновременно скопировать и переименовать любое количество листов.



Первым делом:

Скачайте библиотеку — скачать microsoft.office.interop.excel.dll

Затем:

Поместите microsoft.office.interop.excel.dll
в одну из следующих папок:

Если у вас 64-битная версия Windows, то поместите файл в:

«C:WindowsSysWOW64»

Если у вас 32-битная версия Windows, то поместите файл в:

«C:WindowsSystem32»

После этого

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

Всё равно выдаёт ошибку microsoft.office.interop.excel.dll
не был найден?

Тогда придётся установить этот файл вручную. Для этого:

Зайдите в меню «Пуск».

В строчке поиска введите «cmd». И запустите найденную программу от имени администратора.

В открывшемся окне введите «regsvr32 microsoft.office.interop.excel.dll
«.

После этого снова перезагрузите компьютер. Теперь ошибка должна быть исправлена.

Если что-то не понятно прочитайте более подробную инструкцию — как установить dll файл.

Понравилась статья? Поделить с друзьями:
  • Скачать библиотеки microsoft word
  • Скачать бесплатный конвектор pdf в word бесплатно на русском
  • Скачать бесплатный word без подписки
  • Скачать бесплатный word 2016 для windows 10 без активации
  • Скачать бесплатный excel без активации для виндовс 10