KutoolsforOffice— 하나의 솔루션, 다섯 가지 강력한 도구。적은 노력으로 더 큰 성과。

Excel 에서 입력 시 텍스트 상자를 자동 완성하려면 어떻게 하나요?

작성자Siluvia수정 날짜

기본적으로 Excel 은 현재 워크시트의 셀에 입력한 내용을 기억하고, 다음에 새 셀에 관련된 첫 글자를 입력할 때 해당 내용을 자동 완성합니다。 그러나 워크시트에 입력한 모든 내용을 텍스트 상자(ActiveX 컨트롤)에서 자동 완성하려면 어떻게 해야 할까요? 이 문서에서는 텍스트 상자 내부에 첫 글자를 입력할 때 자동 완성되도록 도와주는 VBA 방법을 제공합니다。

VBA 코드로 입력 시 텍스트 상자 자동 완성하기


VBA 코드로 입력 시 텍스트 상자 자동 완성하기

텍스트 상자 내부에 첫 글자를 입력할 때 자동 완성되도록 하려면 다음 단계를 따르세요。

1. 개발자>삽입>텍스트 상자(ActiveX 컨트롤)을 클릭하여 텍스트 상자를 삽입하세요。 스크린샷 참조:

텍스트 상자를 삽입하려면 클릭하세요

2. 그런 다음개발자>삽입>목록 상자(ActiveX 컨트롤)을 클릭하여 현재 워크시트에 목록 상자를 삽입하세요。 스크린샷 참조:

목록 상자를 삽입하려면 클릭하세요

3. 시트 탭을 마우스 오른쪽 버튼으로 클릭한 후, 아래 스크린샷과 같이 상황에 맞는 메뉴에서코드 보기를 클릭하세요。

오른쪽 클릭 메뉴에서 코드 보기로 이동

4. Microsoft Visual Basic for Applications창에서 아래 VBA 코드를 복사하여 코드 창에 붙여넣으세요。 그런 다음도구>참조를 클릭하고,Microsoft Scripting Runtime상자를참조 – VBAProject대화 상자에서 선택하세요。 스크린샷 참조:

VBA 코드: 입력 시 텍스트 상자 자동 완성

Dim xRg As Range
Dim xDic As New Dictionary
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox1.Value = Me.ListBox1.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xVal As String
    On Error Resume Next
    If IsNumeric(Target.Value) Then
        xVal = Str(Target.Value)
    Else
        xVal = Target.Value
    End If
    If xVal <> "" Then
        If Not xDic.Exists(xVal) Then
            xDic.Add xVal, xVal
        End If
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.ListBox1.Visible = False
End Sub
Private Sub Worksheet_Activate()
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    If xRg Is Nothing Then
        Set xRg = ActiveSheet.UsedRange
    End If
    Me.ListBox1.Visible = False
    xDic.RemoveAll
    With Me.ListBox1
        For I = 1 To xRg.Count
            xStr = xRg(I).Value
            If xStr <> "" Then
                .AddItem xStr
                If Not xDic.Exists(xStr) Then
                    xDic.Add xStr, xStr
                End If
            End If
        Next
    End With
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With Me.ListBox1
        .Top = Me.TextBox1.Top
        .Left = Me.TextBox1.Left + Me.TextBox1.Width
        .Width = Me.TextBox1.Width
    End With
    TextBoxVal Me.TextBox1.Object
End Sub
Sub TextBoxVal(xTextBox As Variant)
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    Application.ScreenUpdating = False
    If xRg Is Nothing Then Exit Sub
    Me.ListBox1.Clear
    xStr = xTextBox.Value
    If xStr = "" Then
        Me.ListBox1.Visible = False
        Application.EnableEvents = True
        Exit Sub
    End If
    For I = 0 To UBound(xDic.Items)
        If Left(xDic.Items(I), Len(xStr)) = xStr Then
            Me.ListBox1.AddItem xDic.Items(I)
        End If
    Next
    Me.ListBox1.Visible = True
    If Me.ListBox1.ListCount > 0 Then
        With xTextBox
            .Value = Me.ListBox1.List(0)
            .SelStart = Len(xStr)
            .SelLength = Len(Me.ListBox1.List(0))
        End With
    End If
    Me.ListBox1.Activate
    Me.ListBox1.Selected(0) = True
    Application.ScreenUpdating = True
End Sub
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Me.TextBox1.Value = Me.ListBox1.Value
    End If
End Sub

참조 대화상자로 이동하여 Microsoft Scripting Runtime을 선택하세요

참고: 코드에서ListBox1Textbox1은 워크시트에 삽입한 목록 상자와 텍스트 상자의 이름입니다。

5. Alt+Q키를 눌러Microsoft Visual Basic for Applications창을 종료하세요。

6. 워크시트에서개발자>디자인 모드를 클릭하여 디자인 모드를 끄세요。

7. 이제 다른 워크시트로 이동한 후 이전 워크시트로 돌아와 VBA 코드를 활성화하세요。

이제부터 텍스트 상자에 첫 글자를 입력하면, 워크시트에 입력한 내용 중 해당 글자로 시작하는 모든 텍스트가 텍스트 상자 오른쪽에 위치한 목록 상자에 표시됩니다。 필요한 항목을 두 번 클릭하여 텍스트 상자에 입력하세요。 스크린샷 참조:

텍스트 상자에 첫 글자를 입력하면 해당 글자로 시작하는 모든 텍스트가 목록으로 표시됩니다

참고: 목록 상자에서 자동 완성 텍스트 사이를 이동하려면위쪽또는아래쪽화살표 키를 사용하고, 필요한 항목을 텍스트 상자에 입력하려면Enter키를 누르세요。



관련 문서:

최고의 Office 생산성 도구

🤖KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행   |  코드 생성|  사용자 지정 수식 생성  |  데이터 분석 및 차트 생성|  향상된 함수 호출
인기 기능:찾기, 강조 표시 또는 중복 표시   |  빈 행 삭제   |  데이터 손실 없이 열 결합 또는 셀 제거   |  공식을 사용하지 않는 반올림...
슈퍼 LOOKUP:다중 조건 VLookup  |  다중 값 VLookup  |   여러 시트에서 VLookup   |   퍼지 매치....
고급 드롭다운 목록:드롭다운 목록 빠르게 생성   |  종속형 드롭다운 목록   |  다중 선택 드롭다운 목록....
열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교...
주요 기능:그리드 포커스   |  디자인 보기   |향상된 수식 표시줄   | 워크북 및 시트 관리자   |  자원 라이브러리(자동 텍스트)|  날짜 선택기   |  워크시트 병합  |  암호화/셀 해독   | 목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。
상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)|   50+차트유형(간트 차트, ...)|   40+ 실용적인수식(생일을 기준으로 나이 계산, ...)|   19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)|   12 변환도구(단어로 변환하기,환율 변환, ...)|   7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|그 외 더 많은 기능
Kutools 를 선호하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 및 40+개 이상의 언어를 지원합니다!

Kutools for Excel 로 Excel 역량을 한 단계 업그레이드하고 전례 없는 효율성을 경험하세요。Kutools for Excel 는 생산성과 저장 시간을 향상시키는 300 개 이상의 고급 기능을 제공합니다。가장 필요한 기능을 지금 바로 확인하세요。。。


Office Tab 가 Office 에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만들어 줍니다

  • Word, Excel, PowerPoint 에서 탭 기반 편집 및 읽기 기능을 활성화합니다, Publisher, Access, Visio 및 Project 에서도 사용 가능합니다。
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 생성할 수 있습니다。
  • 50% 만큼 생산성을 높이고 매일 수백 번의 마우스 클릭을 줄여줍니다!

모든 Kutools 애드인。 하나의 설치 프로그램

Kutools for Office스위트 번들은 Excel, Word, Outlook 및 PowerPoint 용 애드인과 Office Tab Pro 를 포함하며, 다양한 Office 앱을 사용하는 팀에 이상적입니다。

ExcelWordOutlookTabsPowerPoint
  • 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
  • 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
  • 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
  • 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
  • 최고의 가성비— 개별 애드인 구매 대비 절약