Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

рамки вокруг объектов

Автор CooLer, 24.07.2008, 15:18

« назад - далее »

CooLer

 Спецы, подскажите как макросом нарисовать рамку вокруг картинки (вставленной в Word).
При записи макроса и отработке соответсвующих действий руками, ничего не записывается =(

Шпец Докапыч

Цитата: CooLer от 24.07.2008, 15:18
При записи макроса и отработке соответсвующих действий руками, ничего не записывается =(

Здесь стоит обратить внимание на два момента:

  • если НИЧЕГО не записывается (даже пустой Sub Макрос1()...End Sub), то надо искать там, куда выбрали: в начале записи есть пункт "Макрос доступен для:..."
  • если НИКАК не записывается, т.е. не вызывается контекстное меню картинки по ПКМ, то, вместо этого, выбираем меню "Формат" -> Границы и заливка...
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

CooLer

В том и проблемма, что запись макроса идёт, но в нём кроме "sub макрос2 и end sub " ничего не появляется. При выполнении других операций (не связанный с меню формат) всё пишется корректно.

Шпец Докапыч

Давайте попробуем вместе, пошагово (вдруг что-то было упущено):

  • выделили рисунок;
  • включили запись - Макрос доступен для: Документ1 (документ);
  • Формат -> Границы и заливка;
  • Применить к: рисунку;
  • выбрали рамку -> ОК;
  • остановили запись;
  • Alt+F11 -> Modules -> NewMacros;
  • видим Макрос1 (см. вложение).

Теперь, способ номер два:

  • в формате рисунка меняем Положение: перед текстом;
  • включаем макрорекордер;
  • заходим в формат рисунка через контекстное меню (ПКМ);
  • что-нибудь меняем;
  • останавливаем запись;
  • видим Макрос2 (см.вложение).

PS: Раньше я так шпоры делал (не себе, естественно – себе по-другому :)) быстро. Загружал полсотни отсканированных листов, подбирал размер для одной картинки, а потом кодом размножал на остальные.
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

CooLer

 Ни один из вариантов не работает. Может это связано с 2007 офисом. При записи макроса ПКМ не работает. Изменения во вкладке формат в макрос не пишутся. Что-бы не делал запись в макросе пустая (sub макрос1 ' ' ' ' and sub).
С остальной частью макроса разобрался. Теперь осталась только обработка рисунка, но из-за не знания команд VBA не могу с ним ничего сделать.

CooLer

#5
Шпец Докапыч
Понял в чём косяк. При вставке объекта он остаётся неактивным.

Шпец Докапыч

Цитата: CooLer от 28.07.2008, 12:33
Понял в чём косяк. При вставке объекта он остаётся неактивным.

Т.е. если досконально следовать предложенной мной очерёдности, всё ОК? Вопрос закрыт?
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

CooLer

Цитата: Шпец Докапыч от 28.07.2008, 13:58

Т.е. если досконально следовать предложенной мной очерёдности, всё ОК? Вопрос закрыт?

Да, спасибо огромное за помощь. Остался только такой вопрос, как сделать его активным. Могу прислать свой макрос, если это надо (за его кривость не ругайте, он у меня первый =)).

Шпец Докапыч

Цитата: CooLer от 29.07.2008, 10:07
Как сделать его активным?

Лучше в момент вставки привязать переменную и уже от неё управлять форматом, например:
Sub SH_UprKart()
Dim MyPict As Object
  Set MyPict = Selection.InlineShapes.AddPicture("C:\01.jpg") 'вставили рисунок
  With MyPict 'добавили рамки
    .Borders(-1).LineStyle = 9
    .Borders(-2).LineStyle = 9
    .Borders(-3).LineStyle = 10
    .Borders(-4).LineStyle = 10
  End With
End Sub


Либо можно поочерёдно пролистать все рисунки в тексте:
Sub SH_SmallPict()
Dim i As InlineShape
  For Each i In ActiveDocument.InlineShapes
    i.Height = 55 'сделали все маленькими
    i.Width = 75
  Next
End Sub
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

CooLer

 Спасибо огромное. Первый вариант не подошёл , так как рисунок искался по переменной у которой уже есть значение. А второй с добавлением границ очень помог. Спасибо!

  Получилось создать из excel новый ворд документ, отформатировать, впаять в него рисунок (имя берётся из таблицы excel) с рамками. =)