Excel에서 텍스트 상자의 문자열을 바꾸는 매크로

3632 단어 VBAExcelVBA
현상 Excel에서는 텍스트 박스 내의 문자열을 치환하는 기능이 갖추어지지 않았기 때문에, 넷의 기사를 참고로 하여 유저 폼을 사용하는 매크로를 만들어 보았다.

2019/10/14 사용자 양식의 설명이 Me 키워드를 사용하도록 수정되었습니다.

사용자 양식



이런 식으로 사용자 폼을 만든다. 대체 버튼이 CommandBotton1, 닫기 버튼이 CommandBotton2.


코드



코드는 이런 느낌.
Private Sub CommandButton1_Click()
    Dim xWst As Worksheet
    Dim shps As Shape
    Dim xFindStrs As String
    Dim xReplaces As String
    Dim xValues As String

    xFindStrs = Me.TextBox1.Text
    xReplaces = Me.TextBox2.Text
    Set xWst = Application.ActiveSheet
    On Error Resume Next
    For Each shps In xWst.Shapes
        xValues = shps.TextFrame.Characters.Text
        shps.TextFrame.Characters.Text = VBA.Replace(xValues, xFindStrs, xReplaces, 1)
    Next
    Unload Me
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub

사용자 양식 호출



표준 모듈에서 이렇게. 그리고는 이 녀석을 키보드 단축키로 호출할 수 있도록 한다.
Sub TextBoxReplace()
    UserForm1.Show
End Sub

좋은 웹페이지 즐겨찾기