Имеется 10 слайдов, в каждом из них имеется один и тот же фоновый рисунок-подложка - это вставленный файл bmp размером 1024x768.
Можно ли программно заменить все рисунки на всех слайдах на другой bmp-файл, такого же размера из указанного места диска, т.е. разом поменять подложку у всех слайдов?
Или здесь необходимо создавать свои пользовательские шаблоны?
Автоматическая замена фоновых рисунков PowerPoint
Модератор: Naeel Maqsudov
Получился один вариант, вроде работает ...
Этот вариант для случая, когда на слайде находится только один рисунок (фигура типа msoPicture) в качестве подложки.
Этот вариант для случая, когда на слайде находится только один рисунок (фигура типа msoPicture) в качестве подложки.
Код: Выделить всё
Public Sub ReplaceBackgroundPicture()
Dim objShape As Shape
Dim strFileName As String
strFileName = "C:\Path\Picture_02.bmp"
For i = 1 To Application.ActivePresentation.Slides.Count
For Each objShape In Application.ActivePresentation.Slides.Item(i).Shapes
If objShape.Type = msoPicture Then
Set NewobjShape = Application.ActivePresentation.Slides.Item(i).Shapes.AddPicture _
(FileName:=strFileName, LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, Left:=0, Top:=0)
NewobjShape.Left = objShape.Left
NewobjShape.Top = objShape.Top
NewobjShape.Height = objShape.Height
NewobjShape.Width = objShape.Width
NewobjShape.ZOrder msoSendToBack
objShape.Delete
GoTo 1
End If
Next
1:
Next i
End Sub
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Если фоновый рисунок должен находиться на ВСЕХ слайдах презентации (или на всех, кроме слайдов с типом разметки "титульный слайд"), то рисунок надо положить один единмтвенный раз в мастер. Он появится везде.
Если же фоновый рисунок встречается с неопределенной закономерностью, то в вашем макросе надо усложнить условие
If objShape.Type = msoPicture
Для универсальности можно попробовать взять за отправную точку Selection.
Т.е. пусть пользователь сначала выберет картинку, которую будет на всех слайдах менять.
У выделенной картинки посмотрим и запомним какие-нибудь значимые характеристики: напрмиер размер, масштаб, яркость, контраст.
Потом начинается цикл по всем слайдам и шейпам.
В цикле, наряду с objShape.Type = msoPicture нужно проверять те самые "значимые характеристики" на совпадение.
Можно также в ходе цикла если совпадают все параметры кроме одного-двух делать ObjShape.Select и выводить MessageBox с вопросом "А этот рисунок замениь?".
Если же фоновый рисунок встречается с неопределенной закономерностью, то в вашем макросе надо усложнить условие
If objShape.Type = msoPicture
Для универсальности можно попробовать взять за отправную точку Selection.
Т.е. пусть пользователь сначала выберет картинку, которую будет на всех слайдах менять.
У выделенной картинки посмотрим и запомним какие-нибудь значимые характеристики: напрмиер размер, масштаб, яркость, контраст.
Потом начинается цикл по всем слайдам и шейпам.
В цикле, наряду с objShape.Type = msoPicture нужно проверять те самые "значимые характеристики" на совпадение.
Можно также в ходе цикла если совпадают все параметры кроме одного-двух делать ObjShape.Select и выводить MessageBox с вопросом "А этот рисунок замениь?".
Naeel Maqsudov,
У меня следующая ситуация - есть 60 слайдов на которых всего два объекта:
1. везде одинаковый фоновый рисунок - подложка - это bmp-файл на весь экран с необходимым оформлением.
2. текст заголовка - это текст от 1 до 60, помните реализация того самого "счетчика", которого мы обсуждали в другой теме.
Так вот, я настроил период времени между слайдами, установил настройки презентации, с какого слайда начинать, кое-где поменял цвет текста счетчика, в общем презентация готова.
Но приходит заказчик и говорит, что необходимо поменять фон презентации, сделать его например красным вместо зеленного и т.д.
А у меня этот фон на 60 слайдах - весело менять , вот я и меняю все только в одном bmp-файле, и применяю скрипт замены по всем подготовленным кадрам уже настроенной презентации.
Попробовал использовать мастер по вашему совету, но он вроде годен только на стадии создании презентации.
А мне надо изменять шаблон уже к готовой презентации.
Команда Формат\Применить шаблон оформления - тоже не работает на мой собственный шаблон.
Может я что-то не так далаю? Мой шаблон содержит только один объект - фоновый рисунок.
Код, который привел явно не носит универсальный характер, но мой случай полностью закрывает.
Я даже просто создал отдельную презентацию с эти кодом "замена.ppt", чтобы не хранить макросы в каждой презентации, где необходимо менять фон. Просто открываю необходимую презентацию с "замена.ppt", делаю ее активной и даю команду выполнить макрос из презентации "замена.ppt".
У меня следующая ситуация - есть 60 слайдов на которых всего два объекта:
1. везде одинаковый фоновый рисунок - подложка - это bmp-файл на весь экран с необходимым оформлением.
2. текст заголовка - это текст от 1 до 60, помните реализация того самого "счетчика", которого мы обсуждали в другой теме.
Так вот, я настроил период времени между слайдами, установил настройки презентации, с какого слайда начинать, кое-где поменял цвет текста счетчика, в общем презентация готова.
Но приходит заказчик и говорит, что необходимо поменять фон презентации, сделать его например красным вместо зеленного и т.д.
А у меня этот фон на 60 слайдах - весело менять , вот я и меняю все только в одном bmp-файле, и применяю скрипт замены по всем подготовленным кадрам уже настроенной презентации.
Попробовал использовать мастер по вашему совету, но он вроде годен только на стадии создании презентации.
А мне надо изменять шаблон уже к готовой презентации.
Команда Формат\Применить шаблон оформления - тоже не работает на мой собственный шаблон.
Может я что-то не так далаю? Мой шаблон содержит только один объект - фоновый рисунок.
Код, который привел явно не носит универсальный характер, но мой случай полностью закрывает.
Я даже просто создал отдельную презентацию с эти кодом "замена.ppt", чтобы не хранить макросы в каждой презентации, где необходимо менять фон. Просто открываю необходимую презентацию с "замена.ppt", делаю ее активной и даю команду выполнить макрос из презентации "замена.ppt".
Все разобрался, с этими шаблонами и образцами -
Создаем шаблон
1. Открываем пустую презентацию с одним слайдом.
2. Становимся на этот слайд - меню Вид\Образец\Образец слайдов...
3. Вставляем фоновый рисунок в образец, затем "Закрыть"
4. Сохраняем эту презентацию как MySample.pot
Применяем шаблон
Открываем существующие готовые презентации и выполняем меню Формат\Применить шаблон оформления
Создаем шаблон
1. Открываем пустую презентацию с одним слайдом.
2. Становимся на этот слайд - меню Вид\Образец\Образец слайдов...
3. Вставляем фоновый рисунок в образец, затем "Закрыть"
4. Сохраняем эту презентацию как MySample.pot
Применяем шаблон
Открываем существующие готовые презентации и выполняем меню Формат\Применить шаблон оформления
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Прошу прощения.Попробовал использовать мастер по вашему совету, но он вроде годен только на стадии создании презентации.
А мне надо изменять шаблон уже к готовой презентации.
В нерусифицированном офисе "Образец" называется "Master"......
Подскажите пошагово куда этот код вставлять, чтобы изменить картинку-подложку