반응형

분류 전체보기 28

콜라츠 추측

콜라츠 추측 (Collatz conjecture) 자연수 n에 대해 n이 짝수면 반으로 나누고 n이 홀수면 3배에 1을 더하는 것을 반복하다보면 결국에 1이 된다는 문제 $$ f(n) = \left\{\begin{matrix} \frac{n}{2}, & \rm if ~ \it n ~ \rm is ~ even \\ 3n + 1, & \rm if ~\it n ~\rm is ~odd \end{matrix}\right. $$ 정말 1이 되는지 VBA를 이용해서 확인해보자. 우선 시트에 다음과 같이 입력하고 실행버튼의 이름은 Collatz로 지정했다. 그리고 실행버튼에 다음 코드를 연결해준 후 실행하면 Sub Collatz_Click() Dim i As Long, num As Long [B6:C1048576] =..

Excel VBA 응용 2023.11.29

Excel VBA - Cell 값을 다른 Cell에 복사하기

Cell 값을 다른 Cell에 복사하기 VBA 코드를 작성하다보면 특정 Cell에 있는 값을 다른 Cell에 복사해야 하는 경우가 종종 있다. 가장 간단한 예로 하나의 Cell에 있는 값을 다른 Cell에 옮겨보자. A1 Cell에 문자가 있는 상황에서 (숫자가 있어도 된다) Sub Button_Click() [C2] = [A1] End Sub 위 코드를 실행하면 다음과 같이 C2 Cell에 A1 Cell의 내용이 복사된다. 하나의 Cell이 아닌 범위를 복사해보자. 다음과 같이 A1~A3에 숫자가 입력된 상황에서 Sub Button_Click() [C2:C4] = [A1:A3] End Sub 위 코드를 실행하면 C2~C4 에 A1~A3의 숫자가 복사될 것으로 예상하겠지만 아무 일도 일어나지 않는다. 다..

Excel VBA 기초 2023.11.26

Excel VBA - Columns, Rows

Columns Range와 비슷한 용도로 사용할 수 있는데 열을 한꺼번에 지정할 때는 Columns를 사용하면 된다. Sub Button_Click() Columns(1) = 1 End Sub Columns(1) 에서 1은 1번째 열 즉, A 열을 의미한다. 위 코드는 A 열을 1로 채우라는 거다. Range("A:A") = 1 과 같다. 실행 결과 A1부터 A1048576까지 1로 가득 채워졌다. Columns 뒤 괄호 안의 숫자를 바꿔보자. Sub Button_Click() Columns(3) = 7 End Sub Columns(3) 에서 3은 3번째 열 즉, C 열을 의미한다. 위 코드는 C열을 7로 채우라는 거다. 실행 결과 C1부터 C1048576까지 7로 가득 채워졌다. 다음과 같이 숫자 대신..

Excel VBA 기초 2023.11.24

Excel VBA - 다중 Cell 범위 지정하기

Range 다중 Cell 범위를 지정하는 방법은 단일 Cell을 지정하는 것과 비슷하다. Range를 이용해서 단일 Cell을 지정할 때는 Range("A1") 처럼 " " 안에 하나의 Cell 주소를 입력하면 되었는데 다중 Cell 범위를 지정할 때는 Range("A1:B3") 처럼 " " 안에 처음 Cell과 마지막 Cell의 주소를 입력하고 중간에 : (colon)을 넣어야 한다. 범위는 왼쪽 위와 오른쪽 아래 끝 Cell의 주소다. 다음과 같이 코드를 입력한 후 실행버튼을 클릭하면 Sub Botton_Click() Range("A1:B3") = 5 End Sub A1에서 B3까지 범위에 숫자 5가 입력된다. 다음과 같이 Range("Cell 주소", "Cell 주소") 로 입력해도 된다. " " ..

Excel VBA 기초 2023.11.19

Excel VBA - 단일 Cell 지정하기

Range Excel Sheet의 특정 Cell 주소를 지정하는 방법으로 Range 가 있다. 다음 그림에 있는 코드를 넣어보자 Sub Button_Click() Range("A1") = 1 Range("B2") = 1 End Sub 위에 입력한 코드는 A1 Cell에 1을 입력하고 B2 Cell에 2를 입력하라는 것이다 참고로 Cell 주소는 A1 대신 a1, B2 대신 b2 처럼 소문자로 써도 아무 문제 없다. 실행버튼을 클릭하면 다음과 같이 A1, B2 Cell에 숫자가 입력된다. 숫자를 입력하려면 Range("Cell 주소") = 숫자 를 사용하면 되지만 문자를 입력하려면 Range("Cell 주소") = "문자" 즉, " " 를 써야 한다. Sub Button_Click() Range("A1")..

Excel VBA 기초 2023.11.19

Excel VBA - 실행버튼 만들기

실행버튼 VBA 코드 실행버튼을 만들면 원할 때 코드를 실행할 수 있다. 실행버튼은 그림이나 사진으로 만들 수 있지만 도형으로 만들면 깔끔해서 좋다. [삽입] 탭 - [일러스트레이션] 그룹 - [도형] 에서 직사각형을 선택하여 삽입한다. (다른 모양의 도형을 선택해도 된다.) 도형 삽입 시 Alt 키를 누른 상태에서 마우스를 끌면 셀 경계선에 맞춰서 크기를 조절할 수 있어서 편리하다. 삽입한 도형을 마우스 우클릭하면 [텍스트 편집]을 할 수 있다. [도형 서식] 탭 - [도형 스타일] 그룹에서 삽입한 도형의 색을 편집할 수 있다. Excel의 수식 창 왼쪽에 [이름 상자] 가 있다. 도형을 선택한 후 이름을 바꿔보자. "Button" 이라고 바꿨다. (다른 이름으로 바꿔도 된다.) [개발도구] 탭 - [..

Excel VBA 기초 2023.11.18

Excel VBA - VBA Editor 살펴보기 (1)

VBA Editor VBA Editor는 크게 4가지 창으로 구분할 수 있다. 1. 메뉴 2. 프로젝트 탐색기 3. 속성 창 4. 코드 창 메뉴는 본체인 Excel과 다르게 리본 메뉴가 아닌 옛날 메뉴와 아이콘으로 구성되어 있다. 코드를 1줄씩 실행하거나, 암호를 걸어서 코드를 볼 수 없게 만드는 기능 등을 할 수 있다. 프로젝트 탐색기에는 현재 활성화된 엑셀 파일의 Sheet와 Module 등이 표시되어 있다. 파일이 2개 이상 활성화되어 있으면 각각의 Sheet와 Module 등이 각각 따로 표시된다. 속성 창에는 각 Sheet, Module 등의 속성이 표시되어 있는데 Sheet의 이름을 바꾸거나 숨김 처리하는 등의 선택을 여기서 할 수 있다. 코드 창에서는 Visual Basic 코드를 작성할 수..

Excel VBA 기초 2023.11.18

Excel VBA - 메뉴 활성화

VBA Excel에는 사용자가 직접 프로그램을 만들 수 있도록 프로그래밍 언어가 내장되어 있다. VBA (Visual Basic for Applications) 인데, 수식과 함수로도 많은 일을 할 수 있지만 VBA를 이용하면 클릭 한번으로 많은 기능을 한번에 수행할 수 있으니 배워두는 것이 좋다. VBA Editor 실행하기 VBA Editor 창을 실행하기 위해서는 단축키인 Alt + F11 을 누르면 된다. 또는 메뉴에서 [개발 도구] 탭 - [코드] 그룹 - [Visual Basic] 을 선택하거나 [개발 도구] 탭 - [컨트롤] 그룹 - [코드보기] 를 선택하면 된다. 그런데 기본적으로 리본 메뉴에는 [개발 도구] 탭이 활성화되어 있지 않다. [파일] 탭 - [옵션] - [리본 사용자 지정] -..

Excel VBA 기초 2023.11.18
반응형