首页 > 解决方案 > 应用特定布局的PPT

问题描述

我有一段现有的代码(见下文),用于导入一批照片并创建幻灯片。目前,代码是在只有标题的空白背景上创建这些幻灯片。如何修改它以便它从主幻灯片中选择特定的幻灯片布局?我知道这与代码中的这一行有关: Set oSld = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutTitleOnly)

我在这里查看并尝试了一些想法,但我不断收到错误:Apply layout to a slide from specific Master

这是完整的程序:

Sub ImportStuffFromTextFile()
Dim strTemp As String
Dim strPath As String
Dim strFileSpec As String
Dim oSld As Slide
Dim oPic As Shape
Dim fs As Object
Dim f As Object
Dim PicDesc() As String
Dim strFile As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "Text Files", "*.txt"
.AllowMultiSelect = False
.InitialFileName = ActivePresentation.Path
If .Show = -1 Then
strFile = .SelectedItems.Item(1)
End If
If strFile = "" Then Exit Sub
End With
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(strFile, 1, 0)
Do While Not f.AtEndOfStream
    PicDesc = Split(f.readline, Chr(9))
    Set oSld = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutTitleOnly)
    Set oPic = oSld.Shapes.AddPicture(FileName:=PicDesc(0), _
                                      LinkToFile:=msoFalse, _
                                      SaveWithDocument:=msoTrue, _
                                      Left:=0, _
                                      Top:=0)
    If oSld.Shapes.HasTitle Then
        oSld.Shapes.Title.TextFrame.TextRange.Text = PicDesc(1)
        With oPic
            .Height = 469.875
            .Width = 626.325
            .Left = ActivePresentation.PageSetup.SlideWidth / 2 - .Width / 2
            .Top = oSld.Shapes.Title.Top + oSld.Shapes.Title.Height + 7
        End With
    End If
    Set oPic = Nothing
    Set oSld = Nothing
Loop
Set f = Nothing
Set fs = Nothing
End Sub

标签: vbapowerpoint

解决方案


当你说你不断得到错误时,你是什么意思?

  • 您是否收到错误消息?如果是这样,错误编号/描述是什么?代码在哪里中断?
  • 如果不是,并且您遇到了“错误”,那么最终输出应该是什么样的,这与它有何不同?

我想说这里最大的未知数是文本文件输入。根据您的代码,它似乎需要在文本文件的每一行上有一系列文件名和相应的图片描述,并用制表符分隔。至关重要的是,它必须是一个制表符,而不是 2 个空格或 4 个空格或 10 个空格或连字符……它必须是一个制表符。那是您用作输入的文本文件的结构吗?


推荐阅读