728x90

Excel - VBA 58

ChromeDriver를 자동으로 업데이트 하기

SeleniumBasic을 사용하여 Chrome제어를 할 때가 많은데,Chrome이 버전업이 되면 ChromeDriver도 다시 새 버전을 설치해 줘야 합니다.이게 귀찮아 지게 되면,,,, 우선 현재 Selenium이 설치된 폴더를 확인해 봅니다.마땅한 Registry를 찾지 못해서 대충 CLSID에 있는 걸 써 봅니다.Private Function getSeleniumPath() Dim sPath As String sPath = CreateObject("WScript.Shell").RegRead("HKEY_CLASSES_ROOT\CLSID\{0277FC34-FD1B-4616-BB19-5D556733E8C9}\InprocServer32\CodeBase") getSeleni..

Excel - VBA 2024.04.26

[VBA] JSONParse 함수

JSON을 배열로 변경하는 JSONPair함수와 JSONtoArray 함수에 이어서,,, 변경된 배열에서 이름 경로를 지정하여 값이나 목록을 검색하는 함수입니다. JSONParser로 이름을 하고 싶으나,,, VBA로 저장은 되지만 Excel에서 사용할 수 없었습니다.ㅠㅠ 이전 버전에서 나오던 일부 오류는 수정하였습니다. 【 함수 구문 】 = JsonParse( JSON , Path , [ Header ] , [PAD ] , [ Delimiter ] ) 【 함수 인수 】 인수명 옵션 기본값 설 명 JSON 필수 없음 JSON 텍스트, 배열 또는 범위 Path 필수 없음 검색할 이름, 이름 경로인 경우 "/"를 사용해서 연결, 대소문자 구별함 이름 및 이름 경로에 와일드 카드 사용 가능 이름1/이름2/이름..

Excel - VBA 2024.03.28

[VBA] JSON 을 배열로 변환하기 (JSONtoArray)

이전 버전에서 몇 가지 문제가 있어서 함수 구성을 조금 변경하여 JSONPair 함수로 기본 분석을 정리하고나서 이름경로를 셀 하나씩 분리하여 배열을 확장하는 함수로 구성하니다. 결과는 이전 함수와 같으나 효율이 좀 더 좋아 졌습니다. 【 함수 구문 】 = JSONtoArray( JSON , [PAD ] ) 【 함수 인수 】 인수명 옵션 기본값 설 명 JSON 필수 없음 JSON 텍스트, 배열 또는 범위 PAD 선택 빈문자열("") 빈 셀에 채울 값 JSON 구조에 대해서는 JSONPair 함수에서 정리한 결과 배열을 받아서 진행합니다. 따라서 이 함수에서는 매우 간단한 구조로 처리가 진행됩니다. Function JSONtoArray(JSON, Optional PAD$ = vbNullString) '==..

Excel - VBA 2024.03.28

[VBA] JSON 을 이름, 값 배열로 변환하기 (JSONPair)

구글 캘린더나 다른 API 작업을 할 때, 결과가 xml 아닌 json으로 출력되는 경우 그 동안에는 JSON converter를 사용하고 있었습니다. 이를 VBA에서 쉽게 사용할 수 있는 배열로 변환하고 이를 바탕으로 이름 경로(Path)를 이용하여 값이나 목록을 출력하도록 설계를 했습니다. 여기서는 먼저 배열로 변환하는 함수를 설명합니다. 【 함수 구문 】 = JSONPair( JSON , [ Delimiter ] ) 【 함수 인수 】 인수명 옵션 기본값 설 명 JSON 필수 없음 JSON 텍스트, 배열 또는 범위 Delimiter 선택 "/" "이름 경로" 각 단계를 연결할 구분자, 기본값은 "/" JSON 문자열을 하나씩 읽어서 그에 따른 처리를 진행하는 구조입니다. 공백문자를 Skip하기 위한 ..

Excel - VBA 2024.03.28

Google Calendar를 Excel에 연결하기

Google Calendar를 Excel에서 사용할 수 있도록 아주 간단한 기능만 들어 있는 파일로 자동 인증이 좀 더 매끄럽게 되도록 수정하였습니다. Google Calendar를 사용할 수 있도록 Google의 OAuth 2.0 인증을 사용합니다. 현재는 Google의 인증을 받기 전의 상태로 사용에 제약이 있을 수 있습니다. 이 파일로 계정 인증이 완료되면, EGTools의 Ribbon메뉴의 달력중 '일일 일정표' 만들기에서 해당 일자의 Google Calendar 일정이 일정표에 자동으로 등록됩니다. 사용방법은 첨부 파일의 [Manual] 시트에 간략하게 설명되어 있으므로 꼭 읽고 사용하세요.

Excel - VBA 2024.03.18

vWorld.kr의 Open API를 이용한 Geocoding

vWorld.kr에서 제공하는 Open API를 이용하여 주소를 지도 좌표로 변환합니다. 기본적으로 인증키를 발급 신청하여야 사용할 수 있습니다. 인증키는 3개월 사용가능하고, 3회 연장이 가능하므로 총 12개월 사용이 가능합니다. 만료되면 새로 신청하거나 여러 개 신청해서 쓰면 되겠죠?^^ 사용할 API는 검색API입니다. Geocoder API가 별도로 있는데, 검색API를 이용하는 이유는 정보가 좀 더 사용하기 편하기 때문입니다. 사용할 시나리오는 아래와 같이... 우리가 사용하는 주소가 2가지라 보편적으로 사용하는 도로명 주소를 먼저 조회하고, 검색 결과가 없으면 지번 주소로 추가 검색하여 결과를 파싱하여 필요한 정보를 뽑아 냅니다. ( x좌표, y좌표 , 우편번호, 도로명주소, 지번주소 등 ) ..

Excel - VBA 2024.02.12

[VBA] 지도 좌표계 변환 (WGS84, UTM52N, KATEC, UTM-K, 중부원점)

OPINET의 API를 이용하여 유가 정보를 조회하는 기능을 추가하던중 주유소의 좌표와 인근 주유소를 조회하는 API의 좌표가 KATEC이라고 하여 근 일주일 정도를 좌표계가 뭔지, 상호 변환은 어떻게 하는지 머리를 싸맸네요... 네이버나 카카오, SK 등에서 좌표 변환 API를 지원하기는 하는데, 사용자별로 Key를 신청해서 써야 하는지라 범용으로 사용하기 어려운 점이 있습니다. 여기저기 검색하다가 아래 페이지를 검색하여 좌표 변환 소스를 얻었습니다. https://www.androidpub.com/android_dev_info/1318647 https://javaexpert.tistory.com/142 하지만 VBA로 포팅을 해 봤는데, JAVA 관련 지식이 미천하여 시행착오를 일주일,,, 제가 사용..

Excel - VBA 2024.02.10

[Excel] Windows 11 에서 한글 입력 이상할 때

이번에 Excel 사용 환경을 변경했는데, VBA를 사용할 때 한글 입력이 이상했습니다. 기존 Windows 10 -> Wndows 11로 업그레이드 할 때에 Excel 2019 64bit를 동일하게 사용했는데 이 때에는 전혀 문제가 발생하지 않았습니다. 그런데 이번에 Excel 2019를 Microsoft 365 64bit로 변경하고 나서 이상한 현상이 발생했습니다. 아래 움짤의 첫번째 줄은 한글자 치고 띄어 쓰기 하면서 완성한 것이고, 그 아래 두 줄은 그냥 연속으로 키인을 한 경우의 오류가 나는 현상입니다. 관련 내용 검색을 했는데, Microsoft에서 아래와 같은 안내가 있습니다. https://support.microsoft.com/ko-kr/topic/windows-11%EC%97%90%EC..

Excel - VBA 2023.12.26

[VBA] Module이나 Sub의 크기 한계

VBA를 사용하면서 Code의 길이 때문에 문제가 되었던 적은 없었는데, 얼마나 많은 코드를 넣을 수 있는지 쓸데없이 궁금해졌습니다. 그래서,,, 얼마나 긴 코드를 하나의 Sub 또는 Module에 작성할 수 있는지 점검해 봤습니다. 하나의 라인에 글자가 100개 이상 들어간 라인을 계속 반복해서 넣었을 때, 7,274행까지는 컴파일이 되었고, 그 이후로는 아무리 짧은 코드를 넣어도 "프로시저가 너무 큽니다." 오류가 나옵니다. Debug.Print "0001ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ... Debug.Print "7274ABCDEFGHIJKL..

Excel - VBA 2023.12.10

[Excel] 기존 리본 메뉴에 Custom 그룹 삽입하기

순전히 기억을 위해서 기록해 둡니다. 리본메뉴에 새로운 Tab을 만들어 사용하는 건 기존에 해 왔기 때문에 문제가 없었는데,,, Excel의 기본 Tab 메뉴에 추가하려고 할 때의 방법 부분에 기본 Tab 메뉴의 idMso를 사용 부분에 새로 id 및 label에 새로 삽입할 이름을 넣고, insertAfterMso나 insertBeforeMso에 삽입하려는 기본 메뉴의 그룹 이름을 사용해서 지정합니다. 그런데, 기본 Excel의 idMso를 찾기가 어려워서,,, 한참을 해매었다는,,, 찾은 site는 여기입니다. https://excelbaby.com/learn/idmso-full-list-in-excel-for-windows/ 나중에 또 찾을까봐 여기에 저장해 둡니다. (2022년 버전) Excel에..

Excel - VBA 2023.11.27
728x90