Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2009, 15:33   #1
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию Сжатие рисунков средствами VBA

Задача: сжать рисунки в офисном файле (в частности, в книге Excel) средствами VBA
(на панели Настройка изображения есть кнопочка Сжатие рисунков)

Проблема: макрорекордер ничего не пишет (ни в Office 2003, ни в 2007-м)
У объектов типа IPicture, IPictureDisp, Shape нет соотвествующих методов и свойств. (по крайней мере, найти мне не удалось)
Поиск ничего не дал - на других форумах видел пару аналогичных вопросов - но без ответов...

Скорее всего, функция оптимизации изображения находится в общей для всех офисных программ библиотеке
(либо в exe-файле программы Microsoft Office Picture Manager)
Знать, хотя бы, в какой библиотеке искать эту функцию...

Должно же быть возможно выполнить это действие средствами VBA.
SendKeys использовать не хочется...

=============== добавлено позже ====================

У меня на сайте есть готовая программа для вставки изображений на лист Excel:
http://excelvba.ru/programmes/PastePictures
В последней версии в ней реализован алгоритм сжатия картинок.

(макрос для сжатия изображений перед вставкой в Excel)


Цитата:
Надстройка позволяет искать в выбранной папке изображения, основываясь на содержимом ячеек таблицы Excel, и производить вставку найденных изображений в соседние ячейки (или в примечания к этим ячейкам).

Кроме того, надстройка умеет скачивать изображения по ссылкам, сохраняя загруженные изображения в заданной папке, и вставлять картинки в примечания к ячейкам.





Особенности надстройки вставки изображений:
  • загрузка изображений по ссылкам (обычная гиперссылка, просто текст ссылки - URL, формула =ГИПЕРССЫЛКА(), и т.п.)
  • поиск картинок в подпапках заданной папки (глубина поиска по подпапкам не ограничена)
  • установка выбранного пользователем размера для вставляемых изображений
  • отображение состояния поиска и вставки изображений (прогресс-бар)
  • вывод результатов обработки таблицы (сколько изображений вставлено, сколько не найдено)
  • добавление гиперссылок к вставляемым изображениям (по щелчку на картинке открывается исходный файл)
  • 2 режима поиска файлов - по точному совпадению имени файла, и по началу имени файла-изображения
  • 2 режима вставки картинок - подгонка размеров под ячейку, или соблюдение пропорций исходного изображения
  • вывод количества файлов в выбранной папке
  • возможность выбора столбца с названиями файлов, и указания номера столбца для вставляемых изображений
  • возможность вставки изображений в комментарии к ячейкам




Запуск вставки изображений выполняется из меню программы (на панели инструментов)

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

Новый функционал будет добавляться в надстройку по мере поступления ваших пожеланий.

Последний раз редактировалось EducatedFool; 18.03.2013 в 04:13.
EducatedFool вне форума Ответить с цитированием
Старый 17.01.2009, 19:12   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

попробовал. действительно, ничего не пишется.
поискал. в англоязычной интернете тема поднималась неоднократно (например, через google - Compress Pictures using VBA
посмотрите ответы.. может, натолкнёт на какую-то мысль..

Просто, как я понял, в советах ничего толковее, чем
SendKeys не предлагается ;-(
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неразрывный пробел средствами VBA tolikman Microsoft Office Word 5 23.03.2009 05:11
Условное форматирование средствами VBA Acro Microsoft Office Excel 5 01.12.2008 16:40
Как средствами VBA получить доменное имя пользователя? Прохожий Microsoft Office Excel 3 04.10.2008 18:28
Отображение рисунков Witaliy Компоненты Delphi 0 26.05.2008 17:33
Сжатие строК! prizrak1390 Общие вопросы Delphi 16 02.01.2008 17:15