Макросы VBA Excel — Страница 32

Пропорциональное изменение размеров изображения в зависимости от значения в ячейках

Изменение размеров изображения пропорционально значениям ячеек на листе Excel

Этот простейший макрос позволяет пропорционально изменять размеры изображения (высоту и ширину) в зависимости от значений ячеек B3 и B4.

Конвертер BMP в Excel (попиксельный перенос изображения на лист)

Перенос изображения на лист Excel (чтение bitmap в массив)

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

Поддерживаются только 24-битные изображения BMP без сжатия.
Некоторые изображения обрабатываются некорректно - для них есть другой вариант кода (в прикреплённом варианте файла отсутствует)

Для чтения информации из bitmap используется функция API-функция GetBitmapBits

Преобразование результатов работы функции GetBitmapBits в двумерный массив производится следующим кодом:

Разбиение двумерного массива на несколько массивов, группируя строки по заданному столбцу

Функция принимает в качестве параметра arr двумерный массив, и разбивает его на несколько массивов, группируя строки по значению столбца SplitColumn&

Сколько есть уникальных значений в столбце SplitColumn&, удовлетворяющих маске Mask$, - столько двумерных массивов будет возвращено функцией в виде коллекции

Например, если есть исходный массив размерами 100*5, в котором во втором столбце есть 3 разных значения,
то функция SplitArray(arr, 3) вернёт коллекцию из 3 элементов - массивов размерами 25*5, 7*5, 68*5

Чтобы откинуть строки с пустыми значениями, можно применить маску "?*"
Можно взять только строки со сзначениями, начинающимися с цифры, содержащими текст "txt", - в этом случае, в параметр Mask$ надо передать строку "#*txt*"

Пример использования функции разделения массивов на несколько:

Получение текущей даты и времени с сервера в интернете

Функция GetRealTime выполняет HTTP-запрос к заданному серверу,
и из заголовка Date ответа сервера берёт текущее время и дату.

Сохранение значений в скрытых именах книги Excel

Данные функции могут быть полезны, если вы хотите спрятать некоторые значения в книге Excel