반응형

EXCEL - VBA 131

VBA - vworld 사이트에서 토지 특성 조회(6) : 디버깅

1. 법정동코드 가져오는 URL 확인가. 지역 창은 실패사이트에 접속해서 정보를 가져오는 것이므로 URL이 제대로 됐는지가 제일 중요합니다.  ' 법정동 코드 조회 검색 URL 만들기(domain 지정안해도 됨) base_url = "https://api.vworld.kr/req/address" params = "?service=address&request=getcoord&version=2.0&crs=epsg:4326" params = params & "&address=" & WorksheetFunction.EncodeURL(dong & " " & jibun) params = params & "&refine=true&simple=false&f..

EXCEL - VBA 2025.03.17

VBA - vworld 사이트에서 토지 특성 조회(5) : 코드 설명(2)

(15) 토지특성속성 조회 URL 생성        ' 토지 특성 조회 URL 만들기(기준연도 초기값 올해)         base_url = "http://api.vworld.kr/ned/data/getLandCharacteristics"         params = "?pnu=" & pnu & "&format=xml" & "&key=CEB52025-E065-364C-9DBA-44880E3B02B8" '        params = params & "&numOfRows=3"         params = params & "&stdrYear=" & Year(Date)              ' search_url을 base_url과 params의 결합으로 함         search_url = bas..

EXCEL - VBA 2025.03.14

VBA - vworld 사이트에서 토지 특성 조회(4) : 코드 설명(1)

5. 코드 설명(1) 명시적 변수 선언 요구Option Explicit변수 선언을 명시적으로 하라는 선언입니다. 이렇게 해야 변수의 데이터 형식이 틀어지거나, 값이 잘못 들어가는 오류를 예방할 수 있으므로 필수입니다. (2) Sub 프로시저 시작과 종료Sub parse_xml()    변수선언 및 값 할당, 실행문 등End SubSub 프로시저는 일정한 동작을 처리하는 것으로, 처리한 후 값을 반환하는 Function 프로시저와 구분됩니다. 본 매크로에서는 URL을 작성한 후 VWorld 사이트에서 조회한 후 검색결과를 워크시트에 기록하는 전체적인 처리를 Sub 프로시저에서 처리하는데, VWorld에서 조회한 후 검색 결과를 반환하는 부분을 Function 프로시저로 처리했습니다. 다시 말하면 Sub 프..

EXCEL - VBA 2025.03.13

VBA - vworld 사이트에서 토지 특성 조회(3) : 코드

매크로가 저장되지 않은 엑셀 파일은 아래와 같습니다 4. 코드가. 전체 구성크게 parse_xml이라는 Sub 프로시저 1개와 search_value와 fail이라는 Function 2개로 구성되어 있습니다.Sub 프로시저 하나로 해도 되지만 공통되는 부분을 Function으로 뺐으며, 내용은 아래와 같습니다.이것도 내용별로 구분할 수도 있을 겁니다.Option ExplicitSub parse_xml() Dim xmlDoc As Object Dim ws As Worksheet Dim xmlHttp As New MSXML2.ServerXMLHTTP60 Dim base_url As String, params As String, search_url As String Dim d..

EXCEL - VBA 2025.03.12

VBA - vworld 사이트에서 토지 특성 조회(2) : 도구 - 참조에서 XML v6.0 추가

3. 준비 사항 가. 개발 도구 탭 표시개발 도구 탭이 보이지 않는다면 파일 - 옵션 - 리본 사용자 지정 옵션을 누른 후 확인 버튼을 누릅니다.  그러면 보기 오른쪽에 개발 도구 탭이 표시됩니다. 나. 작업 파일 위 파일을 엽니다. 다. VB 에디터 열기개발 도구 탭을 누른 후 코드 그룹에서 Visaul Basic을 누릅니다. 그리고, get_land_char.xlsx 파일이 선택된 상태에서 삽입 - 모듈을 눌러  모듈을 추가합니다.왼쪽 get_land_char.xlsx 아래에 모듈과 Module1이 표시되고, 오른쪽에 빈 코드 창이 열립니다. 라. 도구 - 참조 - XML, v6.0에 체크VBA로 매크로를 만들 때 도구 - 참조를 추가할 일이 거의 없는데,XML 파일을 처리하기 위해서는 도구 - 참조..

EXCEL - VBA 2025.03.11

VBA - vworld 사이트에서 토지 특성 조회(1) : 토지특성속성조회 API

1. 토지특성속성 조회 APIvworld 사이트에서 토지특성을 조회하는 API는vworld.kr에서 접속한 후오픈API 메뉴 아래 API 레퍼런스를 누른 후 나오는 목록에서국가중점데이터API의 레퍼런스를 누릅니다. 그러면 레퍼런스를 검색하는 화면이 표시되는데,서비스 란에 '토지특성'이라고 입력하고 엔터 키를 누르면 토지특성WMS, WFS와 속성이 표시되는데, 토지특성속성조회를 선택합니다. 2. 상세 내용가. 요청 변수 그러면, 상세 내용이 표시되는데 위에 요청 변수(pnu: 고유번호, stdrYear: 기준연도, format: 응답결과 형식, key: 인증키 등)가 있고, 나. 출력 결과그 아래에 출력결과가 표시되는데, 코드명(pnu, ldCode 등)과 설명(고유번호, 법정동코드 등)이 표시됩니다. ..

EXCEL - VBA 2025.03.10

범위를 지정하는 방법(2) - Selection

이번에는 Selection을 이용해 매크로를 수정해 보겠습니다. Application.InputBox를 이용한 방법은아래 글을 참고 바랍니다.범위를 지정하는 방법(1) - Application.InputBox 1. 코드범위를 입력받지 않고 선택된 범위를 이용하므로코드도 간결해집니다.Sub 하이픈지우기2() Dim c As Range If IsEmpty(Selection) Then End Else For Each c In Selection c = WorksheetFunction.Substitute(c, "-", "") Next End IfEnd Sub 에러를 처리하는 구문이 없고(On Error Resume Next),범..

EXCEL - VBA 2025.02.21

범위를 지정하는 방법(1) - Application.InputBox

엑셀 작업할 때 범위를 대상으로 많이 작업을 합니다. 작업된 영역을 선택할 때는 CurrentRegion을 사용하고,기준 열의 맨 아래 줄까지 한 줄씩 작업할 때는 맨 아래줄을 알아내기 위해 Cells(Rows.count, "A").End(XlUp).Row를 사용합니다(여기서는 Rows.Count는 맨 아래 줄의 행 수를 가리킵니다). 그리고, 작업 시 범위를 입력받을 때는 Application.InputBox를 사용해 직접 입력을 하도록 하는데, 예) Application.InputBox("작업 범위를 선택하세요", type:=8) 이미 지정된 범위에서 작업할 때는 Selection을 이용하면 됩니다.  1. 바꾸기Ctrl + H키를 누르거나, 홈 탭 - 편집 그룹에서 '찾기 및 선택' 아래 바꾸기를 ..

EXCEL - VBA 2025.02.20

지정된 색이 포함된 행을 위로 올리기

1. 문제차량이 여러 대 있는데, 도착하는 순서대로 B열에 파란색을 칠하면'미도착'을 '도착'으로 바꾼 다음 맨 처음인 경우는 해당 행을 2행으로 이동하고그다음부터는 파란색 다음(아래) 행으로 이동하는 것을 반복한다고 가정해 보겠습니다.   2. 해결 방안색이 변하면 할 때 생각나는 것이 Worksheet_SelectionChange 이벤트입니다.그리고, 파란색이 여러 개일 경우 맨 아래로 배치되어야 하므로 For Each 문을 반복해서 파란색인지 체크하는 구문이 필요합니다. 가. 개발 도구개발 도구를 클릭한 후 Visual Basic을 누르고,  완료여부체크.xlsx 파일의 Sheet1을 클릭합니다. 그리고, 오른쪽 '일반'이라고 쓰여 있는 곳을 누르면 Worksheet가 있는데 선택하면 '선언'이라고..

EXCEL - VBA 2025.02.19

표에서는 '복사한 셀 삽입'이 안되네요...

표를 자주 사용하지 않다 보니표에서 행을 복사한 후 마우스 오른쪽 버튼을 누르고 '복사한 셀 삽입' 메뉴를 누르면 '워크시트의 표에 있는 셀이 이동될 수 있기 때문에 이 작업은 수행되지 않습니다.'란 메시지가 나오고 복사한 행 삽입이 안된다는 것을 최근에 알았습니다. 확인을 눌러 창을 닫습니다. 1. 해결의 실마리 5행을 선택하고 마우스 오른쪽 버튼을 누르고 삽입 메뉴를 눌러 빈 행을 삽입한 후 4행을 복사한 후 5행에 붙여 넣으면 문제없이 잘 됩니다. 결론은 같은데 왜 막는지 모르겠네요. 2. '매크로 기록' 이용 구현매크로를 직접 작성할 수도 있지만,개발도구 - '매크로 기록'을 누르고, '매크로 저장 위치'를 '개인용 매크로 통합 문서'로 지정한 다음 행 삽입 - 위 행을 복사한 후 아래 행에 '복..

EXCEL - VBA 2025.02.18
반응형