워드 문서 내에서 단어 바꾸기 작업을 반복할 때 씁니다. 지정된 엑셀 파일안에 sheet1 에 있는 b2 값을 c2 값으로 바꾸기 합니다. b2와 c2교체, b3와 c3교체, b4와 c4교체, b5와 c5..... 이렇게 됩니다.
코드 내에 붉은 색 부분에서 바꾸기에 사용하려는 엑셀파일을 지정해주실 수 있습니다.
문서 내에서 블럭을 설정하여 블럭내에서만 단어 바꾸기를 하고 싶을 때는 파란색 부분 값 wdfindcontinue 를 wdfinestop 으로 바꾸고 하시면 될 수도 있습니다. 되겠거니 싶어서 해봤는데, 될 때도 있고 안 될 때도 있었습니다.
바꾸기를 하면서 엑셀을 훑어내려오다가 b열에서 값이 비어있으면 동작을 멈춥니다. b1000을 c1000과 교체한 후에도 멈춥니다. 단어를 더 사용하고 싶으면 아래 코드에서 밑줄 친 부분 뒤쪽 숫자를 더 크게 잡아주세요.
매크로 작성 능력이 없어서, 매크로 녹화하기와 다른 사람들이 만든 매크로를 짜집기 해서 만들었습니다. 그래서 쓸데없는 코드가 포함되어 동작속도가 느릴 수 있습니다. 하지만 매크로 개선 등은 제가 해드릴 수가 없습니다.
Sub findcontinue()
'
' findcontinue Macro
'
'
Dim xlApp As Object
Dim xlBook As Object
Dim strName1 As String
Dim strName2 As String
Const strWorkbookName = "C:\Users\kamawan\Desktop\replace.xlsx"
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err Then
Set xlApp = CreateObject("Excel.Application")
End If
On Error GoTo 0
Set xlBook = xlApp.Workbooks.Open(fileName:=strWorkbookName)
xlApp.Visible = True
For i = 2 To 1000
strName1 = xlBook.Sheets(1).Range("B" & i)
If IsEmpty(strName1) Then Exit Sub
strName2 = xlBook.Sheets(1).Range("C" & i)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = strName1
.Replacement.Text = strName2
.Forward = True
.Wrap = wdfindcontinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.CorrectHangulEndings = True
.HanjaPhoneticHangul = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub
'it 잡담' 카테고리의 다른 글
삼성 브라우저 빠른 실행에 원하는 주소 넣기 (0) | 2024.07.16 |
---|---|
ai burn partition tool (0) | 2022.07.30 |
anapa pro 설정 소프트웨어 (0) | 2019.12.06 |