Слайд 10 Предположим, что нам нужно создать презентацию PowerPoint на основе набора JPG-картинок,
которые будут лежать в каталоге C:\Slides (например, они получены со сканера или цифрового фотоаппарата). Файлов в каталоге может быть переменное количество, поэтому нам нужно взять все файлы, которые есть в этом каталоге. Наша задача — поместить их в презентацию по порядку. Задача усугубляется тем, что все файлы разного размера (по высоте и ширине), а слайды, конечно, желательно сделать одинаковыми.
Как ни удивительно, код VBA для PowerPoint удобнее запускать не из PowerPoint, а из внешнего приложения, поддерживающего VBA, например, Word или Excel. Так на момент запуска у нас гарантированно не будет активных презентаций и мы ничего не перепутаем с точки зрения вставки.
Как может выглядеть наше решение:
Создаем новый документ в Word или Excel, в него помещаем кнопку или обеспечиваем другой графический интерфейс по вкусу. Главное — не забыть добавить в проект ссылки на две объектные библиотеки:
Microsoft PowerPoint 11.0 Object Library (C:\Program Files\Microsoft Office\Office 11\msppt.olb) — для объектов самого PowerPoint;
Microsoft Scripting Runtime (C:\Windows\System32\ScrRun.dll) — для того , чтобы можно было пользоваться объектом FileSystemObject и прочими для работы с файловой системой .
Далее можно приступать к созданию кода:
запустить PowerPoint,
нужно создать новую пустую презентацию,
создание слайда. (Нужно создать столько слайдов, сколько файлов находится в каталоге C:\Slides.)
Если мы вместо многоточия поставим строку, например такого вида:
MsgBox oFile.Name - то можно будет убедиться, что набор файлов в правильном порядке.
А теперь — самое главное: вставляем в слайд изображение и настраиваем его размеры. Для этой цели можно использовать метод AddPicture() коллекции Shapes каждого слайда.
Параметр FileName — это, конечно, имя передаваемого файла. Именно он и будет меняться в цикле. LinkToFile — этот параметр определяет, будет ли файл изображения помещен внутрь презентации или в презентацию будет помещена на него ссылка. Конечно, если вставляемые файлы не очень большие, то и с точки зрения удобства, и с точки зрения производительности презентации лучше поместить их внутрь презентации. Параметр SaveWithDocument, конечно, определяет, сохранять ли наши изображения вместе с презентацией. А Left, Top, Width и Height нужны, чтобы сделать изображения одинакового размера.
Несколько строк кода могут заменить часы нудной работы по копированию и вставке изображений вручную.