반응형

조건문 9

While 문 - VB와 VBA의 차이점

VBA는 엑셀 등 오피스 앱을 위한 VB이지만(Visual Basic for Application), VB가 모두 적용되는 것은 아닙니다. 1. VB와 VBA의 While문 차이점가. VB의 While문구글에서 vba while로 검색을 하면 VB에 대한 도움말만 나오고, 들어가 보면 While 반복문의 구문은 아래와 같습니다.While condition [ statements ] [ Continue While ] [ statements ] [ Exit While ] [ statements ] End While Continue While 문도 있고, Exit While로 중간에 빠질 수 있습니다. condition은 조건이고, statements는 실행문입니다. Exit While 다음의 statemen..

EXCEL - VBA 2023.12.17

두 문장의 같은 단어 비교(1) - 매크로 작성

위와 같이 A1셀과 A2셀의 문장 2개를 비교해서 같은 단어일 경우는 글자 색을 빨간색으로 표시하는 것을 해보겠습니다. 1. 논리 A1셀과 A2셀을 각각 빈칸을 기준으로 문장을 나눈 다음 배열에 넣고, 배열끼리 비교해서 배열이 같을 때, 여기서는 포함될 때를 기준으로 판단하려고 합니다. 다시 말해 '국민'은 '국민의'에 포함되므로 같은 것이 되고, '국민의'와 '국민을'은 포함관계가 아니기 때문에 다른 것이 됩니다. 어간을 기준으로 비교하면 되는데, 그것이 어려워서 조건으로 못 넣었습니다. 2. 매크로 작성 아래와 같이 Sub 프로시저와 Function 프로시저로 구성되어 있습니다. 가. Sub 프로시저 compare_sentence(문장 비교), font_red(일치하는 배열의 글자색을 빨간색으로 변함..

EXCEL - VBA 2023.05.08

구구단 만들기(5) (엑셀 VBA 디버깅 1)

완성된 버전만 보니 프로그램이 에러가 발생하지 않은 듯 하지만 처음에는 2단 자리에 계속 9단까지 써지고, 9단까지뿐만 아니라 200단까지 확장하면서 변수가 어떻게 변하는지 체크도 해보면서 작업을 했습니다. 프로그램 과정에서 일어났거나 일어날만한 내용에 대해 정리해 보겠습니다. 1. '변수 미 정의' 오류 개발도구 - Visual Basic - 도구 - 옵션에서 '변수 선언 요구'에 체크를 하면 Module 맨 윗부분에 'Option Explicit'란 구문이 추가되므로, 변수를 선언하지 않으면 에러가 납니다. 물론 여기에 체크를 하지 않으면 변수를 선언하지 않더라도 에러 메시지가 나지 않기 때문에 불편함이 없을지는 모르지만, 프로그램의 정확성을 보장하기는 어렵습니다. ​ 예를 들어 Dim i As In..

EXCEL - VBA 2022.12.14

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 조건문(2) - Select Case(1)

값에 따른 처리를 할 때는 If문보다는 Select Case문을 사용하는 것이 편리합니다. 1. 구문 가. 구문 select case 문 다음에 있는 testexpression은 비교 대상을 설명하는 변수명이 되고, Case expressionlist-n은 변수명과 비교할 값의 나열이며, statements-n은 실행문이며, 여러 줄이 될 수 있습니다. Case Else는 If문의 else와 같이 위의 조건에 모두 충족되지 않는 경우 실행됩니다. elsestatements는 Case Else 조건에 부합할 경우 실행되는 문장입니다. Select Case 조건문은 End Select로 끝납니다. 나. case 다음의 비교할 값 표시 방법 ① 숫자 하나 입력 : case 2 식으로 case 다음에 값 입력 ..

EXCEL - VBA 2022.11.07

VBA 조건문(1) - If

프로그램을 제어하는 구문은 조건문과 반복문이 있으며, 조건문은 If문과 Select Case문이 있고, 반복문은 For문과 While문이 있습니다. 먼저 If문에 대해 알아보겠습니다. 1. 구문 위 구문에서 [ ] (대괄호) 안에 있는 문장은 옵션이므로 생략 가능합니다. 따라서, 가장 간단한 조건문은 If 조건 Then End If 가 됩니다. 아래와 같이 코드를 작성하려면 먼저 개발도구 - Visual Basic 명령을 누른 후 위 쪽 표준도구 모음에서 삽입 아이콘을 누른 후 모듈을 추가해야 합니다. Microsoft 도움말 사이트 If 조건문의 구문 설명에 Then이 대괄호 사이에 있어서 생략 가능하다는데, 지우면 Then 또는 GoTo가 필요하다고 하면서 에러가 나므로 꼭 있어야 합니다. 그리고 실..

EXCEL - VBA 2022.11.04

엑셀의 유용함, 사용자 정의함수(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

윗셀과 같은 값 지우기(2) - while 문

for문과 while문은 아래와 같은 차이점이 있는데, for 문 while문 for i=시작값 to 종료값 [step 간격] 실행문 next i= 시작값 while i=종료값) 실행문 i = i + 1 (또는 i = i - 1) Wend 시작값, 종료값과 간격을 한 줄에서 지정 시작값, 종료값, 증감식을 별도로 지정 ​ while문을 구체적으로 적용해 보겠습니다. ​ ​ 2. While 문 ​ 어제 작업한 아래 파일의 for문 아래에 while 문을 작성하겠습니다. ​ 가. 공통되는 부분 위로 이동 ​ 아래를 보면 dim 변수 선언문과 마지막 줄인 EndRow을 구하는 구문 2줄이 2개의 sub 모듈에 공통적으로 있습니다. ​ 따라서, 맨 위 Option Explicit 아래로 옮기는데, 옮긴 다음 '..

EXCEL - VBA 2020.07.10

윗셀과 같은 값 지우기(1) - for 문

데이터베이스를 만들게 되면 필드를 기준으로 데이터를 입력하므로, 같은 데이터가 두번이상 표시되게 됩니다. 아래 데이터를 보면 대구광역시와 부천시만 한번씩이고, 나머지는 2번이상 표시되고 있습니다. ​ 이와 같은 경우에 중복되는 값을 지우게 되면 보기 더 편하게 됩니다. ​ 1. 중복값 지우기 매크로 1 ​ 가. 모듈 추가 ​ 시명칭이 윗 셀과 동일하다면 맨 윗 것만 남겨두고, 나머지는 빈 셀로 표시하는 것입니다. 이런 것은 VBA로 처리할 수밖에 없습니다. ​ 개발도구 - Visual Basic으로 들어간 다음 ​ 윗셀과같은셀지우기.xlsx 파일이 선택된 상태에서, 삽입 - 모듈을 클릭하거나 ​ 사용자정의폼 등 콤보상자 버튼을 누른 후 모듈을 클릭해서 ​ 윗셀과같은셀지우기.xlsx 파일에 모듈을 추가합니..

EXCEL - VBA 2020.07.09
반응형