我在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在增长,但我的子弹不会缩进。
答案 0 :(得分:0)
您看到的是额外的空间,因为原始代码中包含chr(9)
且 Tab 字符。因此,请尝试vbCrLf
(回车后跟换行)而不是chr(13) & chr(9)
。
.TextFrame.TextRange.Text = "1" & vbCrLf & "2" & vbCrLf & "3" & vbCrLf & "4"
答案 1 :(得分:0)
我创建了一个带有标准文本框的基本幻灯片作为第二个' Shape'。以下代码将第四行缩进到第二个项目符号级别(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