Дата

Событие

15.10.2022

BedvitCOM.dll_v3.0

BedvitXLL.dll_v4.0

+Новый код версий сборки для XLL и СОM библиотек: major.minor.date.time

+Новый установщик для XLL (теперь все в одном файле)

+Новое обозначение разрядности библиотек (было BedvitXLL(x86).xll, стало BedvitXLL32.xll)

20.09.2022

BedvitCOM.dll_v2.0.2.0

BedvitXLL.dll_v3.2.2.0

Новые инструменты для массива.
Для массивов любого количества размерностей, типа - VARIANT.
Преобразование происходит "на месте" (штатным инструментом от Microsoft VariantChangeType, CharUpperW, CharLowerW)
Для всех элементов массива, для которых возможны преобразования:
1.ArrayCharLowerV() - преобразовать все символы строки в нижний регистр
2.ArrayCharUpperV() - преобразовать все символы строки в ВЕРХНИЙ регистр
3.ArrayNumToCharV() - преобразовать все данные в тип: String
4.ArrayCharToNumV() - преобразовать все данные в тип: Double (числа сохраненные как текст)

Подробнее в блоге

BedvitCOM.dll_v2.0.1.0

BedvitXLL.dll_v3.2.1.0

Новый инструмент для массивов COM: Фильтр для массива ArrayFilterV()

Завершается цикл разработки инструментов для массивов.

Готовые инструменты:

ArraySortS() - быстрая сортировка данных (String) в одномерном/двухмерном массиве

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

ArrayFilterV() - быстрый и универсальный фильтр одномерного/двухмерного массива  (любые условия для любого набора столбцов)

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

Array2Dto1D() - быстрое преобразования двухмерного массива в одномерный (данные не обрезаются, данные из всех измерений располагаются в первоначальном порядке)

Array1Dto2D() - быстрое преобразование одномерного массива в двухмерный (данные не удаляются) 

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

01.08.2022

BedvitXLL v3.2.0.2

1.Оптимизирован алгоритм прорисовки команд меню при добавлении/удалении (меньше переключений между окнами Excel)

27.07.2022

BedvitXLL v3.2.0.1

1.Исправлена ошибка в команде "МЕНЮ", в подкоманде "По умолчанию" (ранее команды "по умолчанию" зависили от набора команд при сохранении настроек, теперь это фикс.)

2.Исправлен обработчик ошибок в блоке команд "Ссылки" (в результате чего могли возникать критические ошибки с закрытием Excel)

BedvitXLL v3.2.0.0

1.Изменился алгоритм работы библиотеки/надстройки с пользовательскими сохранениями

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

Ранее все настройки сохранялись в базовом BedvitXLL.bin, и могли только экспортироватся в другой .bin (Сохранить как...) или загружатся в базовое сохранение (Открыть), т.е. ранее работа библиотеки/надстройки всегда была с базовым сохранением.

2.Новый функционал: вывод коллекции иконок Excel по FaceID (около 32 тыс.штук) с возможностью вывести на лист Excel.

3.Новый функционал: копировать/вставить формулы на листе Excel (без смещения адресов). Не используется буфер обмена.

 

BedvitCOM v2.0.0.1 - не критичные исправления ошибок (array.vt & (VT_ARRAY | VT_VARIANT))

06.05.2022

BedvitXLL v3.0.0.0 - 3.1.0.0 

1.Новая команда меню - "МЕНЮ". Дает пользователю возможность настраивать меню и контекстное меню - включая нужные команды и отключая не используемые.

2.Новый функционал для хранения и выполнения VBA кода + защита VBA кода от просмотра

3.Новый формат файла пользовательских сохранений BedvitXLL.bin (не совместим со старым).

4.Создан новый установщик BedvitXLL. Состоит из 2 частей. т.к. в единой сборке (предыдущая версия) переодически вызывает рефлексию у антивируса, несмотря на то, что код открыт, и легко проверяется отсутствие вредоносного функционала. 

29.04.2022

 BedvitCOM v2.0.0.0
1.Класс/массив Bignum теперь может быть любого размера, а не как ранее 256 чисел. Увеличение размера происходит автоматом, в зависимости от последнего задаваемого индекса числа в массиве.
2.В связи с этим добавлен метод BignumArraySize() - Возвращает количество чисел Bignum в созданном классе/массиве.
3.Добавлено преобразование Bignum из Float в Integer (обратное преобразование было возможно и ранее). Метод GetToBignumInt(LONG Bignum, LONG BignumBase=10)ВАЖНО! преобразование происходит с заданной ранее точностью в битах для Float (SizeBitsSet). Без округлений, отбрасывается дробная часть. Будьте внимательнее в таких преобразованиях.
4.Исправлен баг в выделением памяти для разных экземпляров одного и того же класса. Теперь для каждого экземпляра - свой участок памяти.
5.Теперь деструктор класса сам очищает память (при удалении класса или завершении процедуры в VBA). Методы Clear теперь нужны только там, где нужно освободить память в действующим классе. При завершении процедуры их писать не обязательно (для VB, и для языков, где класс уничтожается при завершении процедуры - запуская деструктор).

02.02.2021

BedvitXLL v2.0.0.0
Большое обновление.
Добавлена вкладка команд и контекстное меню.
Добавлен набор команд (описание по ссылке)

11.01.2021

23.12.2020

Куплен домен bedvit.ru. Открыт этот сайт.

26.08.2020

Обнаружена интересная особенность: событиями Excel делится сначала с VBA, потом с С++ (с DLL).
Из этого вытекает следующее:
1. Код VBA всегда будет опережать по событиям код из XLL.
2. Это нужно учитывать в своих проектах при использовании DLL.

В частности, в моем случае, при обработки 3х событий в VBA - открытия книги, создания новой или после сохранения книги, автоматическое подключения библиотеки СОМ в References (в для раннего связывания) будет происходить после кода VBA.

Решением в данном случае (для VBA, который будет использовать одновременно и эти 3-и события и функционал XLL и раннее связывание) может быть следующее:
1.(предпочтительный) Дать секунду времени для загрузки xll (для авто-подключения COM), к примеру так

Visual Basic

Application.OnTime TimeValue(Now + TimeValue("0:00:01")), "Ваш_Макрос"

2. Ручное подключение COM в References (при выключенной XLL). Такие подключения XLL не трогает и они сохраняются вместе с файлом под вашу ответственность (условия: СОМ должна быть уже зарегистрирована)
3. Использовать при таких событиях позднее связывание вместо раннего (условия: СОМ должна быть уже зарегистрирована)
4. Опередить XLL и самостоятельно подключить COM для раннего связывания - кодом

Visual Basic

ThisWorkbook.VBProject.References.AddFromGuid "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}", 1, 0 ' подключаем COM в References"

(это подключение останется с файлом, как в 1-м варианте)
Если не хотим сохранять подключение, можно кодом отключить

Visual Basic

ThisWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("BedvitCOM") 'отключаем СОМ в References

(см. примеры использования в основной теме под спойлером)
(условия: СОМ должна быть уже зарегистрирована)

Лично, пользуюсь 1-м вариантом - самым простым и универсальным (для остальных решений есть определенные условия их применения, см.условия).

21.08.2020

BedvitXLL v1.0.3.0
Начиная с версии xll v1.0.3.0 рекомендуется использовать раннее связывание для подключения BedvitCOM, т.к. теперь библиотека сама подключает BedvitCOM в References и пользователю не нужно писать доп. код или подключать вручную COM-библиотеку.
Преимуществом раннего связывания в VBA является то, что видны все методы и свойства объектов, возможность их выбора из выпадающего списка, полное описание всех свойств и методов библиотеки в обозревателе объектов (F2), а также выше скорость взаимодествие с СОМ.
Подключение осуществляется в открытой книге, в файле не сохраняется (не возникает ошибки подключения на другом ПК, где нет XLL).

12.12.2019

BedvitXLL v1.0.2.0
Добавлены новые функции в блок: XLLBignumArithmeticInteger и в блок XLL

02.09.2019

BedvitCOM v1.0.1.5
Добавлен метод Transpose - быстрое транспонирование (на месте) двухмерного массива (поддерживаются все типы данных).

26.08.2019

BedvitCOM v1.0.1.0
Добавлен метод "ArraySortV" - быстрая сортировка данных (Variant) в одномерном/двухмерном массиве.
Существующий метод "ArraySort" переименован в "ArraySortS" - сортировка данных (String) в одномерном/двухмерном массиве.

21.08.2019

BedvitCOM v 1.0.0.9
1.InStr - на 2% быстрее предыдущей
2.Replace - найдена ошибка, исправлена.
Теперь быстрее на 1,5% замена символов и быстрее на 100% - если нет совпадений (в два раза).
Добавлена проверка на переполнение BSTR-строки: E_OUTOFMEMORY
Производительность функции - 1 млр. замен - 12,5 сек.

07.08.2019

BedvitCOM v1.0.0.6 и BedvitXLL v1.0.0.6

Исправлена ошибка в функции FilterUnicodeChar в СОМ.DLL, скорректированы наименования категорий.
Оставил "bedvit" только в наименовании библиотеки (удалил из категорий функций Excel). А так как, мало кто пишет XLL, думаю других похожих категорий не будет (конкурентов по наименованию).

24.04.2018

BedvitCOM v.1.0.0.3 и BedvitXLL v.1.0.0.3 (поддержка х32 и х64)
1.Добавлены новые функции в два класса библиотеки COM - арифметика длинных чисел с обычными, т.е. теперь можно совершать арифметические действия длинных чисел с обычными.
2.Добавлен механизм очистки/освобождения памяти как для одного числа, так и для класса/объекта в целом.
3.Сделано новое описание для всех свойств и методов двух классов на русском языке в справке (см. под спойлером и в .HELP)
4.XLL теперь удаляет данные из реестра (COM.DLL) под пользователем при закрытии надстройки.

05.04.2018

BedvitCOM v1.0.0.2 и BedvitXLL v1.0.0.2
1.Изменен порядок аргументов в методе "BignumSet" (теперь, как во всех других методах, номер длинного числа в массиве - стоит первым аргументом).

Ранее было так:
I.BignumSet "6546414654564" , 1
теперь так:
I.BignumSet 1, "6546414654564"

2.Добавлены новые методы в два класса (запись длинного числа в файл .txt и чтение из файла)
.FileSet, .FileGet (описание в .Help и ниже)
3.Собраны библиотеки COM и XLL в 32-разрядной версии (с корректным Help-ом, описанием интерфейса).

26.03.2018

BedvitCOM + BedvitXLL v0.0.0.1 под x64.

Старт разработки СОМ-библиотеки и XLL-библиотеки/надстройки для Excel на С/С++

Первый этап - длинная арифметика на исходниках библиотеки MPIR, Edition 3.0.0 (на основе библиотеки GMP) на С/С++

03.12.2009

BedvitEXCEL v1.0

Старт разработки надстройки для Excel на VBA.

Первые функции: отображения числа прописью - "ПрописьюРуб", "ПрописьюЕвр", "ПрописьюДол", "ЧПрописью", "ЦифраСтрокой"

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