mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Макросы VBA Excel

Создание панели инструментов для надстройки

Создаваемая панель инструментов

Прикреплённая к статье надстройка содержит модуль, который может создавать панель инструментов любой сложности при запуске файла.

На панель можно добавлять как обычные кнопки, так и раскрывающиеся выпадающие списки, подменю, текстовые поля.

Формирование панели инструментов происходит при загрузке файла, при закрытии же его - созданная панель скрывается:

Private Sub Workbook_Open()
    ФормированиеПанелиИнструментов
End Sub
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    GetCommandBar(PROJECT_NAME, True).Visible = False
End Sub

Основной код модуля:

Отправка писем из Excel при помощи почтовой программы TheBAT!

Отправка почты из Excel при помощи TheBAT!

Макроc предназначен для автоматизированной рассылки почты из Excel.

Для рассылки используется почтовая программа TheBAT!

(подразумевается, что эта программа на компьютере установлена и настроена, т.е. без проблем удаётся вручную создать в TheBAT письмо, и отправить его на произвольный адрес)

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

В прикреплённом примере макрос формирует тему письма из значения ячейки второго столбца

Поиск в Excel

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

 

Штатными средствами Excel вывести поле для поиска на панель инструментов не удаётся, а вызывать каждый раз диалоговое окно нажатием комбинации клавиш Ctrl + F не всегда удобно.

На помощь придёт эта надстройка - она формирует в строке меню Excel 2003 поле для поиска по всем листам:

Достаточно ввести искомый текст, и нажать клавишу Enter, - и перед вами полный список всех подходящих ячеек со всех листов книги.

Скачать файл из интернета без использования WinAPI

Часто требуется макросом скачать некий файл из интернета.
Обычно в этом помогает WinAPI-функция URLDownloadToFile, но есть также возможность загрузить файл без её использования:

Чем чревато использование функции URLDownloadToFile - по сути, ничем, кроме как необходимостью прописывать её в 4 вариантах,
для обеспечения совместимости с 64-битной Windows и Office 2010

Я же предлагаю другое решение - функцию DownloadFile с использованием объектов Microsoft.XMLHTTP и ADODB.Stream:

 

Sub ПримерИспользования()
    СсылкаНаФайл$ = "http://excelvba.ru/sites/default/files/3.jpg"
    ПутьДляСохранения$ = "C:\ПЖиВ.jpg"
 
    ' скачиваем файл из интернета
    DownloadFile СсылкаНаФайл$, ПутьДляСохранения$
 
    ' открываем скачанный файл
    CreateObject("wscript.shell").Run """" & ПутьДляСохранения$ & """"
End Sub

Сохранить изображения с листа Excel в файлы

Сохранить все изображения с листа в файлы

Надстройка позволяет экспортировать все изображения с листа Excel в графические файлы.

Доступен выбор типа создаваемых файлов (поддерживаются форматы JPG, GIF и PNG)

Кроме того, можно указать имя папки, в которую будут помещены созданные файлы
(эта папка будет создана автоматически в том же каталоге, где расположен обрабатываемая книга Excel)

В имени папки можно указать кодовое слово $filename - оно будет заменено на название текущего (обрабатываемого) файла Excel.