Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - Изменение размера большого числа картинок

Ответить
Настройки темы
2007 - Изменение размера большого числа картинок

Аватара для Freux

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!
Пожалуйста, помогите со следующей задачей: есть документ на 1000 страниц, в котором около 400 рисунков. Большая часть рисунков вставлена с размерами порядка 35х25 см, и поэтому они вылазят за пределы полей листа А4. Как можно быстро установить ширину всех больших картинок на 18,5 см без ручного изменения ширины для каждой картинки?

Отправлено: 13:31, 30-10-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Freux, картинки в Microsoft Word бывают разные .

Вставьте этот код:
Код: Выделить весь код
Sub ScaleShapes()
    Dim objInlineShape As InlineShape
    
    For Each objInlineShape In ThisDocument.InlineShapes
        With objInlineShape
            If PointsToCentimeters(.Width) > 18.5 Then
                .Width = CentimetersToPoints(18.5)
                .ScaleHeight = .ScaleWidth
            End If
        End With
    Next
End Sub
в VB проект данного документа, и исполните его. Рекомендую сначала попробовать на копии документа.

Отправлено: 15:19, 30-10-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Freux

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, я попробовал, но возникает ошибка:


Может, я что-то не так сделал? Я просто открыл VB через "Разработчик" и там вставил текст, F5.
Цитата Iska:
Freux, картинки в Microsoft Word бывают разные . »
Картинки имеются в виду не нарисованные средствами Office, а вставленные из jpg/png файлов.

Отправлено: 16:24, 30-10-2011 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Freux:
Картинки имеются в виду не нарисованные средствами Office, а вставленные из jpg/png файлов. »
И такие тоже.
Цитата Freux:
Спасибо, я попробовал, но возникает ошибка: »
читать дальше »
Достаточно нажать в этом окне «Ctrl-C» — текст заголовка, сообщения и кнопок будет помещён в буфер обмена:
Цитата:
Код: Выделить весь код
---------------------------
Microsoft Visual Basic
---------------------------
Compile error:

Variable not defined
---------------------------
ОК   Справка   
---------------------------

В какой строке ошибка (приведите текст строки)?

Отправлено: 00:22, 31-10-2011 | #4


Аватара для Freux

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
---------------------------
Microsoft Visual Basic
---------------------------
Run-time error '5148':

Число должно быть между 
---------------------------
OK   Help   
---------------------------
Насколько я понял, прогнав несколько циклов в debug, ошибка в строке
Код: Выделить весь код
                .ScaleHeight = .ScaleWidth

Отправлено: 22:12, 31-10-2011 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Гм. Если добавить перед этой строкой такой код:
Код: Выделить весь код
Debug.Print .ScaleHeight
Debug.Print .ScaleWidth
Debug.Print "---"
и попробовать исполнить вновь — что будет написано в окне отладки?

Отправлено: 01:45, 01-11-2011 | #6


Аватара для Freux

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я так и не понял, куда он печатает переменные .ScaleHeight и .ScaleWidth, поэтому тупо посмотрел в пошаговом режиме, чему он равны. В цикле, когда возникает ошибка (а это первый же цикл, который удовлетворяет неравенству) .ScaleHeight = 0. Здесь же и ошибка видимо.

Отправлено: 17:57, 01-11-2011 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Freux:
Я так и не понял, куда он печатает переменные .ScaleHeight и .ScaleWidth, »
У меня 2003-й Office, и там окно отладки «Immediate» можно увидеть, нажав Ctrl-G в окне редактора VBA или через меню — \View\Immediate Window.

Цитата Freux:
В цикле, когда возникает ошибка (а это первый же цикл, который удовлетворяет неравенству) .ScaleHeight = 0.»
Сие, мягко говоря, странно. Давайте попробуем сделать так: Вы подготовите отдельный документ с парой-тройкой подобных вставленных рисунков, которые больше 18.5 см, и на которых заведомо возникает подобная ошибка при обработке данным кодом. Упакуете его в архив с паролем и выложите на какой-либо публичный обменник. Ссылку на архив и пароль к нему — мне в личку. Я попробую «пощупать» изображения «ручками».

Отправлено: 22:17, 01-11-2011 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Документ получил. Freux, возможно, Вы будете смеяться, но код из #2 отработал без каких-либо ошибок и, как и предполагалось, выставил размер изображений в заданные размеры с сохранением пропорций.

У Вас с выложенным документом с этими пятью изображениями на коде из #2 точно возникала указанная в #3 ошибка?

Отправлено: 03:43, 02-11-2011 | #9


Аватара для Freux

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да у меня ошибка возникает постоянно (что странно, тк логика в коде строгая), возможно я неправильно вставлял код? Я открывал из меню Visual Basic, и вставлял код в ThisDocument в структуре слева, затем исполнял его.
Вот так это выглядело:


Может, код применяется не к тем объектам по какой-либо причине? Расскажите, какой последовательностью действий исполняли код Вы.

Отправлено: 10:31, 05-11-2011 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - Изменение размера большого числа картинок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MySQL - В базу не грузяться декларации большого размера pogo Программирование и базы данных 8 17-07-2009 17:26
Оптимизация MFS после удаления большого числа файлов Vlad Drakula Microsoft Windows 2000/XP 6 25-11-2004 11:46
Изменение размера компанентов синхронно, с изменением размера формы Morbid GOD Программирование и базы данных 1 10-11-2004 02:31
файл большого размера greeka Общий по FreeBSD 8 02-10-2004 13:38
посылка большого числа писем из пхп скрипта Vlad Drakula Вебмастеру 6 09-11-2003 21:28




 
Переход