본문 바로가기
개발/Tools

Excel VBA 정리

by BENGGRI 2021. 6. 1.
반응형

두서없이 일단 정리


먼저 vba 를 사용하기 위해서는 엑셀에서 설정을 해야합니다.

파일-옵션-리본 사용자 지정- 개발 도구
를 체크 후 엑셀 재시작

상단 메뉴 개발도구-Visual Basic 클릭 시 소스를 작성할 수 있는 화면이 표시됩니다.

왼쪽 프로젝트 창에서 우클릭-삽입-모듈 or 클래스 모듈
을 클릭하면 소스 코드를 작성할 수 있습니다.

상단 메뉴 보기-직접 실행창(Ctrl+G)클릭 시 디버깅을 할 수 있는 콘솔 창이 표시됩니다.

Debug.Print 문자 ' 콘솔에 문자 노출
MsgBox 문자 ' 메세지 박스 문자 노출

1. 선언

1. 변수

Dim 변수명 As 데이터타입
예:)
Dim test As String
Dim test As Range

ㅁ 선언과 동시 값 할당
Dim idx As Integer: idx = 1
Dim ra As Range: Set ra = Range("A1")


2. 함수
1. 리턴이 있는 함수
Private Function 함수명(파라미터 As 데이터타입) As 리턴타입
함수명 = 값 ' 리턴 방법
' 함수 종료 방법
Exit Function
End Function

2. 리턴이 없는 함수
Sub 함수명(파라미터 As 데이터타입)
End Sub

3. Type

Type 타입명
변수명 As 데이터타입
변수명2 As 데이터타입
End Type


4. Class

1. 변수
ㅁ 클래스 생성 후 선언부에서 변수를 선언하고 함수 등을 만들 수 있습니다
Public 이름 As 데이터타입
Private 이름 As 데이터타입
ㅁ 접근제한자 별로 선언할 수 있습니다.

2. Property
java Getter Setter 같은 느낌

ㅁ 꿀팁

Dim 클래스 As 사용자클래스
클래스.변수 = 값
클래스.변수2 = 값2

이렇게 하나씩 하지 않고 With 문을 이용해 한번에 할 수 있다.

Dim 클래스 As 사용자클래스
with 클래스
.변수 = 값
.변수2 = 값2
End With



2. 변수 값 할당

변수명 = 값
Set 변수명 = 값
Set 을 사용하는 경우는 참조형인 경우로 이해하고 있는데 정확한 내용은 아래 공식 홈페이지를 참고하시면 좋을 것 같습니다.
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/set-statement

Set statement (VBA)

Set statement In this article --> Assigns an object reference to a variable or property. Syntax Setobjectvar = {[ New ] objectexpression | Nothing } The Set statement syntax has these parts: Part Description objectvar Required. Name of the variable or prop

docs.microsoft.com


3. 데이터타입

기본형

참조형


4. 구문


1. 반복문


For i=1 To 10
Next i

For i=10 To 1 Step -1
Next i

For Each 객체 In 배열
Next 객체

ㅁ break, continue 효과 내기
GoTo 이름
이름:

2. 조건문

If 조건 Then
ElseIf 조건 Then
Else
End If

ㅁ 꿀팁

Map 과 비슷한 Dictionary 객체
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
' CreateObject 는 기본 함수

key 와 value 로 이루어져있음

개발 도구-매크로 기록 클릭 후
엑셀에서 셀 수정 및 기타 작업(서식, 유효성 검사, 값 수정 ... 등) 시 해당 기능 구현 소스 코드가 작성되어 편리합니다.

반응형

댓글