반응형

Function 10

UDF에서 자기 셀 참조 시

일반적으로 UDF(User Defined Function, 사용자 정의 함수)는 다른 셀 주소를 참조해서 계산을 하며, 아래는 제곱값을 구하는 함수의 코드입니다. Function square(rngA As Range) square = rngA.Value * rngA.Value End Function 그러나, 자기 자신의 셀을 참조해야 할 수도 있습니다. 이때 사용하는 것이 Application.Caller 속성(Property)입니다. Application.Caller 대충 감을 잡으면 응용 프로그램이 호출하는 곳 또는 어디서 호출되었는지 정도가 될 것입니다. 따라서, 자기 자신 셀을 가리킵니다. 위의 경우에 항상 왼쪽 두 번째 셀의 값을 참고한다고 하면 범위를 이용하지 않고 아래와 같이 Applicat..

EXCEL - VBA 2024.01.05

메모에 표시되는 사용자 명 표시하지 않기

1. 새 메모와 새 노트 엑셀이 버전 업되면서 '새 메모'와 '새 노트'로 분리되었습니다. '새 메모'는 채팅 기능이고, '새 노트'가 과거의 메모 기능입니다. 이때 새 노트를 누르면 이름과 :(콜론) 표시가 나오고 그 아래 메모를 입력합니다. 2. 사용자 명 삭제 및 편집 파일 - 옵션 - 일반 탭에서 중간에 내려가면 사용자명이 보입니다. 사용자 명을 수정하려면 내용을 수정하면 되는데, 사용자 명을 삭제하려면 내용을 지우고 확인 버튼을 누른 다음 옵션에서 확인해 보면 이름이 그대로 있으므로 스페이스 바를 한 번 밀어서 공백을 삽입해야 합니다. 그리고, 다른 셀에서 새 노트를 누르면 사용자명은 없는데 :(콜론)은 여전히 표시되고 있는 문제점이 있습니다. 3. VBA로 사용자 정의 함수 만들기 일반적인 엑..

EXCEL - VBA 2024.01.02

텍스트로 된 수식의 값 구하기(4 - 2) - 사용자 정의 함수

텍스트로 된 수식의 값 구하기(4 - 1) - Evaluate 함수에서 VBA의 Evaluate 함수를 이용해 수식의 값을 구할 수 있다는 것을 알았는데, https://lsw3210.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A1%9C-%EB%90%9C-%EC%88%98%EC%8B%9D%EC%9D%98-%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B04-1-Evaluate-%ED%95%A8%EC%88%98 직접 실행창에서 매번 실행할 수는 없으므로 사용자 정의 함수를 만들어 사용해야 합니다. 1. VB 에디터 실행 개발도구 - Visual Basic을 눌러 VB Editor를 연 다음 엑셀 파일명을 클릭한 다음 사용자 정의 폼 삽입 옆의 콤..

EXCEL - VBA 2023.07.20

엑셀 VBA 개체 찾아보기

1. 개체 찾아보기 개발도구 - Visual Basic을 누른 후 표준 도구모음에서 개체 찾아보기 아이콘을 누르면 아래와 같은 창이 표시되는데, 위 쪽은 검색 결과, 그 아래는 클래스와 구성원, 그 아래는 설명창이 표시됩니다. 2. 클래스와 구성원(함수, 속성, 열거형, 상수) 검색어 입력 란에 border라고 입력하고 엔터 키를 누르면, border가 포함된 라이브러리, 클래스, 구성원이 검색 결과 목록에 표시되고, 그 아래는 선택된 클래스와 구성원이 표시됩니다. Borders 클래스 아래 Application. Color, ColorIndex, LineStyle 등 '모든 테두리에 실선으로 그리기' 글에서 표시한 속성들이 표시됩니다. https://lsw3210.tistory.com/entry/%EC..

EXCEL - VBA 2023.06.07

두 문장의 같은 단어 비교(4) - 어미, 조사 등 제거 도전

https://lsw3210.tistory.com/entry/%EB%91%90-%EB%AC%B8%EC%9E%A5%EC%9D%98-%EA%B0%99%EC%9D%80-%EB%8B%A8%EC%96%B4-%EB%B9%84%EA%B5%90 두 문장의 같은 단어 비교(1) - 매크로 작성 위와 같이 A1셀과 A2셀의 문장 2개를 비교해서 같은 단어일 경우는 글자 색을 빨간색으로 표시하는 것을 해보겠습니다. 1. 논리 A1셀과 A2셀을 각각 빈칸을 기준으로 문장을 나눈 다음 배열에 넣고, lsw3210.tistory.com 위 글을 쓸 때만 해도 어미 또는 조사 등을 제거하는 것이 어렵다고 생각하고 포기했는데, 간단하게라도 만들어 놓으면 완성하는 것은 사용자의 몫이 될 수도 있을 듯해 제한적으로나마 매크로를 작성해 ..

EXCEL - VBA 2023.05.11

병합 셀의 첫번째 셀 값 찾기(2) - 사용자 정의 함수

함수를 이용하면 다른 PC에서도 그대로 작동하기 때문에 편리한 대신, 워크시트 함수에는 병합 셀과 관련된 함수가 없으므로 https://lsw3210.tistory.com/entry/%EB%B3%91%ED%95%A9-%EC%85%80%EC%9D%98-%EC%B2%AB%EB%B2%88%EC%A7%B8-%EC%85%80-%EA%B0%92-%EC%B0%BE%EA%B8%B0 위 글과 같이 If함수를 중첩적으로 사용해야 하는 불편함이 있습니다. 따라서, VBA로 사용자 정의 함수를 만들어보겠습니다. 사용자 정의 함수는 PC별로 존재하기 때문에 다른 PC에서 열어보면 폴더명과 함께 사용자 정의 함수명이 표시되는 불편함이 있습니다. 그래도 수식으로 작성하면 복잡한데 사용자 정의 함수를 만들면 간단하게 해결할 수 있는..

Excel 2023.05.03

일정한 간격으로 된 값 합계 구하기 - 매크로

사용자 정의 함수로 작성하는 것이 바람직하지만 굳이 만든다고 하면 매크로, Sub 프로시저로도 만들 수 있습니다. 사용자 정의 함수와 매크로는 모두 VBA를 이용하지만 아래와 같이 다른 점이 있습니다. 사용자 정의 함수 매크로 사용자 정의 함수를 실행하면 VBA에서 실행한 후 값을 반환합니다. 매크로를 실행하면 VBA에서 실행한 후 워크시트 함수를 이용한 수식을 반환합니다. =sum_interval(D4:N4,4) =SUM(IF(MOD(COLUMN($D$3:$O$3),2)=0,$D$3:$O$3)) 함수의 인수를 사용자 정의 함수에 입력함 함수의 인수를 매크로 실행시 입력 받음 1. 논리 범위와 간격을 입력받는 창을 실행하고, 입력 받은 값을 기준으로 배열 수식을 만들어 반환한다. Sub make_form..

EXCEL - VBA 2023.03.21

VBA 조건문(3) - Select Case(2) - 사용자 정의함수 만들기

매번 값을 입력하고 매크로를 눌러야 원하는 값이 나왔는데, 값을 입력하면 바로 값이 표시되도록 사용자 정의함수를 만들 수 있습니다. 1. 학점 구하기 Function grade(rangeA As range) Select Case rangeA Case 90 To 100 grade = "A학점" Case 80 To 90 grade = "B학점" Case 70 To 80 grade = "C학점" Case 60 To 70 grade = "D학점" Case 0 To 60 grade = "F학점" Case Else grade = "0점에서 100점 사이로 입력해 주세요." End Select End Function A3셀 값에 따라 B3셀에 학점을 입력하는 sub 프로시저 문은 아래와 같았습니다. Sub selec..

EXCEL - VBA 2022.11.08

엑셀의 유용함, 사용자 지정 함수

1. 엑셀 내장 함수와 사용자 지정 함수 가. 엑셀 내장 함수 엑셀에는 많은 내장 함수가 존재합니다. fx라고 쓰여 있는 함수 삽입 아이콘을 누르면 최근에 사용한 함수가 선택되어 있고, 그 아래 모두, 재무, 날짜/시간 등 범주가 표시되고, 통계를 누르면 두 번째 average, 네 번째와 다섯 번째 averageif, averageifs 함수 등이 보입니다. 아래로 계속 내려가면 자주 사용하는 max, min, sum 등 함수도 보입니다. 위와 같이 자주 사용하는 함수를 엑셀을 미리 만들어 놓아서 사용자들이 사용하기 쉬운 환경을 만들어놓고, 계산을 쉽게 할 수 있도록 도와주는 것이 엑셀의 뛰어난 기능입니다. 나.사용자 지정 함수 사용자 지정 함수는 내장 함수로는 처리하기 어렵거나 복잡해지는 수식을 VB..

EXCEL - VBA 2022.10.07

엑셀의 유용함, 사용자 정의함수(2)

사용자 정의함수를 작성하는 방식은 Function 함수이름(인수명1 as type , 인수명2 as type, Optional 인수명3 as type = 기본값) 처리 루틴 함수이름 = 결과값 End Function 입니다. 1. Function으로 시작해서 End Funciton으로 끝나며, 그 사이에 처리 루틴을 작성하고, 함수명으로 rerurn값을 지정합니다. 2. 인수는 필요한 만큼 넣으면 되며, 숫자인지 문자인지 형식을 명확히 하기 위해 type을 지정해 주고, 예, i as Integer, search_cell as Range, 날짜1 as Date type은 입력시 소문자로 입력해도 알아서 대문자 등으로 변환되므로 대,소문자는 신경쓰지 않아도 됩니다. ​ 2. optional이란 인수가 꼭 ..

EXCEL - VBA 2020.07.28
반응형