vba - 应用特定布局的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
解决方案
当你说你不断得到错误时,你是什么意思?
- 您是否收到错误消息?如果是这样,错误编号/描述是什么?代码在哪里中断?
- 如果不是,并且您遇到了“错误”,那么最终输出应该是什么样的,这与它有何不同?
我想说这里最大的未知数是文本文件输入。根据您的代码,它似乎需要在文本文件的每一行上有一系列文件名和相应的图片描述,并用制表符分隔。至关重要的是,它必须是一个制表符,而不是 2 个空格或 4 个空格或 10 个空格或连字符……它必须是一个制表符。那是您用作输入的文本文件的结构吗?
推荐阅读
- canvasjs - 如何将摄氏度作为符号传递给 YAxis 标题
- eslint - 在暂存文件上运行 eslint "ONLY"
- python - Python:加载excel表头而不加载剩余数据
- php - 无法在单元测试中运行 laravel artisan 命令
- java - 如何将数据从 Activity 扩展类共享到 View 扩展类?
- spring-boot - Spring Boot:将自动装配的构造函数与配置文件中的类一起使用
- python - 使用 Python 或任何语言从 Sql 文件中提取源表和目标表
- vb.net - 我喜欢通过vb.net datagridview删除oracle表多条记录,下面的编码出现ora 00936缺少表达式错误
- kubernetes - 使用检索集群详细信息时出现禁止错误
使用 REST Kubernetes API - html - 您可以使用 grid-auto-flow: dense 而不知道您将拥有多少网格项目