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

Макросы VBA Excel

Макрос перекодировки (изменения кодировки) текста и файлов

Функции ChangeFileCharset и ChangeTextCharset предназначены для изменения кодировки символов в текстовых файлах и строках.

Исходную и конечную (желаемую) кодировку можно задать в параметрах вызова функций.

ВНИМАНИЕ: Новая (универсальная) версия функции сохранения текста в файл в заданной кодировке:
http://excelvba.ru/code/SaveTextToFile

Список доступных на вашем компьютере кодировок можно найти в реестре Windows в ветке
HKEY_CLASSES_ROOT\MIME\Database\Charset

Среди доступных кодировок есть koi8-r, ascii, utf-7, utf-8, Windows-1250, Windows-1251, Windows-1252, и т.д. и т.п.

Определить исходную и конечную кодировку можно, воспользовавшись онлайн-декодером:
http://www.artlebedev.ru/tools/decoder/advanced/
(после преобразования снизу будет написано, из какой кодировки в какую переведён текст)

Sub ПримерИспользования_ChangeTextCharset()
 
    ИсходнаяСтрока = "бНОПНЯ"
    ' вызываем функцию ChangeTextCharset с указанием кодировок
    ' (меняем кодировку с KOI8-R на Windows-1251)
    ПерекодированнаяСтрока = ChangeTextCharset(ИсходнаяСтрока, "Windows-1251", "KOI8-R")
 
    MsgBox "Результат перекодировки: """ & ПерекодированнаяСтрока & """", _
           vbInformation, "Исходная строка: """ & ИсходнаяСтрока & """"
 
End Sub

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

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

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

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

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

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

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

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

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

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

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

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

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

Прикрепление и извлечение различных файлов из книги Excel

Скриншот программы, позволяющей прикреплять файлы к книге Excel

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

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

Теперь прикрепить к книге Excel любой файл, а затем извлечь его в любую папку под заданным именем, можно при помощи нескольких строк кода!

В прикреплённом к статье файле находятся 2 модуля класса (AttachedFiles и AttachedFile), а также примеры их использования в виде макросов, позволяющих управлять вложениями в книге Excel.

Пример использования функционала модулей класса для сохранения в книге Excel исполняемого файла, с последующим извлечением:

Sub ПрикрепитьФайл()    ' прикрепляем файл к книге Excel
    Dim FileManager As New AttachedFiles, res As Boolean
    res = FileManager.AttachNewFile("C:\WINDOWS\notepad.exe")
End Sub
Sub ИзвлечьФайл()    ' из книги Excel на диск
    Dim FileManager As New AttachedFiles, res As Boolean
    On Error Resume Next ' на случай, если среди вложений нет файла notepad.exe
    res = FileManager.GetAttachment("notepad.exe").SaveAs("C:\MyProgram.exe")
End Sub
Sub ЗапуститьВложенныйФайл()    ' из книги Excel на диск
    Dim FileManager As New AttachedFiles
    On Error Resume Next ' на случай, если среди вложений нет файла notepad.exe
    FileManager.GetAttachment("notepad.exe").Run
End Sub

Скачивание (загрузка) текста web-страницы в текстовый файл

При помощи этого макроса вы можете скачать текст с выбранной страницы веб-сайта:

Sub ЗагрузкаТекстаВебСтраницы()
    Set IE = CreateObject("InternetExplorer.Application"):    ' загружаем браузер Internet Explorer
    On Error Resume Next
    addr$ = "http://excelvba.ru/services"    ' указываем адрес сайта (веб-страницы), текст которой загружаем

    IE.Navigate addr$    ' загружаем сайт
     While IE.busy Or (IE.readyState <> 4): DoEvents: Wend    ' ждем, пока загрузится страница
    ' Set ieDoc = IE.Document    ' ссылка на открытый документ