도움말을 번역한 내용입니다.
변수를 선언할 때, 일반적으로 Dim 문을 사용합니다. 선언문은 프로시저 내에서 프로시저 수준의 변수를 생성하도록 프로시저 내에 위치시킬 수 있습니다. 또는 모듈의 맨 위에 있는 선언 섹션(Declarations section)에 위치시켜 모듈 수준의 변수를 생성할 수도 있습니다.
다음 예제는 변수를 생성하고 String 데이터 유형을 지정합니다.
Dim strName As String
이 문이 프로시저 내에 나타나면 변수 strName은 해당 프로시저에서만 사용할 수 있습니다. 이 문이 모듈의 선언 섹션에 나타나면 모듈 내의 모든 프로시저에서 strName 변수를 사용할 수 있지만 프로젝트의 다른 모듈에 있는 프로시저에서는 사용할 수 없습니다.
Dim strName As String
Sub Procedure1()
' Procedure1 프로시저 내에서 변수 strName을 사용합니다.
strName = "John" ' strName 변수에 "John"이라는 문자열 값을 할당합니다.
Debug.Print "Name in Procedure1: " & strName ' 변수 strName의 값을 메시지 박스로 출력합니다.
End Sub
Sub Procedure2()
' Procedure2 프로시저 내에서 변수 strName을 사용합니다.
Debug.Print "Name in Procedure2: " & strName ' 변수 strName의 값을 메시지 박스로 출력합니다.
End Sub
프로젝트의 모든 프로시저에서 이 변수를 사용할 수 있게 하려면 다음 예제에서와 같이 Public 문을 앞에 붙입니다.
Public strName As String
변수는 다음 데이터 유형 중 하나로 선언할 수 있습니다Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (for variable-length strings), String * length (for fixed-length strings), Object, or Variant.
Sub VariableExample()
Dim flag As Boolean
flag = True
Dim age As Byte
age = 30
Dim count As Integer
count = 100
Dim population As Long
population = 5000000
Dim price As Currency
price = 19.99
Dim temperature As Single
temperature = 25.5
Dim pi As Double
pi = 3.14159265358979
Dim today As Date
today = Date
Dim name As String
name = "John Doe"
Dim address As String * 10
address = "123 Main St"
Dim obj As Object
Set obj = CreateObject("Scripting.Dictionary")
Dim data As Variant
data = "Hello, World!"
' 변수들을 문자열로 변환하여 출력
Debug.Print "Boolean: " & flag & vbCrLf & _
"Byte: " & age & vbCrLf & _
"Integer: " & count & vbCrLf & _
"Long: " & population & vbCrLf & _
"Currency: " & price & vbCrLf & _
"Single: " & temperature & vbCrLf & _
"Double: " & pi & vbCrLf & _
"Date: " & today & vbCrLf & _
"String: " & name & vbCrLf & _
"Fixed-length String: " & address & vbCrLf & _
"Object: " & TypeName(obj) & vbCrLf & _
"Variant: " & CStr(data)
End Sub
데이터 유형을 지정하지 않으면 기본적으로 Variant 데이터 유형이 할당됩니다.
Type 문을 사용하여 사용자 정의 유형을 만들 수도 있습니다.
Type EmployeeInfo
Name As String
Age As Integer
Salary As Double
End Type
Sub Example()
Dim employee As EmployeeInfo
With employee
.Name = "Kim"
.Age = 30
.Salary = 50000
End With
Debug.Print "Name: " & employee.Name
Debug.Print "Age: " & employee.Age
Debug.Print "Salary: $" & employee.Salary
End Sub
Type Person
Name As String
Age As Integer
Height As Double
IsStudent As Boolean
End Type
Sub UserDefinedTypeExample()
' Person 유형의 변수를 생성합니다.
Dim person1 As Person
Dim person2 As Person
' person1 변수에 값을 할당합니다.
With person1
.Name = "John Doe"
.Age = 30
.Height = 175.5
.IsStudent = False
End With
' person2 변수에 값을 할당합니다.
With person2
.Name = "Jane Smith"
.Age = 25
.Height = 162.3
.IsStudent = True
End With
' person1과 person2의 정보를 출력합니다.
Debug.Print "Person 1:" & vbCrLf & _
"Name: " & person1.Name & vbCrLf & _
"Age: " & person1.Age & vbCrLf & _
"Height: " & person1.Height & vbCrLf & _
"IsStudent: " & person1.IsStudent & vbCrLf & vbCrLf & _
"Person 2:" & vbCrLf & _
"Name: " & person2.Name & vbCrLf & _
"Age: " & person2.Age & vbCrLf & _
"Height: " & person2.Height & vbCrLf & _
"IsStudent: " & person2.IsStudent
End Sub
하나의 문에 여러 변수를 선언할 수 있습니다. 데이터 유형을 지정하려면 각 변수에 대한 데이터 유형을 포함해야 합니다.
다음 문에서 intX, intY 및 intZ 변수는 Integer 유형으로 선언됩니다.
Dim intX As Integer, intY As Integer, intZ As Integer
선언문에 변수의 데이터 유형을 제공하지 않아도 됩니다. 데이터 유형을 생략하면 변수의 유형은 Variant가 됩니다.
위 문에서 x와 y를 Integer로 선언하는 약어는 다음과 같습니다.
Dim intX%, intY%, intZ as Integer
Public statement
Public 문을 사용하여 public module-level변수를 만듭니다.
Public strName As String
Public 변수는 프로젝트 내의 모든 절차(함수나 서브루틴)에서 사용될 수 있습니다. Public 변수가 표준 모듈이나 클래스 모듈에서 선언되었다면, 해당 프로젝트를 참조하는 다른 프로젝트에서도 사용될 수 있습니다.
Private statement
Private 문을 사용하여 private module-level 변수를 선언합니다.
Private MyName As String
Private 변수는 같은 모듈에 있는 프로시저에서만 사용할 수 있습니다.
Note:
모듈 수준에서 사용되는 경우 Dim 문은 Private 문과 동일합니다. 코드를 더 쉽게 읽고 해석할 수 있도록 Private 문을 사용하는 것이 좋습니다.
Static statement
프로시저에서 변수를 선언할 때 Dim 문 대신 Static 문을 사용하면 선언된 변수는 해당 프로시저를 호출하는 사이에 해당 값을 유지합니다.
Sub ExampleProcedure()
Static count As Integer
count = count + 1
Debug.Print "Count: " & count
End Sub
Option Explicit statement
Visual Basic에서는 할당 문에 변수를 사용하는 것만으로 변수를 암시적으로 선언할 수 있습니다. 암시적으로 선언된 모든 변수는 Variant 유형입니다. Variant 유형의 변수는 대부분의 다른 변수보다 더 많은 메모리 리소스를 필요로 합니다. 특정 데이터 유형으로 명시적으로 변수를 선언하면 애플리케이션의 효율성이 높아집니다. 모든 변수를 명시적으로 선언하면 이름 충돌 오류와 철자 오류의 발생률이 줄어듭니다.
Visual Basic에서 암시적 선언을 하지 않도록 하려면 프로시저 앞에 Option Explicit 문을 모듈에 배치하면 됩니다. 이 문을 사용하려면 모듈 내의 모든 변수를 명시적으로 선언해야 합니다. 모듈에 Option 명시문이 포함된 경우 Visual Basic에서 이전에 선언되지 않았거나 철자가 잘못된 변수 이름을 발견하면 컴파일 시 오류가 발생합니다.
Visual Basic 프로그래밍 환경에서 옵션을 설정하여 모든 새 모듈에 Option Explicit 문을 자동으로 포함할 수 있습니다. 이 옵션은 작성한 기존 코드를 변경하지 않는다는 점에 유의하세요.
도움말 출처
Declaring variables (VBA)
Office VBA reference topic
learn.microsoft.com
'언어 참조' 카테고리의 다른 글
Variant 이해하기 (0) | 2023.07.28 |
---|---|
상수 선언 및 사용 (0) | 2023.07.28 |
데이터 타입을 효율적으로 사용하기 (0) | 2023.07.28 |
Visual Basic 명명 규칙 (0) | 2023.07.28 |
Visual Basic 구문 이해 (0) | 2023.07.28 |