안녕하세요.
현재 한글 2020, 엑셀 2019을 사용하며, 한글 표 내용을 엑셀로 옮기는 매크로를 개발중에 있습니다.(vba 사용)
다름이 아니고 hwpctrl.ocx 사용하지 않고,
xhwpdocument.item, xhwpwindow. close와 같은 구문등에서 "개체 속성 또는 메소드를 지원하지 않는다"는 438에러가 나옵니다.
제가 생각하기로는 오탈자 때문에 생기는 오류는 아닌거 같아서 문의 드립니다. 감사합니다.
안녕하세요.
현재 한글 2020, 엑셀 2019을 사용하며, 한글 표 내용을 엑셀로 옮기는 매크로를 개발중에 있습니다.(vba 사용)
다름이 아니고 hwpctrl.ocx 사용하지 않고,
xhwpdocument.item, xhwpwindow. close와 같은 구문등에서 "개체 속성 또는 메소드를 지원하지 않는다"는 438에러가 나옵니다.
제가 생각하기로는 오탈자 때문에 생기는 오류는 아닌거 같아서 문의 드립니다. 감사합니다.
안녕하세요.
샘플코드를 첨부해주시면 확인해보도록 하겠습니다.
안녕하세요.
'1. Hwp.exe /Regserver 재 등록 후 확인
'2. 이전에 엑셀과 한글 연동 vba매크로 개발 문의가 있어서 가이드한 예제를 첨부드립니다.
(https://www.youtube.com/watch?v=iz1QqEZIbas 영상같은 동작을 한글과 연동할 수 있는지에 대한 문의)
Sub txtreplace()
Dim oCell As Integer
Dim from_text As String, to_text As String
Dim WA As Object
Dim RowCount As String
Dim strFilter As String
Dim fileNames As Variant
Dim fileName As Variant
Dim strFile As String
ChDir ThisWorkbook.Path
strFilter = "Hwp 파일 (*.Hwp),*.hwp*"
fileNames = Application.GetOpenFilename(strFilter, , Title:="단어를 바꿀 파일을 선택(다중 선택 가능)", MultiSelect:=True)
If TypeName(fileNames) = "Boolean" Then Exit Sub
Set hwp = CreateObject("HWPFrame.HwpObject.2")
Set Window = hwp.XHwpWindows.Active_XHwpWindow
Window.Visible = True
For Each fileName In fileNames
Dim ret As Boolean
ret = hwp.Open(fileName, "", "")
RowCount = Sheet1.Range("a1", Range("a1").End(xlDown)).Rows.Count
For oCell = 2 To RowCount
from_text = Sheet1.Range("A" & oCell).Value
to_text = Sheet1.Range("B" & oCell).Value
Set findAction = hwp.HAction
Set findReplaceObj = hwp.HParameterSet.HFindReplace
Set findReplaceSet = findReplaceObj.HSet
ret = findAction.GetDefault("AllReplace", findReplaceSet)
With findReplaceObj
.ReplaceString = to_text
.FindString = from_text
.IgnoreReplaceString = 0
.IgnoreFindString = 0
.Direction = hwp.FindDir("AllDoc")
.WholeWordOnly = 0
.UseWildcards = 0
.SeveralWords = 0
.AllWordForms = 0
.MatchCase = 0
.ReplaceMode = 0
.ReplaceStyle = ""
.FindStyle = ""
.FindRegExp = 0
.FindJaso = 0
.HanjaFromHangul = 0
.IgnoreMessage = 1
.FindType = 1
End With
ret = findAction.Execute("AllReplace", findReplaceSet)
Rem With WA
Rem .Activate
Rem With .Selection.Find
Rem .ClearFormatting
Rem .Replacement.ClearFormatting
Rem .Text = from_text
Rem .Replacement.Text = to_text
Rem .Execute replace:=wdReplaceAll
Rem End With
Rem End With
Next
Next fileName
End Sub
먼저 이미지로 첨부하는 점 죄송합니다.
이 코드를 돌리면 set hwpdoc = hwp ~ 부분에 디버거 노란줄이 생기며 438에러가 발생합니다.
Regserver 등록할때 오류가 뜨면서 잘안되네요… 도움주셔서 감사합니다!
hwpApp에서는 문서를 관리하는 컨테이너 개체명은 XHwpDocuments입니다.
그래서 아래처럼 수정해야 할 것 같습니다.
set hwpDoc = hwpApp.XHwpDocuments.Item(0)
감사합니다.
덕분에 해결했습니다. 도움주셔서 감사합니다.