본문 바로가기
VBA

[VBA] 네이버 영어사전 LV5.(댓글 또 요청)

by 일등미노왕국 2024. 2. 11.

 

네이버 사전이 json구조로 변경이 되어서 lv4에서 lv5로 업데이트 완료

 

 

더보기
Option Explicit
Sub Haja_word_Lv4()

    Dim rngAll As Range: Set rngAll = Range([a2], [a2].End(4))    '= 단어 영역 순환
    Dim rngA As Range
    Dim response, test As Object
    Dim html As Object: Set html = CreateObject("htmlfile")
    Dim xmlhttp As Object: Set xmlhttp = CreateObject("msxml2.xmlhttp")
    Dim strUrl$, strplay$
    Dim json As Object
    Dim temp As Object
  
    
    rngAll.Next.Resize(rngAll.Rows.Count, 2).ClearContents
    ActiveSheet.UsedRange.Borders.LineStyle = xlNone
    
    Application.ScreenUpdating = False
    For Each rngA In rngAll                                                         '= 각 단어를 순환해라
    
        On Error Resume Next
            strUrl = "https://tip.dict.naver.com/phex?callback=jQuery36002027436075452249_1707631029860&cid=1&srcLang=en&tarLang=ko&raw=" & rngA & "&clickedIdx=0&rawQuery=" & rngA & "&prCode=dict&device=pc&skin=ko&service=naver&_=1707631029861"
                      
            response = fn.Request(strUrl)
       
          With xmlhttp
     
                response = Split(response, """items""" & ":")(1)
            
                Set json = JsonConverter.ParseJson(response)
             
                
                If json Is Nothing Then rngA(1, 3) = "단어의 철자를 확인하세요": GoTo haja
                strplay = json(1)("pronounceList")(1)("pronunceUrl")                 '= 음성파일 영역
            End With
                
              
                rngA(1, 2) = Haja_HyLink(CStr(json(1)("pronounceList")(1)("sign")), strplay, rngA(1, 2))   '= 발음 기호부분
                
                Set temp = json(1)("partOfSpeechList")(1)("meaningList")
                rngA(1, 3) = temp(1)("desciption")
                strplay = ""
              
        On Error GoTo 0
haja:
    Next rngA
    
    [a1].CurrentRegion.Borders.LineStyle = 1
    Application.ScreenUpdating = False
    MsgBox "하자님의 Lv5 영어사전 추출이 완료되었습니다."
    
End Sub

Function Haja_HyLink(str$, strplay$, rngX As Range)

        ActiveSheet.Hyperlinks.Add anchor:=rngX, Address:=strplay, ScreenTip:="[웹브라우저 연결]"  '= 발음기호 하이퍼링크 연결
        
        rngX.Font.Underline = xlUnderlineStyleNone
        rngX.Font.Color = rgbDarkBlue
        rngX.Font.Bold = True
        
        Haja_HyLink = str


End Function

네이버영어사전5(24.2.11).xlsm
0.08MB

댓글