Скачивание файлов
Представляю вашему вниманию инструментарий для работы с файлами по FTP, не требующий использования системных функций (WinAPI)Как известно, отправить файл на FTP сервер (или загрузить файл с FTP, создать папку на FTP сервере, и т.д.) можно при помощи таких API-функций из библиотеки wininet.dll, как FtpPutFile, FtpGetFile, FtpRenameFile, FtpDeleteFile, FtpRemoveDirectory, FtpCreateDirectory, FtpFindFirstFile и т.д. Как именно использовать эти функции - можете посмотреть в коде надстройки для отправки файлов Excel на FTP сервер В чем недостаток этого способа - так это в необходимости обеспечения совместимости кода с различными платформами. Сподвигла меня на это решение необходимость реализации средств обновления надстроек Excel, где необходимо было реализовать функционал отправки файлов Excel на FTP сервер, причем так, чтобы это стабильно работало на всех компьютерах. Попутно, кстати, родилась и функция загрузки файла с сервера без использования WinAPI, которая тоже вошла в состав данного инструментария. Основу предлагаемого мной решения составляет модуль класса FTPcommander, который предоставляет вам следующие функции:
|
|||
Часто требуется макросом скачать некий файл из интернета. Чем чревато использование функции URLDownloadToFile - по сути, ничем, кроме как необходимостью прописывать её в 4 вариантах, Я же предлагаю другое решение - функцию DownloadFile с использованием объектов Microsoft.XMLHTTP и ADODB.Stream:
Sub ПримерИспользования() СсылкаНаФайл$ = "http://excelvba.ru/sites/default/files/3.jpg" ПутьДляСохранения$ = "C:\ПЖиВ.jpg" ' скачиваем файл из интернета DownloadFile СсылкаНаФайл$, ПутьДляСохранения$ ' открываем скачанный файл CreateObject("wscript.shell").Run """" & ПутьДляСохранения$ & """" End Sub
|
|||
Макрос загружает список прокси серверов с сайта free-proxy-list.info Каждый найденный Proxy Server проверяется на доступность (для последующего использования в других макросах) Sub ПримерПроверкиСпискаПроксиСерверовНаДоступность() Dim ProxyServers As Collection Set ProxyServers = ProxyServersList ' запрашиваем список прокси серверов Debug.Print "Найдено прокси-серверов: " & ProxyServers.Count ' перебираем все прокси-серверы, проверяя их на доступность ' (время отклика менее 2 секунд) For Each ProxyServer In ProxyServers If CheckProxyServer(ProxyServer) Then Debug.Print "Прокси сервер с адресом " & ProxyServer & " доступен!" Else Debug.Print "Прокси сервер с адресом " & ProxyServer & " недоступен!" End If Next End Sub Код функции ProxyServersList:
|
|||
Этот код проверяет заданного доступность прокси сервера при помощи функции CheckProxyServer: Sub ПримерПроверкиПроксиСервера() myProxy$ = "212.45.5.172:3128" If CheckProxyServer(myProxy$) Then MsgBox "Прокси сервер с адресом " & myProxy$ & " доступен!", vbInformation Else MsgBox "Прокси сервер с адресом " & myProxy$ & " недоступен!", vbExclamation End If End Sub Прокси-сервер (Proxy Server) позволяет скрыть ваш IP адрес, что позволяет вам выполнять запросы к одному и тому же серверу как-бы с разных компьютеров. Это может быть полезно при выполнении многократных запросов к серверам типа Яндекс и Google, Загрузить список прокси-серверов вам поможет этот код: http://excelvba.ru/code/ProxyServersList
|
|||
Программа предназначена для скачивания файлов CSV с сайта за указанный диапазон дат.Скачиваемые CSV файлы содержат почасовые данные о мощности генерации и потребления ОЭС заданного округа. Исходными данными для программы выступают 2 даты - начальная и конечная. В ходе загрузки отображается прогресс-бар. Макрос загрузки файлов вы найдете во вложении к статье. Создаваемые файлы получают имена типа
Все скачанные файлы помещаются в подпапку с именем Файлы CSV, автоматически создаваемую макросом в той же папке, где расположен файл Excel с макросом.
|
|||
Программа (3 модуля класса + примеры их использования) предназначена для поиска товаров в Яндекс.Маркете, с последующей загрузкой результатов поиска.Исходными данными является название (или модель, PartNumber, и т.п.) товара.
На выходе код выдаёт информацию о результатах поиска - 10 (или более) позиций искомого товара,
|
|||
Иногда требуется выложить некоторый файл в общий доступ, и поделиться ссылкой на него.Для автоматизации этой задачи и предназначена функция UploadFile Данная функция принимает в качестве параметра ссылку на файлообменник, и полный путь к загружаемому файлу. Результатом работы функции является ссылка для скачивания загруженного файла. (способ програмного формирования POST-запроса был выбран потому, что не удаётся средствами программы заполнить поле HTMLInputFileElement)
|
|||
Данный макрос перебирает все строки на листе, и для каждой строки скачивает из интернета картинки, ссылки на которые присутствуют в этой строке (начиная с 3 столбца) В процессе загрузки изображений из интернета отображается 2-уровневый прогресс-бар, на котором можно видеть текущее состояние процесса. При формировании имён файлов и путей к папкам применяется замена запрещённых символов на допустимые: Для загрузки изображений применена WinAPI-функция URLDownloadToFile в таком виде:
|
|||
Макрос предназначен для загрузки изображений (или любых других файлов) из интернета, и сохранения скачанных файлов в одну папку.Исходные данные для работы макроса:таблица, в которой содержатся по меньшей мере 2 столбца - один с гиперссылками, второй - с именами файлов. Особенности макроса:
Настройки макроса легко выполнить, изменив в коде значения констант: Const НазваниеПапкиДляФайлов$ = "Фотографии" ' так будет называться создаваемая папка Const НомерСтолбцаСГиперссылками = 6 ' из этого столбца макрос берет гиперссылки для загрузки файлов Const НомерСтолбцаСИменамиФайлов = 4 ' из этого столбца макрос берет имена для создаваемых файлов Const НомерПервойСтрокиСДанными = 2 ' с какой строки листа начинаем обрабатывать данные Const РасширениеФайлов$ = ".jpg" ' этот текст добавляется справа к именам создаваемых файлов Смотрите также аналогичный (более сложный) макрос загрузки изображений
|
|||
Данный код (пользовательская функция) позволяет получить данные о курсе валюты с сайта Центробанка. Данную функцию можно использовать и в виде формулы на листе Excel (см. пример во вложении) Function GetRate(ByVal CurrencyName As String, ByVal RateDate As Date) As Single ... Sub ПримерИспользованияФункции_GetRate() MsgBox "Сегодня курс доллара к рублю составил " & GetRate("USD", Now), vbInformation MsgBox "А вчера курс евро к рублю был равен " & GetRate("EUR", Now - 1), vbInformation End Sub Поддерживается получение курсов рубля по отношению к наиболее распространённым валютам мира. Если вы желаете вывести информацию по всем валютам - используйте макрос ВывестиСегодняшниеКурсыВсехВалют
|
|||
