2016-10-02 2 views
0

저는 vba (어제부터 시작)에만 익숙하지만 코드를 사용하여 파워 포인트에 양식을 채우는 시간을 절약하고 싶습니다. 나는 지금까지 한 단어 만 입력되고 일치하는 경우 결과 텍스트 상자와 입력 상자를 생성하고 글꼴 색상을 변경하는 방법을 알아 냈습니다. 그러나 이것은 내 필요에 완전히 부합하지 않습니다.입력란에서 특정 단어의 색을 바꾸는 방법 vba 초보자

제 목적을 위해 사용자 입력 규칙은 "Word1-Word2-Word3-Word4-Word5"입니다. 예를 들어, "Red-Yellow-Orange-Green-Blue". 레드가 빨강, 노랑, 오렌지, 오렌지 등으로 바뀌길 바란다. 대시는 검은 색으로 남아 있습니다. 입력은 순서에 관계없이 모든 부분이 존재할 수는 없습니다 (예 : "Yellow-Red-Green-Blue-Orange"또는 "Red-Blue-Green"이 발생할 수 있음) 그러나 색상 코딩을 보존해야합니다.

<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