이 글은 도움말을 번역한 글입니다.
Visual Basic의 문은 완전한 명령어입니다. 키워드, 연산자, 변수, 상수 및 표현식을 포함할 수 있습니다. 각 문은 다음 세 가지 범주 중 하나에 속합니다:
선언문
선언문: 변수, 상수 또는 프로시저의 이름을 지정하고 데이터 유형을 지정할 수도 있습니다.
' 변수 선언 (Declaration statement)
Dim age As Integer ' 나이를 저장할 정수형 변수 선언 (Declaring an integer variable to store age)
' 상수 선언 (Declaration of constant)
Const PI As Double = 3.14159 ' 원주율을 저장할 상수 선언 (Declaring a constant to store the value of PI)
' 프로시저 선언 (Declaration of procedure)
Sub GreetUser() ' 사용자를 인사하는 절차 선언 (Declaring a procedure to greet the user)
MsgBox "안녕하세요! VBA를 공부하고 있습니다." ' 메시지 박스로 사용자에게 인사 (Greeting the user with a message box)
End Sub
할당문
변수나 상수에 값이나 표현식을 할당하는 할당문.
Sub AssignmentExample()
' 변수 선언 (Variable declaration)
Dim number1 As Integer ' 정수형 변수 선언 (Declaring an integer variable)
' 상수 선언 (Constant declaration)
Const PI As Double = 3.14159 ' 원주율을 저장할 상수 선언 (Declaring a constant to store the value of PI)
' 값 할당 (Assignment of value)
number1 = 10 ' 변수에 값 할당 (Assigning the value 10 to the variable)
' 식 할당 (Assignment of expression)
Dim result As Double ' 실수형 변수 선언 (Declaring a double variable)
result = PI * number1 ' 식을 이용하여 변수에 값 할당 (Assigning the result of the expression to the variable)
' 결과 출력 (Displaying the result)
MsgBox "결과: " & result ' 메시지 박스로 결과 출력 (Displaying the result using a message box)
End Sub
실행문
실행 문: 작업을 시작하는 문입니다. 이러한 문은 메서드나 함수를 실행할 수 있으며 코드 블록을 반복하거나 분기할 수 있습니다. 실행 문에는 종종 수학 연산자 또는 조건 연산자가 포함됩니다.
예제 코드 - 1
Sub ExcelRangeSetValue()
' Range 개체의 값 설정 메서드 예제
' 워크시트 변수 선언 및 할당 (Declare and assign a worksheet variable)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' "Sheet1" 시트를 ws에 할당합니다.
' 범위 객체 변수 선언 및 할당 (Declare and assign a range object variable)
Dim rng As Range
Set rng = ws.Range("A1:B5") ' A1부터 B5까지의 범위를 rng에 할당합니다.
' 값 설정 (Set values)
rng.Value = "Hello" ' rng 범위의 모든 셀에 "Hello" 값을 설정합니다.
' 메시지 박스로 결과 출력 (Display the result in a message box)
MsgBox "셀에 'Hello' 값이 설정되었습니다."
End Sub
예제 코드 - 2
Sub ExcelRangeClearContents()
' Range 개체의 ClearContents 메서드 예제
' 워크시트 변수 선언 및 할당 (Declare and assign a worksheet variable)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' "Sheet1" 시트를 ws에 할당합니다.
' Range 개체 변수 선언 및 할당 (Declare and assign a range object variable)
Dim rng As Range
Set rng = ws.Range("A1:E10") ' A1부터 E10까지의 범위를 rng에 할당합니다.
' 값 설정 (Set values)
rng.Value = "Hello" ' rng 범위의 모든 셀에 "Hello" 값을 설정합니다.
' ClearContents 메서드 사용 (Using the ClearContents method)
rng.ClearContents ' rng 범위의 셀 내용을 모두 지웁니다.
' 메시지 박스로 결과 출력 (Display the result in a message box)
MsgBox "셀의 내용이 지워졌습니다."
End Sub
예제 코드 - 3
Sub RecordsetExample()
' Range 개체의 CopyFromRecordset 메서드 예제
' 참조 없이 Late Binding으로 ADODB 객체 생성 (Late binding with ADODB objects without reference)
Dim rst As Object
Dim sConn As String
Dim sSQL As String
Dim rg As Range
On Error GoTo ErrHandler
Set rg = ThisWorkbook.Worksheets(1).Range("A1")
' Recordset 객체 생성 (Create Recordset object)
Set rst = CreateObject("ADODB.Recordset") ' Late Binding을 위해 CreateObject 함수 사용
sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\download\Northwind.accdb;"
sSQL = "SELECT [Last Name], [First Name], [Job Title] FROM Employees"
' Late Binding으로 Recordset 열기 (Open Recordset with late binding)
rst.Open sSQL, sConn
' 필드명 출력 (Output field names)
Dim col As Integer
For col = 0 To rst.Fields.Count - 1
rg.Offset(0, col).value = rst.Fields(col).Name
Next col
' 데이터 출력 (Output data)
rg.Offset(1, 0).CopyFromRecordset rst
rg.CurrentRegion.Columns.AutoFit
' 레코드셋 및 Range 개체 닫기 (Close Recordset and Range object)
rst.Close
Set rst = Nothing
Set rg = Nothing
Exit Sub
ErrHandler:
MsgBox "죄송합니다. 오류가 발생했습니다. " & Err.Description, vbOKOnly
End Sub
예제 코드 - 4
Sub LoopExample()
Dim i As Integer
For i = 1 To 5 ' 1부터 5까지 반복문 실행
MsgBox "반복: " & i ' 메시지 박스에 현재 반복 횟수를 표시합니다.
Next i
End Sub
예제 코드 - 5
Sub BranchExample()
Dim num As Integer
num = 10
If num > 5 Then ' 만약 조건이 참이면 아래 코드 블록을 실행합니다.
MsgBox "숫자는 5보다 큽니다."
Else ' 만약 조건이 거짓이면 아래 코드 블록을 실행합니다.
MsgBox "숫자는 5보다 작거나 같습니다."
End If
End Sub
예제 코드 - 6
Sub MathOperatorExample()
Dim a As Integer
Dim b As Integer
Dim sum As Integer
a = 5
b = 10
sum = a + b ' a와 b의 값을 더하고 그 결과를 sum에 저장합니다.
MsgBox "합계는: " & sum ' 합계를 메시지 박스로 표시합니다.
End Sub
예제 코드 - 7
Sub ConditionalOperatorExample()
Dim score As Integer
score = 75
Dim result As String
result = IIf(score >= 60, "합격", "불합격") ' IIf 함수를 사용하여 합격 또는 불합격을 결정합니다.
MsgBox "결과: " & result ' 결과를 메시지 박스로 표시합니다.
End Sub
한 줄로 표현되는 문장들이 일반적이지만, 문장을 여러 줄로 이어서 작성하려면 줄 연속 문자(line-continuation character)를 사용할 수 있습니다. 다음 예에서 MsgBox 실행 문은 세 줄에 걸쳐 계속됩니다.
Sub DemoBox() 'This procedure declares a string variable,
' assigns it the value Claudia, and then displays
' a concatenated message.
Dim myVar As String
myVar = "John"
MsgBox Prompt:="Hello " & myVar, _
Title:="Greeting Box", _
Buttons:=vbExclamation
End Sub
주석
주석은 프로시저나 특정 명령에 대해 코드를 읽는 사람에게 설명하는 데 사용됩니다. Visual Basic은 프로시저를 실행할 때 주석을 무시합니다. 주석은 작은 따옴표 (')로 시작하거나 Rem 다음에 공백을 추가하여 시작할 수 있으며, 프로시저 어디에나 추가할 수 있습니다. 명령문과 동일한 줄에 주석을 추가하려면 명령문 뒤에 작은 따옴표를 삽입한 다음 주석을 추가하면 됩니다. 기본적으로 주석은 녹색 텍스트로 표시됩니다.
구문 오류 확인
코드 한 줄을 입력한 후 Enter 키를 눌렀는데 해당 줄이 빨간색으로 표시되면(오류 메시지가 함께 표시될 수도 있음) 문장에 무엇이 잘못되었는지 확인한 다음 수정해야 합니다.
구문 오류 - 1
구문 오류 - 2
도움말 출처
Writing Visual Basic statements (VBA)
Office VBA reference topic
learn.microsoft.com
'언어 참조' 카테고리의 다른 글
If...Then...Else 문 사용 (0) | 2023.07.31 |
---|---|
선언문 작성 (0) | 2023.07.31 |
실행 문 작성 (0) | 2023.07.30 |
이름 충돌 피하기 (0) | 2023.07.30 |
개체, 메서드, 속성 및 이벤트 이해 (0) | 2023.07.30 |