728x90

Excel - VBA 65

[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/1318647https://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

[VBA] CheckBox를 쉽게 이용하자

Excel 양식에 CheckBox를 넣으려면 양식도구를 이용해서 추가하여 사용하는데, 실제로 일반 사용자가 사용하기에는 익숙하지 않은 도구입니다. 이를 위하여 사용자가 쉽게 CheckBox를 셀에서 사용할 수 있도록 해 봅니다. 이 기능은 Microsoft 365에서 기본기능으로 추가할 예정인 것을 미지원 버전에서 사용할 수 있도록 모사 구성한 것입니다. https://insider.microsoft365.com/en-us/blog/simplify-data-entry-and-reduce-errors-with-checkboxes-in-cells EGTools를 사용하시는 분은 v3.9.5에서 지원하기 때문에 중복으로 사용시 문제 발생할 수 있습니다. 기본적인 아이디어는 셀서식중 조건을 반영할 수 있는 것을..

Excel - VBA 2023.11.26

[VBA] 선택한 행/열 강조하기

매우 큰 표에서 선택된 셀의 열제목이나 행제목을 쉽게 볼 수 있도록 십자 형태로 셀 색을 바꾸어 줄 수 있습니다. 이미 사용자가 셀에 바탕색을 입력했을 수도 있으므로 이 것을 훼손하지 않고 작업하려면 조건부 서식을 이용해서 선택된 경우에만 표시가 되고, 그렇지 않은 경우에는 원래의 색이 표시되도록 합니다. 주의할 점은 이 기능을 사용하면 모든 선택 변경시마다 "매크로가 실행" 되므로 Excel의 "되돌리기(Undo)" 기능은 작동하지 않게 됩니다. 우선 아래와 같이 이름 관리자에서 "MyRange"나 원하는 이름으로 아무 셀이나 참조대상으로 설정합니다. 주의할 점은 처음 지정하는 "MyRange"이름의 범위(S)에 반드시 "통합 문서"로 지정해야합니다. 처음 지정에 'Sheet1'같이 특정 시트를 지정하..

Excel - VBA 2023.11.25

문제은행 (ExamBank)으로 시험준비 하기

예전에 만들어 둔 파일을 잊어버리지 않으려고 정리해서 올려 둡니다. 시험을 준비할 때, 문제를 써보기만 해도 공부가 조금은 더 되지 않을까요? 시험문제를 입력하면서 한 번 공부하고, 입력한 후에는 문제를 자동으로 섞어서 풀어보고, 틀린 문제는 한 번 더 풀어보고, 내가 입력해 놓은 해설도 보면서 공부 할 수 있는 샘플입니다. ㅁ 시험보기 옵션 설명 진행방식이 "자동"이면 정답을 입력하면 바로 결과가 확인되고, 다음 문제로 넘어 갑니다. 진행방식이 "수동"이면 [정답확인], [다음문제]를 클릭해야 진행이 됩니다. 음성결과가 "무음"이면 소리는 나지 않고, 알림창으로 결과를 알려 줍니다. 음성결과가 "소리"이면 소리로 결과를 알려 줍니다. [정답확인]시 정답인 경우 음성/알림창 내용은 F1의 정답 안내 내용..

Excel - VBA 2023.11.24
728x90