오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
학습노트

VBA 2일차

A
ABC
6월 18일 조회 119
1. DIM(Declare In Memory): 변수선언
(1) 논리값: Boolean (2byte)     (True / False)
(2) 정수 (0): Long (4byte)        (-20억 ~ 20억)
(3) 실수 (0.0): Double (8byte)   (10^300 ~ 무한대)
(4) 문자: String (16byte)          (20억개까지 가능)
(5) 개체 등: Object, Variant (4~22byte)
필수는 아니지만 변수를 선언하지 않으면 variant로 기본설정되어 속도가 느려지고 오탈자방지할 수도 없음.
2. Set: 변수할당
(1), (2), (3), (4)는 값
(5)의 개체는 값이 아니기에 set을 붙여서 선언함.
-> 자주 누락하니 기억할 것
3. 실습코드1
Sub 장보기()
Dim i As Long
Dim s As String
Dim Rng As Range
i = 1
s = "사과"
Set Rng = Range("A1")
MsgBox Rng.Value
MsgBox Rng.Font.Size
End Sub
4. 디버깅 방법
(1) F8을 눌러 단계별 실행
(2) F9로 중단점 설정 후 실행
(3) 코드 중간 멈출 지점에 Stop 입력하기
5. 단축키
F2: 모든 개체 라이브러리 보기
F7: 코드 편집기 이동
6. 파일, 시트, 범위
(1) Dim 통합문서 As WorkBook
1) Set 통합문서 = ThisWorkBook
2) Set 통합문서 = ActiveWorkBook
3) Set 통합문서 = Application.WorkBook.Open(경로)
(2) Dim 시트 As WorkSheet
1) Set 시트 = ActiveSheet
2) Set 시트 = 통합문서.WorkSheets("시트이름" or 순번)
3) Set 시트 = SheetX -> VBA프로젝트 창의 Sheet1, Sheet2... 등
(3) Dim 범위 As Range
1) Set 범위 = 시트.Range("A1:A2")
2) Set 범위 = 시트.Cells(행번호,열번호)
3) Set 범위 = Selection -> 현재 선택된 범위 직접 받아오는 방식
7. 실습코드2
Sub test()
Dim WB As Workbook
Dim WS As Worksheet
Dim Rng As Range
Set WB = ThisWorkbook
MsgBox WB.Name
MsgBox WB.Path
Set WS = WB.Worksheets("1월매출")
WS.Activate
Set Rng = WS.Range("C5")
MsgBox Rng.Value
End Sub
8. For: 반복문   cf) Do Loop
1) For문 기본형식
For i = 시작 to 끝
i를 활용한 작업
Next
2) For Each문 기본형식
For Each 개체 to 개체모음
개체를 활용한 작업
Next
3) 코드상 Exit For 기재: For문이 완료되기 전에 강제로 종료
4) Debug.Print: '직접 실행'창에 값을 출력함.
9. If: 조건문
1) If문 기본형식
If 조건 then
참일 경우
Else
거짓일 경우
End If
2) 다중 If문 기본형식
If 조건1 then
조건1이 참일 경우
Else If 조건2 then
조건2가 참일 경우
Else
나머지일 경우
End If
3) Select Case문: 조건이 많다면 사용하기
10. 실습코드
(1) 목차에 하이퍼링크 걸기
Sub CreateToC()
Dim WB As Workbook
Dim WS As Worksheet
Dim i As Long
Set WB = ThisWorkbook
Set WS = WB.Worksheets("목차")
For i = 1 To WB.Worksheets.Count
    
    'Debug.Print WB.Worksheets(i).Name&"!A1"
    
    WS.Range("C" & i).Value = WB.Worksheets(i).Name
    
    'Anchor = 링크를 추가할 셀
    'Address = 웹페이지 주소 or 파일경로
    'SubAddress = [선택인수] 내부시트 이동경로
    '시트이름!A1
    
    WS.Hyperlinks.Add WS.Range("C" & i), " ", WB.Worksheets(i).Name & "!A1"
Next
End Sub
(2) 찾기 및 바꾸기
Sub FindReplace()
Dim WS As Worksheet
Dim FindValue As String
Dim ReplaceValue As String
Dim Rng As Range
Dim R As Range
Set WS = ThisWorkbook.Worksheets("확진자경로")
FindValue = WS.Range("J4").Value
ReplaceValue = WS.Range("J5").Value
MsgBox FindValue & "," & ReplaceValue
Set Rng = Selection
'MsgBox Rng.Address
For Each R In Rng
    If R.Value = FindValue Then R.Value = ReplaceValue
Next
End Sub
<과제>
(1)

Sub FillNumber()

Dim i As Long

For i = 1 To 10
Range("A" & i) = i
Next

End Sub

 

(2)


Sub AddSheetTails()

Dim WS As Worksheet

For Each WS In ThisWorkbook.Worksheets
WS.Name = WS.Name & "완료"
Next


End Sub

댓글 0

학습기록 게시판의 최근 글

스크랩 완료