0

目的:在 PowerPoint 中调整单个文本框中单词组的字体大小。

细节:

我有两个清单:

Labels = ["Mahon Point Retail","Park","Blackpool Drive","Balance","Finglas Point"] 
FontSize = [10,23,15,20,40]

我想通过索引将 FontSize 中的字体大小应用于标签中的标签。

我的脚本:

#add all items in Labels to a single textbox
for i, label in enumerate(labels):
     Shape.TextFrame.TextRange.Text += "  " + label 

#apply font size from FontSize list to its corresponding label
for x, num in enumerate(FontSize, 1):
     Shape.TextFrame.TextRange.Words(x).Font.Size = int(num)

问题:

我相信问题在于使用“Words(x)”属性,有什么办法可以定义一个词是什么?它将“Mahon Point Retail”视为三个词,但我想将其视为一个词。

4

1 回答 1

1

对 Python 部分无能为力,但您可以调整此 VBA 来做您想做的事。首先是为任何子字符串设置所需格式的函数,然后是测试子例程。这只会更改字符串中单词的第一个实例。从测试较大字符串中是否存在字符串的循环中重复调用它可以解决这个问题。

Function FontTheWords(oSh As Shape, sWords As String)

    Dim oRng As TextRange
    ' Get a range object representing the chosen words
    Set oRng = oSh.TextFrame.TextRange.Characters(InStr(oSh.TextFrame.TextRange.Text, sWords), Len(sWords))
    Debug.Print oRng.Text
    ' format the range in whatever way you like
    With oRng.Font
        .Bold = True
        .Color.RGB = RGB(255, 0, 0)
    End With

End Function

Sub TestIt()
    FontTheWords ActiveWindow.Selection.ShapeRange(1), "Blackpool Drive"
End Sub
于 2013-09-13T15:23:36.827 回答