텍스트 상자에서 텍스트 찾기 (Microsoft Excel)
Walter에는 여러 텍스트 상자가있는 워크 시트가 있습니다. 특정 텍스트를 찾기 위해 이러한 텍스트 상자를 검색하고 싶지만 찾기 및 바꾸기는 텍스트 상자에서 텍스트를 찾을 수없는 것 같습니다. 그는 텍스트 상자를 검색하는 방법이 있는지 궁금합니다.
Walter가 옳습니다. Excel의 텍스트 상자에있는 텍스트를 찾을 수 없습니다. 이를 테스트하기 위해 새로운 통합 문서를 열고 단일 구문 ( “내 메시지”)을 배치 한 다음 워크 시트의 다른 셀에 임의의 텍스트와 숫자를 배치했습니다. 그런 다음 텍스트 상자를 선택하지 않은 상태에서 Ctrl + F를 눌러 “내 메시지”를 검색했습니다. 엑셀은 텍스트 상자에서 텍스트가 여전히 바로 거기에 있음에도 불구하고 텍스트를 찾을 수 없다고 성실하게보고했습니다.
다행히 매크로를 사용하여 텍스트 상자에서 텍스트를 검색 할 수 있습니다. 워크 시트의 각 텍스트 상자는 Shapes 컬렉션에 속하므로 컬렉션의 각 구성원을 단계별로 살펴보고 원하는 텍스트가 포함되어 있는지 확인하기 만하면됩니다. 다음은 검색 문자열을 입력하라는 메시지를 표시 한 다음 텍스트 상자에서 찾는 매크로입니다.
Sub FindInShape1() Dim rStart As Range Dim shp As Shape Dim sFind As String Dim sTemp As String Dim Response sFind = InputBox("Search for?") If Trim(sFind) = "" Then MsgBox "Nothing entered" Exit Sub End If Set rStart = ActiveCell For Each shp In ActiveSheet.Shapes sTemp = shp.TextFrame.Characters.Text If InStr(LCase(sTemp), LCase(sFind)) <> 0 Then shp.Select Response = MsgBox( _ prompt:=shp.Name & vbCrLf & _ sTemp & vbCrLf & vbCrLf & _ "Do you want to continue?", _ Buttons:=vbYesNo, Title:="Continue?") If Response <> vbYes Then Set rStart = Nothing Exit Sub End If End If Next MsgBox "No more found" rStart.Select Set rStart = Nothing End Sub
이 매크로는 텍스트 상자뿐만 아니라 워크 시트의 모든 셰이프를 살펴 봅니다. 검색을 텍스트 상자로만 제한하려는 경우 Shapes 컬렉션 대신 TextBoxes 컬렉션을 단계별로 살펴볼 수 있습니다. 어느 쪽이든 잘 작동합니다.
또한이 접근 방식은 일치하는 텍스트를 찾을 때마다 중지되고 (텍스트의 대소 문자는 중요하지 않음) 계속할 것인지 묻습니다. 대신 텍스트 상자에서 일치하는 텍스트를 표시하는 매크로를 원할 수 있습니다. 이것은 다음과 같이 더 짧은 매크로로 수행 할 수 있습니다.
Sub FindInShape2() Dim shp As Shape Dim sFind As String Dim sTemp As String Dim iPos As Integer Dim Response sFind = InputBox("Search for?") If Trim(sFind) = "" Then MsgBox "Nothing entered" Exit Sub End If sFind = LCase(sFind) For Each shp In ActiveSheet.Shapes sTemp = LCase(shp.TextFrame.Characters.Text) iPos = InStr(sTemp, sFind) If iPos > 0 Then With shp.TextFrame.Characters(Start:=iPos, _ Length:=Len(sFind)).Font .ColorIndex = 3 .Bold = True End With End If Next MsgBox "Finished" End Sub
이 매크로는 굵은 빨간색 글꼴을 사용하여 찾은 텍스트를 강조 표시합니다. 완료되면 텍스트를 다시 일반 텍스트로 변경하고 싶을 것입니다. 다음 매크로를 사용하여이를 수행 할 수 있습니다.
Sub ResetFont() Dim shp As Shape For Each shp In ActiveSheet.Shapes With shp.TextFrame.Characters.Font .ColorIndex = 0 .Bold = False End With Next End Sub
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (11281)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.
Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전은 여기에서 찾을 수 있습니다.
link : / excelribbon-Finding_Text_in_Text_Boxes [텍스트 상자에서 텍스트 찾기]
.