본문 바로가기
VBA

VBA 4주 완성 : 엑셀업무 자동화 -2주차 1교시-

by keumkang 2022. 7. 9.
반응형

엑셀LIVE102강 - VBA 4주 완성 특별스터디 2강 - 예제파일.xlsx
0.03MB

 

 

반응형

 

2주차 강의 내용 -1교시-

DIM(Declare In Memory) - 변수선언

- DIM은 쇼핑할 때 쇼핑리스트 라고 생각하시면 이해하기 쉬워요. 변수가 어디 있고, 얼마인지 알면 준비가 쉬워집니다.

 

여기서 최소한 정수(Long)와 문자(String) 정도는 알고 계시면 괜찮을 것 같습니다!

 

변수선언 꼭 해야하나요?

- 정답은 No! 필수는 아닙니다. 단.. 변수를 선언하지 않을 경우 힘들어집니다....ㅜ

 

변수를 설정하지 않을 경우 ⑤에서 Variant로 설정이 됩니다. 또한 변수를 설정하지 않으면 오탈자 검사가 진행되질 않아요

 

 

Set- 변수 할당

①~④ 까지는 값입니다. 반면 ⑤는 값이 아닙니다..따라서 개체를 할당할 때 사용하는 함수 입니다. 

 

VBA를 초보자가 가장 자주하는 실수가 Set 함수를 누락하는 거라고 하네요 ㅎㅎ 많이 작성하면 저절로 해결된다고 합니다!

개체의 목록은 VBA 매크로 안에서 "F2"를 누르시면 개체 목록이 뜹니다!

 

실무 VBA에서는 파일, 시트, 범위만 알면 충분합니다.

 

'DIm으로 통합문서를 WorkBook 으로 할당하고자 합니다.
DIm 통합문서 As WorkBook
★★★ ① Set 통합문서 = ThisWorkBook '지금 쓰고있는 문서를 볼 것이다.
 ② Set 통합문서 = ActiveWorkBook '지금 문서가 아니라 활성화된 통합문서를 할당
 ③ Set 통합문서 = Application.Workbooks.Open(경로) '(경로)에 있는 특정 파일을 실행해서 통합문서로 만들기
'시트라는 이름으로 WorkSheet를 만듦
DIm 시트 As WorkSheet
 ① Set 시트 = ActiveSheet '현재 활성화 된 Sheet를 보겠다
 ② Set 시트 = 통합문서.WorkSheet("시트이름" or 순번) '통합문서 안에 어떤 Worksheet를 볼건데 시트이름을 입력하거나 시트번호를 입력해서 보겠다.
 ③ Set 시트 = Sheet1 

Dim 범위 As Range
① Set 범위 = 시트.Range("A1:A2") 
② Set 범위 = 시트.Cells(행번호,열번호) 
③ Set 범위 = Selection

예제-1

Sub 장보기()

'i를 숫자(Long)로 변수선언!
Dim i As Long

's를 문자(String)로 변수선언!
Dim s As String

'Rng를 범위(Range)로 변수선언!
Dim Rng As Range

i = 1
s = "사과"
Rng = Range("A1")

End Sub

오류가 발생했습니다.. 왜 그런걸까요? ㅜㅜㅜ

Sub 장보기()

'i를 숫자(Long)로 변수선언!
Dim i As Long

's를 문자(String)로 변수선언!
Dim s As String

'Rng를 범위(Range)로 변수선언!
Dim Rng As Range

i = 1
s = "사과"
'Range 변수는 개체인데 Set 함수를 사용해야만 변수로 인식이 됩니다.
Set Rng = Range("A1")

End Sub

 

실습-1

'통합문서선언
Dim WB As Workbook
 
 
 
'특정 시트선언 Worksheet(특정 Sheet만 할당), Worksheets(모든 Sheet 할당)
Dim WS As Worksheet
 
'범위선언
Dim Rng As Range
 
'현재 실행중인 통합문서를 WB로 할당
Set WB = ThisWorkbook
 
'WB 통합문서에서 "1월매출" 시트를 확인
Set WS = WB.Worksheets("1월매출")
 
' "1월매출"시트 활성화
WS.Activate
 
 
'1월매출 시트에 C5셀로 설정
Set Rng = WS.Range("C5")
 
MsgBox Rng.Value

 

반응형

댓글0