반응형

Function 13

주소를 법정동, 특지 구분, 본번, 부번으로 분리하기(1)

1. 수식 이용 하기아래 글에서 수식을 이용해 주소에서 법정동을 분리해내고,https://lsw3210.tistory.com/519 주소를 PNU로 만들기(1-3) : 주소를 법정동명과 지번으로 분리하기4. 주소를 법정동과 지번으로 분리하기 가. 주소의 형태  아래와 같이 시도, 시군구, 읍면동, 리로 구성된 주소가 있을 때법정동과 지번을 구분해야 하는데한 칸 공백의 개수가 3개인 경우도 있lsw3210.tistory.com 지번에서 특지구분과 본번, 부번을 분리했는데https://lsw3210.tistory.com/521 주소를 PNU로 만들기(1-5) : 필지구분과 본번,부번 변환하기산인 경우 하이픈이 있는 경우가 없어서,A8셀의 주소를 경기도 가평군 북면 화악리 산 339에서 경기도 가평군 북면 적..

EXCEL - VBA 2024.08.13

셀 서식의 통화 표시 알아내기 (2) - 사용자 정의 함수(UDF)

Sub 프로시저를 실행하면 여러 가지 동작을 한 번에 실행하는 것이고,Function 프로시저는 내가 원하는 형태의 함수를 만드는 것입니다. 다시 말해 =함수명(셀 주소) 형식으로 매크로를 실행하는 것이 아니라함수로 결괏값을 반환받는 것입니다. 따라서, 사용자 정의 함수(User Defined Function, UDF)를 만들어 사용하면 편리합니다. 1. 논리NumberFormat을 했을 때는 원화 표시 ₩가 $로 표시되어서 사용할 수 없고,NumberFormatLocal을 사용해야 합니다.  그러나. 세 번째 줄부터는 NumberFormat이나 NumberFormatLocal이 같습니다. 그리고, 한 자리 기호인 경우, 다시 말해 '['표시가 없는 경우)는 첫 번째 기호인 ₩와 $를 가져오면 되는데세 ..

EXCEL - VBA 2024.07.09

병합된 셀의 홈(A1) 셀 알아내기(2) - 홈 셀 알아내기

1편을 여기서 확인하세요. 나. '홈 셀'(1) 홈 셀의 의미홈 셀을 병합된 셀 기준으로 보면 A1셀, 다시 말해 1행 1열이 됩니다. 따라서, Range("A1")이라고 해도 되고, Cells(1,1)이라고 해도 됩니다. (2) 함수 만들기 반복된 동작은 Sub 프로시저로 처리하는데,처리한 후 값을 반환받는 함수를 만들려면 Function 프로시저를 사용해야 합니다.  ① 위 파일을 연 다음개발 도구 - Visual Basic을 누릅니다. 그리고, 맨 아래에 Function이라고 쓰고, 함수명을 입력하는데,GetHomeCell이라고 하겠습니다.그리고 셀 주소를 인수로 받아야 하므로 인수명을 rng로 하고 형식을 Range로 지정합니다.그러면 아래와 같이 됩니다.Function GetHomeCell(rn..

EXCEL - VBA 2024.05.30

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
반응형