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

Функция VBA для выполнения веб-запроса (Web Query)

Функция GetQueryRange предназначена для автоматизации загрузки данных с веб-страниц.

Например, нам надо из макроса Excel получить данные с нескольких однотипных страниц сайта.

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

Поскольку количество обращений ко мне, с просьбами сделать программу загрузки данных из интернета, с каждым днём растёт, я решил сделать для этих целей универсальную функцию:

 

Sub ПримерИспользования()
    Dim ra As Range: On Error Resume Next
 
    Set ra = GetQueryRange("http://ExcelVBA.ru/", 6)
    Debug.Print ra.Address    ' переменная ra содержит ссылку на диапазон ячеек $A$1:$C$15,
    ' содержащий данные 6-й таблицы главной страницы сайта ExcelVBA.ru

    Set ra = GetQueryRange("http://excelvba.ru/sitemap.xml")
    Debug.Print ra.Address    ' теперь переменная ra содержит ссылку на диапазон ячеек $A$1:$D$502,
    ' содержащий данные карты сайта ExcelVBA.ru

End Sub

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

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

Sub ЗагрузкаТекстаВебСтраницы()

Работа с буфером обмена (Windows Clipboard) из VBA

Результат чтения текста из буфера обмена

Функции для работы с буфером обмена

(очистка буфера обмена, запись в буфер обмена, чтение из буфера обмена)

Макрос создания текстовых файлов по таблице Excel

Макрос предназначен для создания текстовых файлов в кодировке UTF-8.

Исходными данными является таблица Excel из 12 столбцов.

Сначала, макрос создаёт папку для будущих текстовых файлов.
Папка создаётся в том же каталоге, где расположена книга Excel.

Далее, для каждой строки таблицы, макрос формирует подпапку,
используя в качестве её названия текст из 7-го столбца таблицы.

И потом, когда папка для файла создана, макрос создаёт текстовый файл с содержимым из 10 столбца таблицы,
и сохраняет его под именем, взятым из второго столбца той же таблицы Excel.
После создания файла, у него меняется кодировка на UTF-8 (изначально, при создании, файлы имеют кодировку Unicode)

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

Пример макроса смотрите в прикреплённом файле.

Макрос для увеличения картинок по щелчку мыши

Макрос позволяет увеличивать / уменьшать изображения на листе Excel по щелчку мыши.

 

Для использования макроса, скопируйте в свой файл модуль с кодом (просто перетащив его мышкой из прикреплённого файла),
выделите все картинки в своём файле Excel, и назначьте им макрос ZoomImage

Чтобы выделить все изображения, проделайте следующее:

  • нажмите Ctrl + G (для появления диалогового окна «Переход»)
  • нажмите кнопку «Выделить» в этом диалогом окне
  • в появившемся окне «Выделение группы ячеек» поставьте галочку «Объекты», и нажмите OK

 

После этого (как все картинки будут выделены), щелкните на одной из картинок правой кнопкой мыши,
в контекстном меню нажмите «Назначить макрос», выделите макрос ZoomImage, и нажмите OK

 

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

Для увеличения создаётся копия исходной картинки.
При щелчке на увеличенной картинке, она плавно уменьшается в размерах, после чего удаляется.

 

Код макроса ZoomImage: