Страницы: 1
RSS
HELP. Как закинуть 285 картинок из папки в каждую отдельную ячейку Excel по порядку
 
Нужно из папки, в которой 285 изображений автоматически закинуть их в ячейки Excel по порядку начиная с A2, A3, A4 и т.д. до A286. Все картинки одинаковые по размеру 750px на 1334px. Желательно, чтобы можно было задать им изображение не дефолтное, а то, которое я хочу, например 200px на 600px. Как это сделать? Я полный ноль в Экселе и тупка. Когда гуглю ничего не понимаю. Дайте, пожалуйста, готовый ответ для нуба.
 
И вам тоже здравствуйте.
Цитата

2.7. Если вам нужен не совет по самостоятельному решению задачи, а чтобы все сделали за вас - добро пожаловать в ветку Работа. Там, скорее всего, найдутся специалисты, которые разберутся с вашей проблемой быстро, качественно и за разумную плату.
 
Мне нужно именно объяснение. Я готов за него заплатить сотню, если оно сработает. Сделаю сам. Я плохо разбираюсь в интерфейсе программы, не работаю в ней. Мне нужно сделать 1 действие, чтобы не вкидывать изображения вручную.
 
Цитата
ermolyuk97 написал:
Мне нужно сделать 1 действие, чтобы не вкидывать изображения вручную.
Готовой кнопки в интерфейсе программы - нет. Для выполнения такого действия нужно написать макрос, который будет брать очередной файл изображения, изменять его число пиксел по вертикали/горизонтали, сохранять в промежуточном файле изменения, загружать по позиции очередной ячейки и изменять размер этой ячейки так, чтобы изображение полностью закрывало ячейку. Учитывая одинаковый размер изображений в пикселях (хотя вы ни словом не обмолвились - одинаковое ли у них разрешение), последний пункт, про размеры ячеек, можно выполнить однократно.
Так понятнее?
 
Выделяем A1. Вставка , картинок, выбираем несколько (удерживая CTRL, только не все, допустим 5. они вставятся выделенными. Задать размер. Перетащить каждый в свою ячейку от A1 до A5, выделяем A6. повторяем.  
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Перетащить каждый в свою ячейку от A1 до A5,
Интересно, а как это сбивается с требованием
Цитата
ermolyuk97 написал:
Мне нужно сделать 1 действие
А исходя из
Цитата
ermolyuk97 написал:
285 изображений
таких действий - 285 :)
 
Андрей VG,  Андрей, Привет.
Ну за соточку то, даже 286 раз можно  :D  
По вопросам из тем форума, личку не читаю.
 
Тёзка, привет. Как-то не озадачивался первой частью сего марлезонского балета, хотя, может и встречал. Можно примерчик или ссылочку?
 
RAN, не тезка, но привет. так вроде у Игоря https://excelvba.ru/code/ResizeImages
По вопросам из тем форума, личку не читаю.
 
Миш, спасибо. Вероятно, там и видел. Но, за безнадобностью, крепко забыл.
 
Цитата
RAN написал:
Можно примерчик
Можно. Подключаем библиотеку Microsoft Windows Image Acquisition Library v2.0
Код
Public Sub ResizeImage()
    Dim pImage As New WIA.ImageFile
    Dim pFilters As New ImageProcess
    Dim pTransform As WIA.Filter
    
    pImage.LoadFile "C:\Path\answer.png"
    pFilters.Filters.Add "{4EBB0166-C18B-4065-9332-109015741711}"
    Set pTransform = pFilters.Filters(1)
    pTransform.Properties("MaximumWidth").Value = 600
    pTransform.Properties("MaximumHeight").Value = 200
    pTransform.Properties("PreserveAspectRatio").Value = False
    Set pImage = pFilters.Apply(pImage)
    pImage.SaveFile "C:\Path\answer1.png"
End Sub
 
Андрей, спасибо. Это поинтереснее, чем через ту кучу WinAPI.
 
Андрей, спасибо, не знал про такой вариант
Еще бы быть уверенным, что эта библиотека есть во всех последних версиях Office
(погуглил, вроде как в WindowsXP эта библиотека появилась только в составе ServicePack 1)

В будущих проектах, скорее всего, перейду на использование этой библиотеки WIA
(а то с WinAPI слишком много возни было, и отладка кода весьма непростая)
Страницы: 1
Наверх