728x90

Excel 104

천문연구원 API를 이용한 음력 확인

ToLunar와 ToSolar 함수를 EGTools에 추가하면서 실제 변환이 정확한지 확인하는 것을 천문연구원에서 제공하는 API를 이용해서 확인을 했었는데, 여기에 사용한 코드입니다. 천문연구원에서는 양력기준으로 기원전 59년 2월 13일부터 2050년 12월 31일까지의 양력/음력 날짜를 제공합니다. 양력 달력을 이용하기 위한 API를 주소는 https://astro.kasi.re.kr/life/solc? 이며 yyyy, mm, dd 3가지를 양력으로 입력합니다. 조회 결과는 아래와 같은 형태로 반환됩니다. {"SOLC_WEEK":"토","SOLC_DD":"01","SOLC_LEAP_YYYY":"평","JULIAN_DD":"18","JULIAN_YYYY":"2017","LUNC_YYYY":"2017"..

Excel - VBA 2023.01.19

Macro 실행 시간 측정하기

Macro를 작성하면서 시간을 1ms라도 줄이기 위해서 현재 작성한 매크로의 실행 시간을 측정하는 데 사용하기 위해서 사용 1. Class 모듈 이름을 "cTimer"로 삽입하고 아래 코드 추가 Option Explicit #If Win64 Or VBA7 Then Private Declare PtrSafe Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long Private Declare PtrSafe Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long #Else Private Declare Functio..

Excel - VBA 2023.01.18

IMAGE 함수 (Microsoft 365 Excel 신규 호환함수)

【 함수 요약 】 Microsoft 365 Excel에 추가된 IMAGE 함수를 구버전에서 사용할 수 있게 EGTools에서 지원하는 호환함수 인터넷에 올려진 이미지 URL이나 컴퓨터에 저장된 파일명으로 이미지를 삽입하는 함수 이 함수는 EGTools 추가기능에서 지원하는 함수입니다. 원본함수 설명 : https://support.microsoft.com/ko-kr/office/image-%ED%95%A8%EC%88%98-7e112975-5e52-4f2a-b9da-1d913d51f5d5 원본 함수와 차이점 : 원본은 인터넷 URL만 삽입할 수 있으나 호환함수는 PC내 파일도 삽입 원본은 "BMP, JPG/JPEG, GIF, TIFF, PNG, ICO, WEBP" 형식만 지원하나 호환함수는 Excel에서 ..

VBA UDF 결과 배열을 Sheet에 출력하기

Excel 에 도입된 신규 함수중 일부는 Dynamic Array 결과를 Sheet에 출력하는데, UDF에서 이와 비슷한 기능을 할 수 있도록 하는 방법입니다. 장점 : 함수 결과가 배열인 경우 바로 Sheet에 쓸 수 있다. 단점 : 결과 범위가 축소된 경우 줄어든 부분에 대해서 값을 지울 수는 없다. -> 사용상 주의하지 않은 경우 변경된 결과에 이전 결과의 잔상이 남음... (현재 EGTools에는 완벽하지는 않지만 기존 자료를 자동으로 지울 수 있도록 적용되어 있습니다.) 기본적인 개념은 아래 출처에서 착안하여 시행착오를 거쳐 정리한 결과입니다. https://stackoverflow.com/a/37344343 처리 과정은 대강 이렇게 진행됩니다. 1. Global 변수에 결과를 전달할 배열 선언..

Excel - VBA 2023.01.17

SAMPLE 함수

【 함수 요약 】 지정하는 대상 범위에서 지정하는 숫자만큼 무작위 샘플링 추출 이 함수는 EGTools 추가기능에서 지원하는 함수입니다. 【 적용 버전 】 Windows용 : 조건없는 샘플링은 모든버전, 조건을 사용하는 샘플링은 Excel 2007~ 【 함수 구문 】 = SAMPLE ( Search_range , Count , [Unique] , [Include ] ) 【 함수 인수 】 인수명 옵션 기본값 설 명 Search_range 필수 없음 대상범위 또는 Array Count 필수 없음 샘플을 추출할 수 (>0) Unique 선택 False 중복금지 여부, 기본값은 False로 중복가능, True로 지정시 중복없이 출력 Include 선택 없음 조건을 계산하여 참/거짓으로 판정할 수 있는 배열수식 ..

IsTime() 셀 값이 시간 값인지 어떻게 확인할 수 있을까?

VBA로 셀값의 형태가 어떤 것인지 판단하기 위해서 여러가지 방법을 사용합니다만, 시간값만 있을 경우 판단하기 애매한 경우가 있습니다. 입력된 값이 어떤 것이고 셀서식이 어떻게 되어 있느냐에 따라 달라지는데, 아래의 코드와 예제 결과를 참고해 보세요. Function IsDateValue(Cell As Range) IsDateValue = IsDate(Cell.Value) End Function Function IsString(Cell As Range) IsString = TypeName(Cell.Value) = "String" End Function Function IsNumericValue(Cell As Range) IsNumericValue = IsNumeric(Cell.Value) End Func..

Excel - VBA 2023.01.11

Ribbon Menu - CrossTab 기능

□ CrossTab 수직형으로 작성된 일반적인 Data 표에 대해서 집계표형식으로 변경하는 기능 원본영역과 표의 제목줄을 지정하고, 집계표형식에서 행머리에 놓을 열과, 열머리에 놓을 열, 표본문에 놓을 열을 선택합니다. 행머리와 열머리는 여러 열을 열번호로 지정할 수 있으며, 표본문은 하나의 열번호만 지정할 수 있습니다. 열본문으로 지정한 열은 첫번째 자료의 자료의 셀형식에 따라 아래와 같이 집계됩니다. 1. 숫자형 자료 : 행머리, 열머리가 같은 것끼리 합산 2. 날짜시간 자료 : 첫번째 셀의 셀서식으로 표시되는 문자열을 쉼표(,)로 연결 3. 나머지 자료 : 일반 문자열로 간주하고 그대로 쉼표(,)로 연결

EGTools - 기능 2023.01.11

TEXTJOINIF 함수

【 함수 요약 】 조건에 만족하는 검색범위의 값을 하나의 문자열로 연결 조건은 Filter()함수에서 조건을 지정하는 방법과 같은 방식으로 지정 배열함수로 함수 입력할 때에는 Ctrl+Shift+Enter로 입력해야 함 이 함수는 EGTools 추가기능에서 지원하는 함수입니다. 【 적용 버전 】 Windows용 : Excel 2007~ 【 함수 구문 】 = TEXTJOINIF ( Include , Search_Range , [Delimiter] , [Unique] ) 【 함수 인수 】 인수명 옵션 기본값 설 명 Include 필수 없음 참/거짓으로 판정할 수 있는 배열수식, 2개의 조건이 동시만족해야 할 때 (범위1=값1) * (범위2>값2) 2개의 조건중 하나만 만족해도 될 때 (범위1=값1) + (범..

VBA로 Add-In(추가기능) 자동 업데이트 하기

EGTools v3.5.0에 추가된 업데이트 기능의 VBA 소스입니다. DownloadFromURL함수는 여기를 참고하세요. 다운로드한 파일은 임시로 사용자의 Downloads 폴더에 저장했다가 복사가 완료되면 삭제합니다. 사용중인 파일을 덮어씌우기 위해서 Add-In을 읽기 전용 상태로 바꾸는 것이 필요합니다. 사용자가 작성중인 파일이 있을 경우가 있어 Excel의 재시작은 사용자가 하도록 합니다. Public Const MyAddIn = "EGTools" Public LastDocURL As String Sub UpdateAddIn() Dim NewFile As String Dim ThisFullPath As String If Not ThisWorkbook.IsAddin Then Exit Sub Th..

Excel - VBA 2023.01.06

URL을 지정하여 File을 Download하기

인터넷에 존재하는 파일을 다운로드 하기 위하여 아래와 같은 코드를 사용할 수 있습니다. 다운로드할 대상의 URL과 Download할 Path와 이름이 포함된 FullName을 지정하여 다운로드 합니다. 이 기능은 Add-In인 EGTools 추가기능에 자동업데이트 기능을 추가할 때 사용하였습니다. Binary 파일을 ADODB.Stream으로 다운로드 하는 방식입니다. 다운로드가 되면 새로 생성된 파일의 FullName을 반환하고, 실패하면 빈문자열(vbNullString)을 반환합니다. Function DownloadFromURL(FileUrl As String, NewFullName As String) Dim oXMLHTTP As Object, oStream As Object On Error GoTo..

Excel - VBA 2023.01.06
728x90