Как использовать шаблон PowerPoint через VBA для создания нужных слайдов? - PullRequest
2 голосов
/ 01 июля 2019

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

Я встроил слайды в новые пустые слайды PowerPoint, но пока не могу понять, как это сделать с шаблоном.

Sub LCTAKT_Macro()
    'Declare variables
    Dim PP As PowerPoint.Application
    Dim PPPres As PowerPoint.Presentation
    Dim PPSlide1 As PowerPoint.Slide
    Dim PPSlide2 As PowerPoint.Slide
    Dim PPSlide3 As PowerPoint.Slide
    Dim PPSlide4 As PowerPoint.Slide
    Dim PPSlide5 As PowerPoint.Slide
    Dim PPSlide6 As PowerPoint.Slide
    Dim PPSlide7 As PowerPoint.Slide
    Dim SlideTitle As String
    Dim objPPT As Object

    'Open PowerPoint and create new presentation
    Set objPPT = CreateObject("PowerPoint.Application")
    objPPT.Visible = True

    Set PP = New PowerPoint.Application
    Set PPPres = PP.Presentations.Add
    PP.Visible = True

    objPPT.Presentations.Open ""

    '-------------------------------------------------Station 42---------        ------------------------------------------------
    'Add new slide as slide 2 and set focus to it
    Set PPSlide1 = PPPres.Slides.Add(1, ppLayoutTitleOnly)
    PPSlide1.Select

    'Copy the range as a picture
    Sheets("").Range("A1:W59").CopyPicture _
    Appearance:=xlScreen, Format:=xlPicture

    'Paste the picture and adjust its position
    PPSlide1.Shapes.Paste.Select
    PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
    PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True

    'Add the title to the slide
    SlideTitle = ""
    PPSlide1.Shapes.Title.TextFrame.TextRange.Text = SlideTitle

    'Position pasted chart
    PP.ActiveWindow.Selection.ShapeRange.Left = 200
    PP.ActiveWindow.Selection.ShapeRange.Top = 130
    PP.ActiveWindow.Selection.ShapeRange.Height = 523
    PP.ActiveWindow.Selection.ShapeRange.Width = 554

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

1 Ответ

0 голосов
/ 02 июля 2019

В Office 2013 или более поздней версии попробуйте следующее:

TemplateName$ = "C:\Users\YourActualUserName\Documents\Custom Office Templates\YourActualTemplateName.potx"
Set PPPres = PP.Presentations.Open(TemplateName$, False, True, True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...