[변수선언]
Dim 변수명 As 데이터타입
변수명 = 값
[변수선업 옵션]
VBE창 [도구] - [옵션] - 변수 선언 요구
체크하면 : 선언되지 않은 변수는 사용할 수 없음 (창 상단에 Option Explicit)
체크하지 않으면 : 선언없이 변수를 사용할 수 있음
[상수선언]
Const 상수명 As 데이터타입 = 값
[메시지박스]
Msgbox prompt, buttons, title
Msgbox 메시지내용, 버튼종류, 타이틀명
ex) Msgbox "안녕하세요" , vbOkOnly, '메시지창'
[입력창]
InputBox prompt, title
InputBox 메시지내용, 타이틀명
InputBox "입력하세요", "입력창"
단, 입력된 값을 변수에 넣을 경우, InputBox ("입력하세요", "입력창")
[개체변수]
Dim 변수명 as 개체타입
ex) Dim 시작위치 As Range
set 시작위치 = Range("A1")
엑셀 작업시 영역을 지정하여 [이름정의]하여 사용하는 것이 좋다.
[배열변수]
Dim 변수명(배열갯수-1) As 데이터타입
[동적배열] - 배열의 갯수를 정확히 모를 경우
Dim 변수명() As 데이터 타입
Redim 변수명(8) // 배열의 갯수를 확정 짓는다
배열의 갯수가 부족하여 늘릴경우
Redim 변수명(9)
확장이 가능하다. (단점 : 배열의 값을 다 지운후에 다시 배열한다.)
Redim Preserve 변수명(9)
※ Preserve를 사용하면 배열의 값을 지우지 않고 배열의 값을 늘린다.
[LBound, UBound함수]
LBound 함수 : 배열의 첫번째 방의 인덱스 번호를 반환
UBound 함수 : 배열의 마지막 방의 인덱스 번호를 반환
동적배열변수의 방의 갯수를 알고자 할 경우,
UBound(변수명) - LBound(변수명) + 1
※ 배열의 첫번째 인덱스가 무조건 0이 아니기 때문에
[For Each ... Next]문
// 워크시트의 이름과 특정 셀의 값을 "점수"라는 워크시트로 가져오기
Dim sheet As Worksheet
Dim i As Integer
Range("B3:C9").ClearContents
i = 3
For Each sheet In ThisWorkbook.Worksheets
If sheet.Name <> "점수" Then
Range("B" & i).Value = sheet.Name
Range("C" & i).Value = sheet.Range("D2").Value
i = i + 1
End If
Next
[속도를 높이기 위한 엑셀기능 비활성화]
- 매크로 작업전에 설정해 놓음
'참조된 값 계산
Application.Calculation = xlCalculationManual
'이벤트 활성
Application.EnableEvents = False
' 화면 업데이트
Application.ScreenUpdating = False
- 스크립트 마지막에 다시 복원함
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
'IT 관련 > 엑셀' 카테고리의 다른 글
VBA 워크시트, 이벤트 (0) | 2013.11.22 |
---|---|
엑셀 VBA 위치함수 (range, 찾기, offset) (0) | 2013.11.21 |
VBA 코드 (주석, 프로시저 호출) (0) | 2013.11.20 |
엑셀 1일차 - 구버전과 신버전 차이, 매크로 (0) | 2013.11.20 |