我是vba的新手(仅在昨天开始)但是想使用代码来节省一些时间来填充powerpoint中的表单。到目前为止,我已经想出如何生成一个带有结果文本框的输入框,如果只输入一个单词并且匹配,则更改字体颜色。然而,这并不完全符合我的需要。
出于我的目的,用户输入约定将是" Word1-Word2-Word3-Word4-Word5"。例如,"红 - 黄 - 橙 - 绿 - 蓝"。我希望Red变红,黄变黄,橙变橙等等。破折号仍然是黑色的。输入可以是任何顺序而不是所有部分都可以存在(即。"黄色 - 红 - 绿 - 蓝 - 橙"或"红 - 蓝 - 绿"可能发生)但是需要保留颜色编码。
<here is where I should put my current code that doesn't exactly fit my needs>
有人可以帮我吗?
答案 0 :(得分: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