Как в vba powerpoint определить активный слайд

Обновлено: 06.07.2024

Работа с PowerPoint из VBA, автоматизация создания презентаций, объекты PowerPoint.Application, PowerPoint.Presentation, PowerPoint.Slide, PowerPoint.Shape

Использовать возможности VBA в PowerPoint на предприятиях приходится намного реже, чем возможности Word или Excel, однако иногда такие потребности возникают. Часто специалисты используют презентации PowerPoint для сопровождения выступлений при демонстрации продуктов или услуг, отчетов о деятельности и т.п. Поскольку со слайдами можно связывать звуковое сопровождение, PowerPoint активно используется для целей обучения — например, подготовки интерактивных уроков. Еще одна часто используемая возможность — создание звуковых книг с картинками для детей. При помощи PowerPoint можно создавать фотоальбомы со звуковым сопровождением, диафильмы со звуком, детские игры и многое другое. И как только данных становится много (а, например, цифровых фотографий редко бывает мало) сразу встает вопрос об автоматизации.

PowerPoint — программа работы с презентациями (то есть наборами графических изображений — слайдов, иногда со звуковым сопровождением). Чаще всего приходится программным способом выполнять следующие действия:

  • автоматически создавать презентации (например, на основе набора изображений в каталоге);
  • производить обработку презентаций — менять формат изображения, добавлять или изменять аудиосопровождение и т.п. Чаще всего подобные действия приходится производить в тех ситуациях, когда презентации были связаны с внешними файлами и эти файлы изменяются.

В PowerPoint система объектов выглядит следующим образом:

  • объект самого высокого уровня — Application , с набором свойств и методов, очень похожим на аналогичные объекты в Word и Excel;
  • на уровень ниже — коллекция Presentations с объектами Presentation . Можно сказать, что эти объекты по месту в иерархии примерно аналогичны объекту Workbook в Excel;
  • в объект Presentation встроена коллекция Slides с объектами Slide (в качестве примерного аналога можно привести листы в книгах Excel);
  • в объект Slide встроена коллекция Shapes с объектами Shape . Объекты Shape представляют все элементы слайда (всего их 22 типа) — изображение, надпись, диаграмма, заголовок, таблица, автофигура и т.п.

Вокруг этих четырех объектов — Application, Presentation, Slide и Shape и строится вся объектная модель PowerPoint.

В этой главе мы не будем приводить справку по свойствам и методам различных объектов PowerPoint (нужные свойства и методы можно быстро найти при помощи макрорекордера), а вместо этого проиллюстрируем работу с PowerPoint на примерах из реальной жизни.

Предположим, что нам нужно создать презентацию PowerPoint на основе набора JPG-картинок, которые будут лежать в каталоге C:\Slides (например, они получены со сканера или цифрового фотоаппарата). Имена файлов JPG идут по порядку, например, с DSCN2440.JPG по DSCN2480.JPG. Файлов в каталоге может быть переменное количество, поэтому нам нужно взять все файлы, которые есть в этом каталоге. Наша задача — поместить их в презентацию по порядку. Задача усугубляется тем, что JPG-файлы разного размера (по высоте и ширине), а слайды, конечно, желательно сделать одинаковыми.

Как ни удивительно, код 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 и прочими для работы с файловой системой . Эта библиотека, которая есть на любом компьютере начиная с Windows 2000, — самый удобный способ выполнения большинства действий в файловой системе.

Далее можно приступать к созданию кода.

Конечно, первое, что нам потребуется — запустить PowerPoint. Делается это точно так же, как и для Word, Excel, Access и т.п.:

Dim oApp As New PowerPoint.Application

Следующее действие — нужно создать новую пустую презентацию:

Dim oPresent As PowerPoint.Presentation

Set oPresent = oApp.Presentations.Add()

Все абсолютно стандартно, как будто мы создаем новый документ Word. А вот дальше начинаются моменты, специфические для PowerPoint и нашей задачи

Следующим действием должно быть создание слайда. Но нам придется создать столько слайдов, сколько файлов находится в каталоге C:\Slides. Конечно же, нужно создавать слайды в цикле. Вначале мы получаем (при помощи библиотеки Scripting Runtime (можно было бы обойтись и средствами Office, но так проще) коллекцию всех файлов этого каталога:

Dim oFSO As New Scripting.FileSystemObject

Dim oFolder As Scripting.Folder

Dim oFile As Scripting.File

Set oFolder = oFSO.GetFolder("C:\Slides")

For Each oFile In oFolder.Files

Если мы вместо многоточия поставим строку, например такого вида:

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

Далее нам все-таки нужно создать слайды. Делается это при помощи метода Add() коллекции Slides. В документации к русскому PowerPoint 2003 описание этого метода по непонятной причине отсутствует (даже несмотря на то, что справка по VBA все равно на английском), но из всплывающей подсказки можно догадаться, что этот метод хочет принимать два параметра (обязательных): номер слайда в презентации, который должен начинаться с 1, и одно из значений перечисления ppSlideLayout (из нескольких десятков), которое определяет шаблон слайда.

Номер слайда придется обеспечивать счетчиком, а наилучший для нас шаблон — пустой:

Dim nCounter As Integer

For Each oFile In oFolder.Files

Set oSlide = oApp.ActivePresentation.Slides.Add(nCounter, ppLayoutBlank)

nCounter = nCounter + 1

А теперь — самое главное: вставляем в слайд изображение и настраиваем его размеры. Для этой цели можно использовать метод AddPicture() коллекции Shapes каждого слайда:

oSlide.Shapes.AddPicture FileName:="C:\Slides\" & _

oFile.Name, LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _

Left :=10, Top :=10, Width :=700, Height :=520

Параметр FileName — это, конечно, имя передаваемого файла. Именно он и будет меняться в цикле. LinkToFile — этот параметр определяет, будет ли файл изображения помещен внутрь презентации ( msoFalse) или в презентацию будет помещена на него ссылка ( msoTrue). Конечно, если вставляемые файлы не очень большие, то и с точки зрения удобства, и с точки зрения производительности презентации лучше поместить их внутрь презентации (файла PPT). Параметр SaveWithDocument, конечно, определяет, сохранять ли наши изображения вместе с презентацией (в нашем случае сохранять). А Left, Top, Width и Height нужны, чтобы сделать изображения одинакового размера (чтобы подобрать нужные значения, я занимался обычным подбором по методу "недолет-перелет").

Естественно, код этого пункта помещается вместо многоточия в цикл. Чтобы не возиться с удалением обработанных файлов, я поместил в цикл еще одну очевидную строку:

Итоговый код для нашей задачи может выглядеть так:

Dim oApp As New PowerPoint.Application

Dim oPresent As PowerPoint.Presentation

Set oPresent = oApp.Presentations.Add()

Dim oFSO As New Scripting.FileSystemObject

Dim oFolder As Scripting.Folder

Dim oFile As Scripting.File

Set oFolder = oFSO.GetFolder("C:\Slides")

For Each oFile In oFolder.Files

Set oSlide = oApp.ActivePresentation.Slides.Add(nCounter, ppLayoutBlank)

oSlide.Shapes.AddPicture FileName:="C:\Slides\" & _

oFile.Name, LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _

Left:=10, Top:=10, Width:=700, Height:=520

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

На практике работа с PowerPoint может быть достаточно сложной при работе с эффектами анимации, звуковым сопровождением, диапазонами фигур и т.п. Найти в документации то, что вам будет нужно, не так-то просто. Рекомендуется для получения "наводящих указаний" активнее использовать макрорекордер и анализировать созданный им код. Однако макрорекордер часто выбирает какие-то очень нетривиальные способы выполнения различных действий. Например, для вставки того же рисунка он предлагает использовать код типа

что, конечно, задачу не упрощает. Так что код макрорекордера всегда рекомендуется проверять и исправлять.

Напишите макрос PowerPoint, который бы добавлял во все слайды активной презентации в правый нижний угол надпись "© Академия специальных курсов, 2006".

в реальной работе, возможно, удобнее было поместить этот макрос по внешнее приложение VBA, например, документ Word или лист Excel — чтобы не копировать этот код для каждой новой презентации. В этой работе для простоты код будет выполняться из самого PowerPoint.

Код макроса может быть, например, таким:

Public Sub InsertCopyRight()

Dim oSlide As Slide

Dim oShape As Shape

'Проходим циклом по всем слайдам в презентации

For Each oSlide In Application.ActivePresentation.Slides

'Для каждого слайда создаем надпись (в виде объекта Shape)

'Нужные значения для числовых параметров Left , Top , Width и Height находим

Представляет слайд. Коллекция Slides содержит все объекты Slide в презентации.

Примечания

Не путайтесь, если вы пытаетесь вернуть ссылку на один слайд, но в итоге у вас будет объект SlideRange. Один слайд может быть представлен либо объектом Slide, либо коллекцией SlideRange,которая содержит только один слайд, в зависимости от того, как вы возвращаете ссылку на слайд. Например, если вы создаете и возвращаете ссылку на слайд с помощью метода Add, слайд представлен объектом Slide. Однако если вы создаете и возвращаете ссылку на слайд с помощью метода Дубликат, слайд представлен коллекцией SlideRange, которая содержит один слайд. Так как все свойства и методы, применимые к объекту Slide, также применяются к коллекции SlideRange, которая содержит один слайд, вы можете работать с возвращенным слайдом таким же образом, независимо от того, представлен ли он объектом Slide или коллекцией SlideRange.

В следующих примерах описано, как:

Возвращение слайда, указываемого по имени, номеру индекса или номеру слайд-номера

Возвращение слайда в выборе

Возвращение слайда, который в настоящее время отображается в любом окне документа или окне отображения слайдов, которое вы указали.

Создайте новый слайд

Пример

Используйте Слайды (индекс), где индекс — это имя слайда или номер индекса, или используйте Slides.FindBySlideID (индекс), где индекс — это номер слайда, чтобы вернуть один объект Slide. В следующем примере устанавливается макет слайда в активной презентации.

В следующем примере устанавливается макет слайда с ID-номером 265.

Чтобы вернуть один объект Slide, используйте Selection.SlideRange (index), где индексом является имя слайда или номер индекса в выборе. В следующем примере устанавливается макет слайда в выборе в активном окне при условии, что выбран по крайней мере один слайд.

Если выбран только один слайд, вы можете использовать Selection.SlideRange для возврата коллекции SlideRange, которая содержит выбранный слайд. В следующем примере устанавливается макет слайда в текущем выборе в активном окне при условии, что выбран ровно один слайд.

Используйте свойство Slide, чтобы вернуть слайд, отображаемый в указанном окне документа или окне отображения слайдов. В следующем примере копируется слайд, который в настоящее время отображается в окне документа два в буфер обмена.

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

Методы

Свойства

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Коллекция всех объектов Slide в указанной презентации.

Заметки

Если ваше Visual Studio включает Microsoft.Office. Interop. PowerPoint эта коллекция сопопопо-ет следующим типам:

  • Microsoft. Office. Interop. PowerPoint. Slides.GetEnumerator (для переумерия объектов Slide.)

В следующих примерах описано, как:

Создание слайда и добавление его в коллекцию

Возвращение одного слайда, указываемого по имени, номеру индекса или номеру слайд-номера

Возвращение подмножество слайдов в презентации

Применение свойства или метода для всех слайдов в презентации одновременно

Пример

Чтобы вернуть коллекцию Слайдов, используйте свойство Slides. Используйте метод Добавить, чтобы создать новый слайд и добавить его в коллекцию. В следующем примере в активную презентацию добавляется новый слайд.

Используйте Слайды (индекс), где индекс — это имя слайда или номер индекса, или используйте Slides.FindBySlideID (индекс), где индекс — это номер слайда, чтобы вернуть один объект Slide. В следующем примере устанавливается макет слайда в активной презентации.

В следующем примере устанавливается макет слайда с именем "Большая диаграмма" в активной презентации. Обратите внимание, что слайды автоматически создаются имена формы Sliden (где n является integer) при их создания. Чтобы назначить слайду более значимое имя, используйте свойство Name.

Используйте Slides.Range (index), где индексом является номер индекса слайдов или имя или массив номеров индексов слайдов или массив имен слайдов, чтобы вернуть объект SlideRange, представляюрю подмножество коллекции Slides. В следующем примере задается фоновое заполнение слайдов одного и трех в активной презентации.

Если вы хотите сделать что-то для всех слайдов в презентации одновременно (например, удалить все из них или заставить свойство для всех), используйте Slides.Range без аргументов для создания коллекции SlideRange, которая содержит все слайды в коллекции Slides, а затем применить соответствующее свойство или метод к коллекции SlideRange. В следующем примере задается фоновое заполнение для всех слайдов в активной презентации

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Использовать возможности VBA в PowerPoint на предприятиях приходится намного реже, чем возможности Word или Excel, однако иногда такие потребности возникают. Часто специалисты используют презентации PowerPoint для сопровождения выступлений при демонстрации продуктов или услуг, отчетов о деятельности и т.п. Поскольку со слайдами можно связывать звуковое сопровождение, PowerPoint активно используется для целей обучения — например, подготовки интерактивных уроков. Еще одна часто используемая возможность — создание звуковых книг с картинками для детей. При помощи PowerPoint можно создавать фотоальбомы со звуковым сопровождением, диафильмы со звуком, детские игры и многое другое. И как только данных становится много (а, например, цифровых фотографий редко бывает мало) сразу встает вопрос об автоматизации.

PowerPoint — программа работы с презентациями (то есть наборами графических изображений — слайдов, иногда со звуковым сопровождением). Чаще всего приходится программным способом выполнять следующие действия:

  • автоматически создавать презентации (например, на основе набора изображений в каталоге);
  • производить обработку презентаций — менять формат изображения, добавлять или изменять аудиосопровождение и т.п. Чаще всего подобные действия приходится производить в тех ситуациях, когда презентации были связаны с внешними файлами и эти файлы изменяются.

В PowerPoint система объектов выглядит следующим образом:

  • объект самого высокого уровня — Application, с набором свойств и методов, очень похожим на аналогичные объекты в Word и Excel;
  • на уровень ниже — коллекция Presentations с объектами Presentation. Можно сказать, что эти объекты по месту в иерархии примерно аналогичны объекту Workbook в Excel;
  • в объект Presentation встроена коллекция Slides с объектами Slide (в качестве примерного аналога можно привести листы в книгах Excel);
  • в объект Slide встроена коллекция Shapes с объектами Shape. Объекты Shape представляют все элементы слайда (всего их 22 типа) — изображение, надпись, диаграмма, заголовок, таблица, автофигура и т.п.

Вокруг этих четырех объектов — Application, Presentation, Slide и Shape и строится вся объектная модель PowerPoint.

В этой главе мы не будем приводить справку по свойствам и методам различных объектов PowerPoint (нужные свойства и методы можно быстро найти при помощи макрорекордера), а вместо этого проиллюстрируем работу с PowerPoint на примерах из реальной жизни.

Предположим, что нам нужно создать презентацию PowerPoint на основе набора JPG-картинок, которые будут лежать в каталоге C:\Slides (например, они получены со сканера или цифрового фотоаппарата). Имена файлов JPG идут по порядку, например, с DSCN2440.JPG по DSCN2480.JPG. Файлов в каталоге может быть переменное количество, поэтому нам нужно взять все файлы, которые есть в этом каталоге. Наша задача — поместить их в презентацию по порядку. Задача усугубляется тем, что JPG-файлы разного размера (по высоте и ширине), а слайды, конечно, желательно сделать одинаковыми.

Как ни удивительно, код 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 и прочими для работы с файловой системой . Эта библиотека, которая есть на любом компьютере начиная с Windows 2000, — самый удобный способ выполнения большинства действий в файловой системе.

Далее можно приступать к созданию кода.

Конечно, первое, что нам потребуется — запустить PowerPoint. Делается это точно так же, как и для Word, Excel, Access и т.п.:

Dim oApp As New PowerPoint.Application

Следующее действие — нужно создать новую пустую презентацию:

Dim oPresent As PowerPoint.Presentation

Set oPresent = oApp.Presentations.Add()

Все абсолютно стандартно, как будто мы создаем новый документ Word. А вот дальше начинаются моменты, специфические для PowerPoint и нашей задачи

Следующим действием должно быть создание слайда. Но нам придется создать столько слайдов, сколько файлов находится в каталоге C:\Slides. Конечно же, нужно создавать слайды в цикле. Вначале мы получаем (при помощи библиотеки Scripting Runtime (можно было бы обойтись и средствами Office, но так проще) коллекцию всех файлов этого каталога:

Dim oFSO As New Scripting.FileSystemObject

Dim oFolder As Scripting.Folder

Dim oFile As Scripting.File

Set oFolder = oFSO.GetFolder("C:\Slides")

For Each oFile In oFolder.Files

Если мы вместо многоточия поставим строку, например такого вида:

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

Далее нам все-таки нужно создать слайды. Делается это при помощи метода Add() коллекции Slides. В документации к русскому PowerPoint 2003 описание этого метода по непонятной причине отсутствует (даже несмотря на то, что справка по VBA все равно на английском), но из всплывающей подсказки можно догадаться, что этот метод хочет принимать два параметра (обязательных): номер слайда в презентации, который должен начинаться с 1, и одно из значений перечисления ppSlideLayout (из нескольких десятков), которое определяет шаблон слайда.

Номер слайда придется обеспечивать счетчиком, а наилучший для нас шаблон — пустой:

Dim nCounter As Integer

For Each oFile In oFolder.Files

Set oSlide = oApp.ActivePresentation.Slides.Add(nCounter, ppLayoutBlank)

nCounter = nCounter + 1

А теперь — самое главное: вставляем в слайд изображение и настраиваем его размеры. Для этой цели можно использовать метод AddPicture() коллекции Shapes каждого слайда:

oSlide.Shapes.AddPicture FileName:="C:\Slides\" & _

oFile.Name, LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _

Left :=10, Top :=10, Width :=700, Height :=520

Параметр FileName — это, конечно, имя передаваемого файла. Именно он и будет меняться в цикле. LinkToFile — этот параметр определяет, будет ли файл изображения помещен внутрь презентации ( msoFalse) или в презентацию будет помещена на него ссылка ( msoTrue). Конечно, если вставляемые файлы не очень большие, то и с точки зрения удобства, и с точки зрения производительности презентации лучше поместить их внутрь презентации (файла PPT). Параметр SaveWithDocument, конечно, определяет, сохранять ли наши изображения вместе с презентацией (в нашем случае сохранять). А Left, Top, Width и Height нужны, чтобы сделать изображения одинакового размера (чтобы подобрать нужные значения, я занимался обычным подбором по методу "недолет-перелет").

Естественно, код этого пункта помещается вместо многоточия в цикл. Чтобы не возиться с удалением обработанных файлов, я поместил в цикл еще одну очевидную строку:

Итоговый код для нашей задачи может выглядеть так:

Dim oApp As New PowerPoint.Application

Dim oPresent As PowerPoint.Presentation

Set oPresent = oApp.Presentations.Add()

Dim oFSO As New Scripting.FileSystemObject

Dim oFolder As Scripting.Folder

Dim oFile As Scripting.File

Set oFolder = oFSO.GetFolder("C:\Slides")

For Each oFile In oFolder.Files

Set oSlide = oApp.ActivePresentation.Slides.Add(nCounter, ppLayoutBlank)

oSlide.Shapes.AddPicture FileName:="C:\Slides\" & _

oFile.Name, LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _

Left:=10, Top:=10, Width:=700, Height:=520

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

На практике работа с PowerPoint может быть достаточно сложной при работе с эффектами анимации, звуковым сопровождением, диапазонами фигур и т.п. Найти в документации то, что вам будет нужно, не так-то просто. Рекомендуется для получения "наводящих указаний" активнее использовать макрорекордер и анализировать созданный им код. Однако макрорекордер часто выбирает какие-то очень нетривиальные способы выполнения различных действий. Например, для вставки того же рисунка он предлагает использовать код типа

что, конечно, задачу не упрощает. Так что код макрорекордера всегда рекомендуется проверять и исправлять.

Dim n As Integers Public AAA() As Integer Public QQQ() As String Sub Initialise() n = 0 End Sub Sub WrongAnswer(oShape As Shape) A = oShape.TextEffect.Text SendWrongAnswer End Sub Sub SendWrongAnswer() ReDim QQQ(500) QQQ(n) = Q ReDim AAA(500) AAA(n) = A n = (n) + 1 End Sub Когда я создаю масси.

Я хочу открыть файл PowerPoint через Excel VBA, указав только расширение файла (.pptx). Я видел некоторые коды, но они требуют полного имени файла, который будет дан. Можно ли это сделать? Я храню только один файл PowerPoint в своей папке.

Я зацикливаю через фигуры в слайде 1 PowerPoint Когда форма с именем "hd" удаляется следующая форма, становится «SD», пропуская «4K». И если «4K» удаляется, то следующая форма становится «FullHD» Как избежать этого? For Each pshape In ppres.Slides(1).Shapes Select Case pshape.Name Ca.

Предположим, у меня есть таблица в PowerPoint, которая выглядит левой таблице на этой иллюстрации. Прямо вперед, две колонны, два ряда. ___________________ ___________________ | | | | | | | 1,1 | 1,2 | Split .

Я хочу изменить цвет пули в PowerPoint. Я нашел Sub Bullet() With Application.ActivePresentation.Slides(2).Shapes(1).TextFrame With .TextRange.ParagraphFormat.Bullet .Visible = True .RelativeSize = 1.25 .Font.Color = RGB(255, 0, 255) End With End With End Sub Это .

У меня есть макрос внутри слайд-шоу PowerPoint, который при активации его должен открыть случайное слайд-шоу .ppsm. Это делает это правильно, но по какой-то причине он не только открывает слайд-шоу, но также открывает его в редакторе PowerPoint, который мне не нужно. При этом в PowerPoint 2016 он от.

Мои макросы VBA в PP хорошо работают в режиме слайд-шоу на одном экране, однако есть дисфункции. 2 экрана. Макрос либо перемещается по слайду, либо текстовое поле ввода не работает (невозможно добавить ввод) Слайд-шоу состоит из поля ввода текстового поля, кнопки команды и поля вывода текстового п.

Я пытаюсь запустить скрипт в модуле Powerpoint для преобразования всех выбранных прямоугольников в округлую форму, ниже приведен скрипт, который я получил в Интернете, но он конвертирует только первый выбранный прямоугольник Это для PowerPoint 2016 Sub SetShapeRoundingRadius() Dim oShape As Sh.

Я пытаюсь удалить лишние пробелы в тексте с помощью метода обрезки и с помощью следующего: Как удалить лишние пробелы в PPT с помощью VBA? Проблема в том, что он меняет цвет шрифта, стиль и устанавливает для всего текста на слайде единый формат / стиль. Пример: Слайд выделен полужирным шрифтом син.

В настоящее время у меня есть презентация PowerPoint, которая используется на компьютере в качестве своего рода киоска или информационного экрана. Он читает его текст из текстового файла на диске. Текст в этом текстовом файле отображается в текстовом поле в PowerPoint, и он обновляется каждые 5 секу.

Я пытаюсь получить индекс активного скольжения и хранить его как целое число, чтобы я мог вызывать функции и проходить в целом. Я следовал коду, который отображает индекс целого числа в MSGBox, и он отлично работает. И все же, когда я пытаюсь просто сохранить индекс как целое число, ничего не происх.

Я знаю, это звучит просто, но я не нашел ни решения ни в сети, ни на этом сайте. Итак, у меня есть макрос в Excel, который изменяет цвет шрифта любого выбранного элемента - диапазона, диаграммы, текстового поля и т. Д. - и код довольно прост: Selection.Font.Color = RGB(0,0,0) Но в PowerPoint в Exce.

Я должен найти и предупредить об этом, если в каждой таблице в Power Point найдена пустая ячейка. Я нашел приведенный ниже код здесь, но он не работает и не должен быть найти для всей таблицы, а не для выбранной. Sub CheckTableCells() Dim oCell As Cell Dim oRow As Row Dim MyRange A.

Недавно я запустил VBA и пытаюсь создать проект, который откроет файл PowerPoint (compute_dashboard.pptx) и разместит его в режиме слайд-шоу. Он будет перемещаться по слайдам и зацикливаться, пока не достигнет определенного временного диапазона; в этом коде ниже он должен выйти в 10:10:00 - 10:10.

Я делаю игру внутри PPT для месяца осведомленности о кибербезопасности для моей компании. Я использую VBA, чтобы сделать пару дополнительных функций, которые делают его немного приятнее, чем просто викторина в опасном стиле. У меня уже есть кнопки для работы (кнопки действий), которые могут скрыва.

Я хочу создать макрос, чтобы установить шрифт для всех текстовых полей в PowerPoint. У меня есть код для их установки, но для обработки ошибок мне нужно убедиться, что шрифт, введенный пользователем, действителен, и, следовательно, мне нужна полная коллекция шрифтов, установленных PowerPoint. Privat.

Это моя первая задача по макросам PPT. У меня есть код, который может копировать выбранные слайды и вставки в новую презентацию, это занимает очень много времени, особенно при выборе слайдов, которые не в порядке, например (1,2,5,8,9). Я ищу код, в котором мы можем указать конкретные номера слайдо.

Привет всем умным выглядывает там, Я хочу выбрать несколько Powerpointslides на основе входных данных из поля ввода, и я не могу заставить его работать. Возможно, что-то не так с тем, как я объявляю переменные. Я создал макрос, который называет Powerpointslides, и я хочу выбрать название слайдов в п.

Я пытаюсь добавить заголовок слайда в ppt из файла Excel. Но я не могу замкнуть это в петле. Каждая ячейка от A1 до A7 имеет заголовки слайдов в файле, и, соответственно, я хочу поместить заголовки в слайды в соответствии с номером слайда. Ниже приведен код, который я написал. For i = 1 To 7 With.

В процессе создания слайда с помощью VBA в powerpoint мне нужно вставить «символ Wingdings» в сгенерированный текст, который представляет собой сравнение двух значений. Я сделал этот метод, который работает именно так, как я хочу Sub formatDifference(header As String, old As Integer, now As Integer.

Читайте также: