728x90

Excel - VBA 65

길이 0인 문자열 제거하기

수식에서 IFERROR(수식, "") 처럼 결과를 길이가 0인 문자열로 설정한 경우나 이를 값으로 복사/붙여넣기 한 경우 값은 없지만 실제로는 빈셀이 아닌 경우에 이를 제거하도록 하는 매크로입니다. 수식이 있는 경우 제외하는 선택을 할 수 있습니다. Sub RemoveZeroLengthString() Dim vData As Variant, vFormula As Variant, ExcludeFormula As Variant, iRow As Long, iCol As Long, r As Long, c As Long ExcludeFormula = MsgBox("수식이 들어 있는 셀은 제외할까요?", vbYesNoCancel) If ExcludeFormula = vbCancel Then Exit Sub Exclu..

Excel - VBA 2023.06.28

VBA 배열(Array) 관련 유용한 함수

VBA에서 배열(Array)을 이용할 때 유용한 함수로 자주 사용하는 것들을 모아 놓은 것입니다. 2023-05-22 TransposeArray 수정하고, SliceArray 추가 □ IsArray() : 배열인지 아닌지 확인하는 함수 - 변수를 Variant로 선언하고 VarArray = UsedRange.Value2 처럼 Range를 직접 배열에 할당하는 경우 배열이 초기 상태는 Empty라서 IsArray 결과 값은 False이고, 할당된 이후에는 True가 되어 할당 여부를 확인할 때 사용 □ getDimension() : 배열이 1차원인지, 2차원인지 확인하는 함수 결과값 : 배열이 아니면 0, 1차원 배열은 1, 2차원 배열은 2,,,, Public Function getDimension(va..

Excel - VBA 2023.05.22

샘플링 검사 (KS Q ISO 2859-1) 다회 샘플링 방식 지원 함수

KS Q ISO 2859-1 에서 규정하는 계수형 합격판정 샘플링 검사에 대해서 필요로 하는 정보를 함수로 구현한 것입니다. 여기 소개된 함수들은 EGTools 추가기능에 추가되었습니다. (v3.7.7) 1회 샘플링 검사에 대한 내용만 필요하면 아래를 참고하세요. https://egtools.tistory.com/entry/ISO2859-SAMPLING 여기에 올린 파일은 1회샘플링 검사 방식뿐만 아니라 2회 샘플링 검사 방식과 다회샘플링 검사 방식에 대해서도 사용할 수 있도록 확장하였습니다. 표준에서 기술한 샘플링표는 첨부 문서 안에 그대로 옮겼습니다. 1회 샘플링 방식의 판정은 알기 쉬우므로 2회와 다회 샘플링 방식의 판정 기준을 설명합니다. □ 2회 샘플링 방식의 판정 기준 1차 검사 : 샘플수 n..

Excel - VBA 2023.05.20

DatePicker 만들기 - 3 (레이블 이벤트를 이용한 날짜 선택)

□ 레이블이벤트를 사용할 클래스 추가 및 동작 지정 삽입 - 클래스 모듈 (이름 : cLblEvents ) WithEvents를 사용하여클래스 내부에 이베트를 가진 레이블을 추가 (이름: lbl ) 동작 : 레이블을 클릭하거나 더블클릭하면 Tag에 있는 날짜를 SelectedDate 인터페이스를 통해 지정 선택된 날짜를 기재하고 폼은 숨기기 Public WithEvents lbl As MSForms.Label Private Sub lbl_Click() If Left(lbl.Name, 3) = "lbD" Then lbl.Parent.SelectedDate = CDate(lbl.Tag) lbl.Parent.Hide End If End Sub Private Sub lbl_DblClick(ByVal Cancel..

Excel - VBA 2023.05.05

DatePicker 만들기 - 2 (레이블을 이용한 Calendar 날짜 정리)

□ DatePicker에서 사용할 내부 변수 및 인터페이스 설정 내부에서 사용할 변수로 date_Selected를 선언 이 변수를 설정하고 읽어올 인터페이스를 정의 (Let, Get) Private date_Selected As Date Public Property Let SelectedDate(argDate As Date) date_Selected = argDate End Property Public Property Get SelectedDate() As Date SelectedDate = date_Selected End Property □ 달력을 만드는 프로시저 생성 인수 : 연도(필수), 월(필수), 일(선택) 레이블의 이름을 기준으로 레이블 컨트롤을 지정하여 날짜 및 서식을 적용 (lbD1~42,..

Excel - VBA 2023.05.05

DatePicker 만들기 - 1 (Calendar용 User Form 준비)

□ User Form 추가 이름 : formCalendar Caption : DatePicker 날짜에 사용할 Control을 선택 : 명령단추나 레이블 등을 사용할 수 있는데 여기 설명에는 레이블(Label) 기준으로 진행 □ 주차명에 해당하는 레이블 생성 왼쪽에 주차번호를 넣고, 일~토요일 7개를 넣어야 하므로 적절한 위치에 첫번째 레이블 생성 첫번째 레이블 - 이름 : lbT1 - 크기 : Width = 15, Height = 15 - Caption : 일 - TextAlign : fmTextAlignCenter - Font : 맑은 고딕, 보통, 크기=10 두번째 ~ 일곱번째 레이블 : 첫번째를 복사 - 이름을 lbT2 ~lbT7 으로 수정하고, Caption을 월~토 로 수정하고 적절한 간격으로..

Excel - VBA 2023.05.05

Excel에서 원숫자를 50번까지 입력하기 (feat. 자동고침옵션)

원문자를 한글 윈도우 체계에서는 1부터 15까지(① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮) 지원합니다. 16이상의 원숫자는 유니코드에서 입력해야 하는데, Excel에서는 아래와 같은 방법으로 할 수 있습니다. ⑯ ⑰ ⑱ ⑲ ⑳㉑ ㉒ ㉓ ㉔ ㉕ ㉖ ㉗ ㉘ ㉙ ㉚ ㉛ ㉜ ㉝ ㉞ ㉟ ㊱ ㊲ ㊳ ㊴ ㊵ ㊶ ㊷ ㊸ ㊹ ㊺ ㊻ ㊼ ㊽ ㊾ ㊿ 1. 우선 입력할 셀의 폰트를 유니코드를 지원하는 "나눔고딕" 같은 것으로 지정합니다. 나눔폰트는 네이버에서 무료로 제공하고 있고, 상업적 이용도 가능합니다. 2. UNICHAR()함수를 이용하여 유니코드를 입력합니다. UniChar함수는 십진수를 사용해야 하므로 아래와 같이 검토합니다. 원문자 16 은 16진수 "246F"에 해당하는 9327이므로 아래와 같은 수..

Excel - VBA 2023.04.17

Selenium Basic 사용중 Unexpected Alert Open Error

셀레니움을 이용하여 Chrome으로 Web 문서를 조회할 때 갑자기 아래처럼 오류가 발생하며 더이상 진행을 할 수 없을 때 처리가 필요합니다. 에러코드 26에 UnexpectedAlertOpenError인데, 실제 웹페이지에서는 메시지 팝업이 되는 것입니다. 아래와 같이 Error 처리하고 다음 단계로 넘어갑니다. On Error GoTo ERR_HD For r = LBound(vD, 1) To UBound(vD, 1) '// User code area NEXT_ROW: Next r WD.Close SEt WD = Nothing Exit Sub ERR_HD: If InStr(1, Err.Description, "Alert") 0 Then WD.SwitchToAlert.accept '// or WD.Swi..

Excel - VBA 2023.03.28

표준시간을 얻어 오는 함수

제품의 유효기간을 설정할 때에 PC에 있는 시간이 아닌 인터넷 상의 Time Service를 이용하여 날짜/시간 확인이 필요한 경우 API를 이용하여 확인이 가능합니다. 아래처럼 브라우저의 URL를 입력해 보면 현재 시간을 알 수 있습니다. http://worldtimeapi.org/timezone/Asia/Seoul 이걸 함수에서 사용할 수 있도록 API 주소를 아래와 같이 적용합니다. http://worldtimeapi.org/api/timezone/Asia/Seoul 조회 결과는 json으로 아래처럼 접수됩니다. {"abbreviation":"KST","client_ip":"000.000.000.000","datetime":"2023-03-27T12:50:33.717783+09:00","day_of..

Excel - VBA 2023.03.27

샘플링 검사 (KS Q ISO 2859-1) 1회 샘플링 함수 만들기

여기 소개된 함수들은 EGTools 추가기능에 추가되었습니다. (v3.7.0) ISO 2859-1 및 KS Q ISO 2859-1에 규정된 샘플링 검사에 대해서 계수형 샘플링 검사에 가장 많이 사용되는1회 샘플링 검사 방식의 내용을 함수로 만들어 쉽게 사용할 수 있게 합니다.  함수의 사용법은 아래를 참고하세요.SamplingLabel 함수 : https://cafe.naver.com/egtools/94SamplingSize 함수 : https://cafe.naver.com/egtools/93SamplingAc 함수 : https://cafe.naver.com/egtools/95SamplingRe 함수 : https://cafe.naver.com/egtools/96  가장먼저 샘플문자를 확인하는 함수로,..

Excel - VBA 2023.03.20
728x90