2016-10-02 56 views
0

我對vba非常陌生(僅在昨天剛剛開始),但希望使用代碼來節省一些時間,使用PowerPoint填充表單。到目前爲止,我已經想出瞭如何生成帶有結果文本框的輸入框,並且如果只輸入一個單詞並且匹配,則更改字體顏色。然而,這並不完全符合我的需求。如何更改輸入框中特定單詞的顏色vba powerpoint vba初學者

出於我的目的,用戶輸入約定是「Word1-Word2-Word3-Word4-Word5」。例如,「紅 - 黃 - 橙 - 綠 - 藍」。我希望紅色變成紅色,黃色變成黃色,橙色變成橙色,等等。虛線將保持黑色。輸入可以是任意順序,並不是所有部件都可以存在(即「黃 - 紅 - 綠 - 藍 - 橙」或「紅 - 藍 - 綠」),但需要保留顏色編碼。

<here is where I should put my current code that doesn't exactly fit my needs> 

任何人都可以幫助我嗎?

+1

這不是代碼寫入服務。你到目前爲止嘗試了什麼?發佈您的代碼!當你運行它時發生了什麼?你預期會發生什麼?你有什麼特別的問題? – Robert

+0

向我們顯示您的代碼! –

+0

在問你的下一個問題之前,請閱讀http://stackoverflow.com/help/how-to-ask。 –

回答

0

正如指出的那樣,我們不是一個代碼寫入服務。但是,一旦你提供了基本代碼,你仍然可能會遇到一些PPT處理文本的怪癖。所以讓我們短路一些。

我們假設您將採用用戶提供的文本字符串並將其添加到幻燈片的文本框中。以下示例假定選擇了文本框;您的代碼將需要插入一個新的文本框並在變量中獲取對它的引用(在這種情況下爲oSh)。

Sub Example() 
' This looks for the word "red" in the currently selected 
' shape's text and if found, turns it red. 

    Dim oSh As Shape 
    Dim oRng As TextRange 

    ' Get a reference to the currently selected shape 
    ' For what you're doing, you'd need slightly different code 
    Set oSh = ActiveWindow.Selection.ShapeRange(1) 

    ' Get a reference to the text range that contains the word "red" 
    Set oRng = oSh.TextFrame.TextRange.Find("red") 

    ' Change the color of the text range containing the word "red" 
    ' RealWorld Notes: 
    ' Test to see if oRng Is Nothing ... which it'll be if there's 
    ' no word "red" in the string 
    ' You'll need to deal with capitalization: "red" vs "Red" etc.   
    oRng.Font.Color.RGB = RGB(255, 0, 0) 

End Sub