-
[추가기능] 주소변환(지번주소, 도로명주소, 우편번호)VB(A) 2018. 6. 22. 15:11
[추가기능]
첨부를 클릭하면 추가기능이 생성되어
추가기능의 버튼을 누르면 지번주소, 도로명주소, 관할 주민센터, 우편번호를 추출해주는 매크로
http://cafe.naver.com/excelmaster/152667 참고
Option ExplicitOption Base 1Sub Macro()Dim AddressRange As RangeDim vDim addv(), v1 As StringDim r As IntegerDim i As IntegerDim j As IntegerDim sT As Date: sT = Time '시작시간Dim nT As DateDim oT As Date'속도 향상With Application.Calculation = xlCalculationManual.EnableEvents = FalseEnd With'영역 선택On Error GoTo errSet AddressRange = Application.InputBox(prompt:="주소가 있는 영역을 선택하세요", Title:="주소 선택", Type:=8)On Error GoTo 0v = AddressRanger = UBound(v)ReDim addv(r)Sheets.AddRange("A1:D1") = Array("주소", "지번주소", "도로명주소", "우편번호")For i = 1 To r'데이터가 많을 때 시간 처리nT = Time - sTIf nT <> oT ThenDoEventsApplication.StatusBar = "Progress : " & i & " / " & r & "(" & Format(i / r, "0.00%") & ")" & ", " & Format(nT, "hh:mm:ss")oT = nTEnd If'주소 결과를 배열에 삽입v1 = v(i, 1)addv(i) = NewAdd(v1)Next'출력For i = 1 To rFor j = 1 To 4Cells(i + 1, j) = addv(i)(j)NextNextRange("A1").CurrentRegion.Columns.AutoFiterr:With Application.Calculation = xlCalculationAutomatic.EnableEvents = True.StatusBar = "Progress : 100%" & ", " & Format(Time - sT, "hh:mm:ss")End WithEnd SubFunction NewAdd(MyText As String) As Variant'juso.go.kr API 에서 데이터 가져오는 함수Dim sURL As StringDim oXMLHTTP As ObjectDim tmp(4) As StringSet oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")sURL = "http://www.juso.go.kr/addrlink/addrLinkApi.do?currentPage=1&countPerPage=1&keyword=" & ENDECODingURL(MyText) & "&confmKey=U01TX0FVVEgyMDIwMDYwNDExMzEwOTEwOTgyODk="With oXMLHTTP.Open "GET", sURL, False.sendOn Error Resume NextWith .responseXMLtmp(1) = MyText '원래 입력했던 주소tmp(2) = .SelectSingleNode("results/juso/jibunAddr").Text '지번 주소tmp(3) = .SelectSingleNode("results/juso/roadAddr").Text '도로명 주소tmp(4) = .SelectSingleNode("results/juso/zipNo").Text '우편번호End WithOn Error GoTo 0End WithNewAdd = tmpEnd FunctionFunction ENDECODingURL(varText As String, Optional blnEncode = True)Static objHtmlfile As ObjectIf objHtmlfile Is Nothing ThenSet objHtmlfile = CreateObject("htmlfile")With objHtmlfile.parentWindow.execScript "function encode(s) ", "jscript".execScript "function decode(s) ", "jscript"End WithEnd IfIf blnEncode ThenENDECODingURL = objHtmlfile.parentWindow.encode(varText)ElseENDECODingURL = objHtmlfile.parentWindow.decode(varText)End IfEnd Functioncs 'VB(A)' 카테고리의 다른 글
표 내용을 띄엄띄엄 복사 (0) 2019.01.18 데이터를 셀별로 나누기 (0) 2019.01.17 [정규식] 숫자를 한글로 변환 (0) 2018.02.23 도로명주소 가져오기 (0) 2018.02.13 여러 시트를 쉽게 이동하기 (0) 2018.01.05 댓글