2016-10-02 11 views
0

私はvbaを初めて勉強しましたが(昨日から始まったばかりです)、コードを使ってパワーポイントにフォームを埋めて時間を節約したいと思います。私はこれまでのところ、結果のテキストボックスで入力ボックスを生成する方法と、単語が1つだけ入力されて一致する場合はフォントの色を変更する方法を考え出しました。しかし、これは私のニーズに完全に適合しません。入力ボックスから特定の単語の色を変える方法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 
関連する問題