我在 PPT 文件文本框中的 VBA 中出现项目符号问题。
我使用以下代码来修改项目符号中的现有文本:
PptDoc.Slides(3).Shapes(3).TextFrame.TextRange.Text = "1" & Chr(13) & "2" & Chr(13) & "3"
它给了我:
我想在“3”下面制作一个带有“4”的子项目符号。 我试过这个:
.TextFrame.TextRange.Text = "1" & Chr(13) & "2" & Chr(13) & "3" & chr(13) & chr(9)& "4"
它只给我:
但是 id 不是我想要的。我尝试使用 .IndentLevel,但从未成功。
我哪里错了?
感谢您的帮助:)
编辑:我尝试了一些建议,但它对我的演示文稿不起作用,这就是我尝试过的:
> .TextFrame.TextRange.Paragraphs(4).IndentLevel = 2
>
> .TextFrame.TextRange.Lines(4).IndentLevel = 2
每次,它都没有做任何事情,我可以看到 IndentLevel 不断增长,但我的项目符号没有缩进。
我创建了一个基本幻灯片,其中一个标准文本框作为第二个“形状”。以下代码将第四行缩进到第二个项目符号级别 (
IndentLevel = 4
)。您的 IndentLevels 可能会以不同的方式指定,但这应该提供一个通用框架,可以从中制定解决方案。
这对我有用:
Sub pleaseIndentBullets()
Dim pres As Presentation
Dim sd As Slide
Dim shp As Shape
Dim tr As TextRange
Dim s As String
s = "1" & Chr(13) & "2" & Chr(13) & "3" & Chr(13) & "4" ' Chr(9) is tab but this doesn't work
Set pres = ActiveWindow.Presentation
Set sd = pres.Slides(pres.Slides.Count)
Set shp = sd.Shapes(2)
Set tr = shp.TextFrame.TextRange
tr.Text = s
tr.Lines(4).IndentLevel = 4
End Sub
您看到额外的空格是因为原始代码中有
chr(9)
,这是一个 Tab 字符。因此,请尝试使用 vbCrLf
(即回车符后跟换行符)而不是 chr(13) & chr(9)
。
.TextFrame.TextRange.Text = "1" & vbCrLf & "2" & vbCrLf & "3" & vbCrLf & "4"