반응형

반복문 7

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

구구단 만들기(6) (엑셀 VBA 디버깅 2)

나. 조사식 추가 ① 지역 창에서도 변수의 변화 상태를 알 수 있지만, 아래와 같이 원하는 변수에 커서를 넣고 마우스 오른쪽 버튼을 누르거나, 디버그 - 조사식 추가 메뉴를 누르면 ② 아래와 같이 단순히 변수의 변동 상태뿐만 아니라, '값이 True일 때 중단' 또는 '값이 변경될 때 중단'이란 옵션이 있습니다. 변수에 커서를 넣지 않고 조사식 추가를 누른 경우는 직접 변수를 입력해도 됩니다. ③ '값이 True일 때 중단'이란 옵션을 선택하려면 먼저 윗부분의 '식'이란 부분에 i=3 식으로 조건 식을 먼저 입력해야 하며, 입력 후 확인 버튼을 클릭합니다. ④ 그러면 화면 오른쪽 아랫부분에 조사식 창이 추가되면서 i=3 이란 수식이 추가됩니다. 지역 창에 보이는 i와 다릅니다. ⑤ 이제 실행 버튼을 눌러..

EXCEL - VBA 2022.12.15

엑셀 VBA - 배열(2)

5. ReDim 가. 정의 ReDim을 배열의 크기를 재설정하는 것입니다. 처음에는 배열의 크기를 모르거나 배열의 크기가 유동적으로 변하는 경우 사용합니다. 나. ReDim 문 데이터는 아래와 같이 작성했습니다. Dim intNum(3) As Integer라고 이미 배열의 크기를 선언한 상태에서 ReDim intNum(5)라고 하면 아래와 같이 에러가 발생합니다. 따라서, 배열의 크기는 지정하지 않고, Dim intNum() as integer라고 한 다음 ReDim intNum(5)라고 해야 에러가 발생하지 않습니다. 그다음부터는 ReDim intNum(6)이라고 해도 에러가 발생하지 않습니다. Option Explicit Option Base 1 Sub 변수선언() Dim i As Integer Di..

EXCEL - VBA 2022.12.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

윗셀과 같은 값 지우기(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
반응형