반응형

SUB 8

주소를 PNU로 변환하기(2) - VBA

3. 특지 구분 연결하기특지 구분 등을 구하는 사용자 정의 함수는 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/564 이번에는 사용자 정의 함수가 아니라 매크로로 특지 구분을 구하겠습니다.그러나 구문은 사용자 정의 함수나 같은데,사용자 정의 함수는 특지구분이란 변수로 값을 반환해야 하는데 반해서매크로는 직접 처리하고 값을 반환할 필요가 없고, 사용자 정의 함수의 경우는 인수(아래 코드에서 '범위')를 직접 대입할 수 있는데 반해서,매크로의 경우는 인수를 대입할 수도 있지만 본 예제의 경우는 반복 구문이기 때문에 인수를 직접 입력할 수 없다는 점입니다.Function 특지구분(범위 As Range) '범위(주소)에서 특지구분을 추출한다. Dim 마지막공백 A..

EXCEL - VBA 2024.08.19

셀 서식의 통화 표시 알아내기 (1) - NumberFormat, NumberFormatLocal

1. 엑셀에서 알아내기 - 실패 아래와 같이 통화 표시가 있을 때 B1셀에 =left(a1,1)이라고 하면₩가 구해지는 것이 아니라 100에서 왼쪽 한 글자인 1이 구해집니다. 다른 것도 마찬가지입니다.B1셀의 채우기 핸들을 더블 클릭해서 B6셀까지 수식을 복사하면 원하는 것과 는 달리 모두 1이 구해집니다. 2. VBA로 해결 - 성공 가. 구문 속성이므로 Range.NumberFormat 또는 Range.NumberFormatLocal이라고,Range 다음에 .(점)을 찍고 써서 표시형식을 알아내는데,숫자뿐만 아니라 통화, 시간 등 모든 표시형식이 가능하며, NumberFormat과 NumberFormatLocal의 차이는 Local은 사용자의 언어형식으로 표시한다는 것입니다. 나. Sub 프로시저 ..

EXCEL - VBA 2024.07.08

소재지, 특지구분, 본번, 부번 합치기(2) - VBA

1. 문제 소재지와 특지구분, 본번, 부번이 나뉘어져 있을 경우에 이를 합치는 것을 VBA로 해결해보겠습니다.  두 가지 경우가 있는데, 첫번째는 특지구분에 산과 빈칸이 있고, 부번이 숫자와 빈칸인 경우이고, 두번째는 특지구분에 산과 일반이 있고, 부번이 0과 양수로 구성된 경우입니다. 2. 특지 구분에 일반이 없는 경우 개발도구 - Visual Basic을 눌러 VBA 편집기를 엽니다.만약 개발도구 탭이 안보인다면 파일 - 옵션 - 리본 사용자 지정에서 개발 도구 왼쪽의 체크 박스에 체크하면 됩니다. 왼쪽 위 프로젝트 창에서 '지번주소 결합 완성(2).xlsx)를 선택하고,  삽입 - 모듈을 눌러 모듈을 추가합니다.엑셀 파일 아래에 모듈과 Module1이 추가되고, 오른쪽에는 빈 코드 창이 열립니다. ..

EXCEL - VBA 2024.05.23

두 문장의 같은 단어 비교(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

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

사용자 정의 함수로 작성하는 것이 바람직하지만 굳이 만든다고 하면 매크로, 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

For ~ Next 반복문

동일한 작업을 반복해서 실행하는 것이 반복문입니다. For문은 For ~ Next문과 For Each ~ Next문이 있습니다. 먼저 For ~ Next문에 대해 다루고, For Each ~ Next문은 따로 다루도록 하겠습니다. 1. 구문 2. 구문에 대한 설명 counter 필수 요소. 숫자 변수로서 For 루프의 컨트롤 변수. start 필수 요소. counter의 초기 값. end 필수 요소. counter의 최종 값. step 선택 사항. For 루프를 돌 때 매번 변화되는 카운터의 양. 기본값은 1 statements 선택 사항. For와 Next사이에서 지정된 숫자만큼 반복 실행하는 하나이상의 문장 Exit For 선택 사항. For 루프의 밖으로 제어를 이동. Next 필수 요소. For ..

EXCEL - VBA 2022.11.11

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

엑셀 VBA에서 셀 또는 범위 지정하기(1) - Range

엑셀은 셀은 기준으로 작업을 하게 됩니다. A1셀에 24를 입력하거나, B1셀에 A1에 2를 곱한 값을 입력하거나 모두 셀을 기준으로 작업을 하게 됩니다. 1. 준비 사항 새 통합 문서를 연 다음 개발도구 - Visual Basic 명령을 눌러 Visual Basic Editor를 연 다음 삽입 - 모듈 메뉴 또는 삽입 콤보 박스를 누른 다음 모듈을 클릭하여 모듈을 추가하면 그 아래 Module1이 있고, 오른쪽을 보면 빈 코드 창이 열립니다. 오른쪽 코드 창에 sub 범위지정까지 입력하면 그다음 괄호와 End Sub는 자동으로 입력됩니다. 단일 셀 또는 여러 셀을 다루는 방법을 알라보는데, 여러 셀을 연속되거나 연속되지 않을 경우를 나눠서 다뤄보겠습니다. 2. 단일 셀 지정하기 셀을 지정할 때는 Ran..

EXCEL - VBA 2022.10.25
반응형