0

目的: PowerPoint の単一のテキスト ボックス内の単語グループのフォント サイズを調整します。

詳細:

私は2つのリストを持っています:

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

インデックスによって、FontSize のフォント サイズを Labels のラベルに適用したいと思います。

私のスクリプト:

#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)」プロパティの使用にあると思いますが、単語が何であるかを定義する方法はありますか? 「マホン ポイント リテール」は 3 つの単語として扱われますが、1 つの単語として扱いたいと思います。

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 に答える