Макрос предназначен для загрузки изображений (или любых других файлов) из интернета, и сохранения скачанных файлов в одну папку.
Исходные данные для работы макроса:
таблица, в которой содержатся по меньшей мере 2 столбца — один с гиперссылками, второй — с именами файлов.
Особенности макроса:
- создаваемым файлам присваиваются имена из выбранного столбца листа Excel
- макрос корректно работает со ссылками, содержащими символы кириллицы
- автоматическое добавление расширения для скачиваемых файлов (если имя файла из ячейки его не содержит)
Настройки макроса легко выполнить, изменив в коде значения констант:
Const НазваниеПапкиДляФайлов$ = "Фотографии" ' так будет называться создаваемая папка Const НомерСтолбцаСГиперссылками = 6 ' из этого столбца макрос берет гиперссылки для загрузки файлов Const НомерСтолбцаСИменамиФайлов = 4 ' из этого столбца макрос берет имена для создаваемых файлов Const НомерПервойСтрокиСДанными = 2 ' с какой строки листа начинаем обрабатывать данные Const РасширениеФайлов$ = ".jpg" ' этот текст добавляется справа к именам создаваемых файлов
Смотрите также аналогичный (более сложный) макрос загрузки изображений
Код основного макроса:
Sub СкачатьИзображения() Const НазваниеПапкиДляФайлов$ = "Фотографии" ' так будет называться создаваемая папка Const НомерСтолбцаСГиперссылками = 6 ' из этого столбца макрос берет гиперссылки для загрузки файлов Const НомерСтолбцаСИменамиФайлов = 4 ' из этого столбца макрос берет имена для создаваемых файлов Const НомерПервойСтрокиСДанными = 2 ' с какой строки листа начинаем обрабатывать данные Const РасширениеФайлов$ = ".jpg" ' этот текст добавляется справа к именам создаваемых файлов Dim sh As Worksheet, cell As Range, ra As Range: Application.ScreenUpdating = False ПапкаДляФайлов$ = ThisWorkbook.Path & "" & НазваниеПапкиДляФайлов$ & "" On Error Resume Next: MkDir ПапкаДляФайлов$ ' создаём папку, если её ещё нет Dim pi As New ProgressIndicator pi.Show "Загрузка файлов из интернета" Set sh = ActiveSheet ' обрабатываем только активный лист ' диапазон заполненных ячеек в столбце НомерСтолбцаСГиперссылками (без строк заголовка таблицы) Set ra = sh.Range(sh.Cells(НомерПервойСтрокиСДанными, НомерСтолбцаСГиперссылками), _ sh.Cells(sh.Rows.Count, НомерСтолбцаСГиперссылками).End(xlUp)) pi.StartNewAction , , "Загрузка файлов", , , ra.Cells.Count For Each cell In ra.Cells ' перебираем все ячейки диапазона ' формируем путь к новому файлу, заменяя запрещённые символы в имени файла на _подчеркивание_ ИмяФайла$ = ПапкаДляФайлов$ & Replace_symbols(cell.EntireRow.Cells(НомерСтолбцаСИменамиФайлов)) If Not ИмяФайла$ Like "*" & РасширениеФайлов$ Then ИмяФайла$ = ИмяФайла$ & РасширениеФайлов$ ' обрабатываем ссылку, преобразуя её в URLEncode Ссылка$ = RussianStringToURLEncode(cell.Text) pi.SubAction , "Строка: " & cell.Row, "Файл: " & ИмяФайла$ ' сохраняем очередную ссылку в виде файла в папку If DownLoadFile(Ссылка, ИмяФайла) Then FilesCount% = FilesCount% + 1 ' Debug.Print "Скачан файл: " & Ссылка Else MsgBox "Не удалось загрузить файл " & Ссылка, vbCritical End If Next cell pi.Hide ' закрываем прогресс-бар Application.ScreenUpdating = True msg = "Обработано ссылок: " & ra.Cells.Count & ". Загружено файлов: " & FilesCount% & vbNewLine msg = msg & "Файлы помещены в папку """ & ПапкаДляФайлов$ & """" MsgBox msg, vbInformation, "Загрузка файлов завершена" End Sub
Преобразование ссылок на изображения в картинки в файле Excel является простой задачей, которую можно решить без использования платных модулей и настроек, а лишь выполнив простую инструкцию ниже.
- Скачивание;
- Возврат к таблице Microsoft.
Видеоинструкция
Преобразование ссылок на изображения в картинки в таблице Excel
Среди базовых возможностей MS Excel нет такой функции, однако, можно легко скопировать всю таблицу в Google таблицу, после чего выполнить данную работу. Для этого создаем Google аккаунт и переходим на сайт:
https://www.google.ru/sheets/about/
Создаем новый документ.
Даем название файлу и копируем туда таблицу из обычного Экселя.
Далее используем формулу:
=IMAGE([ссылка]; [тип], [высота], [ширина])
Где
- [ссылка] — ссылка, которая может быть просто прописана или же взята из ячейки;
- [высота] – ширина изображения в пикселях (не обязательное);
- [ширина] – высота изображения в пикселях (не обязательное);
- [тип] – модификация, может принимать, значения от 1 до 4.
В случае с модификацией каждое число будет обозначать:
- Изображение будет растягивать до размеров ячейки с сохранением пропорций сторон;
- Растягивание будет происходить без сохранения пропорций сторон;
- Загрузка картинки с оригинальным размером;
- Требуется самостоятельно указать размер при помощи [высота] и [ширина]
Пример можно посмотреть здесь:
https://docs.google.com/spreadsheets/d/1yIW7LOghVldP3TcMLyD_HY_bnhCPDIfeLHftZA-AIZA/edit#gid=0
Далее можно переходить к превращению файла обратно в стандартную версию.
Преобразование ссылок на изображения в картинки в таблице обратно в МС Эксель
Выполнить эту задачу можно скопировав, выделив нужный диапазон и кликнув правой клавишей мыши (сочетание клавиш CTRL+C).
После вставляем данные в стандартную таблицу.
Все готово.
В дальнейшем можно скачать данные изображения при помощи инструкции.
Пример можно скачать ниже.
Виталий Пользователь Сообщений: 256 |
Добрый день всем! Как написать макрос для автоматизации следующей задачи? Из колонки В по гиперссылке скачать фото на рабочий стол в папку «Фото» с именем из колонки А пять цифр — соответственно Коду товара. Таких позиций около тысячи и в ручную очень долго эту операцию делать. Я понимаю, что это делается с помощью цикла, а как взаимодействовать с браузером и вообще возможно ли это? Изменено: Виталий — 10.01.2016 16:52:34 |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
Изменено: Андрей VG — 11.01.2016 05:00:15 |
Виталий Пользователь Сообщений: 256 |
Спасибо, я как раз это и нашел. Жаль что демо-версия на 5 запусков только. |
Игорь Пользователь Сообщений: 3631 |
Какая демоверсия? какие 5 запусков? А ссылка на готовое решение (которое платное) — это на случай, если вам лень разбираться в коде, внося правки, |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#5 11.01.2016 16:35:36 При некотором желании можно сделать из без макроса Формируете часть html формулами
Протягивая на всё количество изображений.
Сохраняете и открываете этот html-файл, например, в firefox. Выбираете в нём сохранить как и тип web-страница полностью. В подпапке for upload_files папки где сохранили страницу будут ваши файлы картинок. |
||||
Виталий Пользователь Сообщений: 256 |
Ух, ты прям волшебство какое-то. Спасибо огромное. |
Даже проще — копируем столбец со ссылками, вставляем в Блокнот, копируем из Блокнота (чтобы в буфере обмена получился чистый текст). Запускаем FlashGet , он подхватывает ссылки из буфера обмена — поехали |
|
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#8 12.01.2016 05:26:49 оброе время суток.
Алексей, мы не ищем уж совсем простых путей . С другой стороны, Виталий теперь может смело сказать, что он начинающий web-разработчик — создана первая страница! |
||
arvidservis Пользователь Сообщений: 9 |
#9 18.12.2016 21:31:56 Здравствуйте, Это в самом макросе вставляется код? |
Группа: Пользователи Ранг: Новичок Сообщений: 29
Замечаний: |
Здравствуйте!
Никак не могу найти решение задачи:
— в ячейках есть ссылки на конкретные фото с сайта (http://sofme.ru/UploadedFiles/Image_ROWIQFABCCHOUTJ.jpg)
— можно ли как-то быстро загрузить изображения по этим ссылкам в соседние ячейки?
Заранее благодарен за ответы.
К сообщению приложен файл:
0927723.xlsx
(45.2 Kb)
Загрузка файлов по URL ссылкам
Загрузка файлов по URL ссылкам – инструмент для импорта файлов с веб ресурсов по URL ссылкам, в выбранную папку на компьютере.
С возможностью их переименования при импорте.
Инструкция по использованию:
- Диапазон ссылок на файлы – ссылки на файлы. Должна содержать протокол (например,
http://
). - Выбор папки для файлов – путь к папки для сохранения файлов.
Пример использования инструмента загрузки файлов по URL ссылкам
URL файла – кнопка выбора диапазона ячеек с ссылками URL, на файлы для скачивания. Если в соседнем столбце с ссылками указать новые названия файлов, то при загрузке они будут переименованы. Если в соседнем столбце пусто, то название файлов останется без изменения.
Выбор папки для сохранения – кнопка выбора папки, в которую будут загружены файлы.