2017-12-28 13 views
2

저는 직장에서 Excel 템플릿을 업데이트하는 데 도움을주고 도움이 필요합니다. 텍스트 상자의 텍스트 서식을 빨간색으로 지정하고 테두리를 제거하려고합니다. 내 코드에 해당 속성을 추가하는 방법을 모르겠습니다. 나는 코딩을 잘하지 못한다. 내가 찾은 다른 코드를 해부하는 것에서 함께 아래에 넣을 수 있었다.VBA 텍스트 상자 글꼴 색

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 2525, 1800, 103, 24).TextFrame.Characters.Text = Format(Cells(9, 2), "mmmm d, yyyy") 

나는 결국 텍스트 상자의 코드에서 절대 위치 값을 대체 할 수 있습니다하지만 난 효율 개조하면 되겠 어를 만들기 시작하기 전에 작업 할. 도와 줘서 고맙다!

EDIT1 : 아래의 코드는 1과 2 또는 1과 3을 사용하는 경우 작동합니다. 왜 둘을 함께 사용할 수 없는지 잘 모르겠습니다.

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 2525, 1800, 103, 24) _ 
.TextFrame.Characters.Font.Color = vbRed _ 
.TextFrame.Characters.Text = Format(Cells(9, 2), "mmmm d, yyyy") 
+0

나는 이것을 위해 몇 가지 해결책을 찾았습니다. ** https : // stackoverflow를보십시오.co.kr/questions/28960875/change-font-color-of-a-textbox ** 및 ** https://www.computing.net/answers/office/vba-textbox-font-color/10760.html** – Zac

+0

다음은 텍스트 상자의 속성과 메서드입니다. https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.controls.textbox.aspx 일부 문자 만 변경하려고합니까? 모든 캐릭터? –

+0

스택 오버플로에 오신 것을 환영합니다! [둘러보기]는 물론 [ask]와 [mcve]도 확인하십시오. – ashleedawg

답변

1

LL 방법 @ 당신이 shapes.addtextbox 함께 일을 이런 식으로 작업을 수행합니다

With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 146#, 68#, _ 
     301#, 181#).TextFrame 
     .Characters.Font.Color = RGB(255, 0, 0) 
     .Characters.Text = "Whatever your string is" 
     .HorizontalAlignment = xlCenter 
     .VerticalAlignment = xlCenter 
End With 

enter image description here

내가 다음 나머지는 포장되는 텍스트 상자에 입력을 유지하는 경우 빨간색으로 표시되고 첫 번째 과제가있는 곳이면 무엇이든간에 스크린 샷의 명령 버튼은 위의 코드를 실행하여 재생됩니다.

텍스트를 텍스트 상자에 계속 추가하고 빼는 경우 이름이 지정된 모양을 얻는 것이 좋습니다. 그런 다음 거기에있는 문자열을 잡고 추가 할 수 있습니다. . 아래 코드는 VBA를 사용하여 텍스트 상자에서 이름을 지정하고 텍스트를 추가하는 방법을 보여줍니다. . 당신은 이제 텍스트 상자 내의 특정 텍스트의 색을 변경할 수 있습니다. 이것은 멋지지만 또 다른 주제 일 수 있습니다.

Option Explicit 

Private Sub CommandButton1_Click() 

Dim tbShape As Shape 
Dim WKS As Worksheet 
Dim newText As String 
Dim previousText As String 
Dim textRange As Range 

Set WKS = ThisWorkbook.ActiveSheet 
Set textRange = WKS.Range("C1") 'define where to grab the new text 
newText = CStr(textRange) 'convert what is in the cell to string 

With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 146#, 68#, _ 
      301#, 181#) 
      .Name = "myTextBox" 
End With 

Set tbShape = ActiveSheet.Shapes("myTextBox") 

With tbShape.TextFrame 
    .Characters.Font.Color = RGB(255, 0, 0) 
    .Characters.Text = "This is the intial text of the textbox 11111111 222222 " 
    .HorizontalAlignment = xlCenter 
    .VerticalAlignment = xlCenter 
End With 

'grab the previous textbox string 
previousText = tbShape.TextFrame.Characters.Text 
'add your new text to what was there before 
tbShape.TextFrame.Characters.Text = previousText & newText 

End Sub 

그래서 도움이 되길 바랍니다. 개발자 탭이있는 경우 가장 쉬운 방법은 ActiveX 텍스트 상자를 추가하는 것입니다 (생각하지 않는 .characters를 사용할 수 없지만 텍스트 상자 이름과 여러 속성을 지정할 수 있습니다 : 텍스트 글꼴, 크기, 색상 .forecolor)를 속성 탭이나 vba에서 바로 사용할 수 있습니다 (모든 색상을 만들기 쉽고 텍스트 상자에서 선택한 텍스트 만 VBA에서 특정 색상으로 바꿀 수 있음). 전체 상자? 쉬운.

'get comments 
comments = msrSheet.OLEObjects("TextBox1").Object.Text 

enter image description here

: 당신이이 방법을하고 VBA에서 텍스트 상자의 내용을 잡아하려면

, 당신은 당신의 코드에서 AA 설명 문자열을 어둡게하고 당신이 당신의 액티브 X 텍스트 상자에 TextBox1에 이름을 말할 수

텍스트 상자를 삽입하는 첫 번째 방법 (현재 사용하고있는 첫 번째 방법)을 사용하여 선택한 텍스트 만 새로운 색상으로 변경할 수 있습니다. 실전에서보고 싶습니까? 위이지만, 단지 최종 하위 전에, 이전에 거기 지금 무엇을 빨간색, 발견 경우 파란색 될 것입니다 코드 블록에서 정의하는 문자열,이 경우에 나는 느리게

'grab the previous textbox string 
previousText = tbShape.TextFrame.Characters.Text 
'Change the color of the new string in the textbox to blue 
Dim blueText As String 
blueText = newText 
With tbShape.TextFrame 
    .Characters(InStr(previousText, blueText), Len(blueText)).Font.Color = RGB(0, 0, 255) 
End With 
를 newText

에 할당 할 것을 아래에이 코드를 추가합니다

enter image description here

진심으로이 텍스트 상자가 제다이 검색에 도움이되기를 바랍니다. 환호 - WWC