이 글은 도움말을 번역한 글입니다.
Sub 프로시저는 작업을 수행하지만 값을 반환하지 않는 Sub 및 End Sub 문으로 둘러싸인 일련의 Visual Basic 문입니다.
Sub Greeting()
' Sub 프로시저 정의: Greeting()
' 이 프로시저는 인사말을 출력하는 동작을 수행합니다.
Dim name As String
' 문자열 변수 name 선언
name = InputBox("이름을 입력하세요:", "인사하기")
' 사용자로부터 이름을 입력받는 InputBox를 띄웁니다.
If name <> "" Then
' 만약 사용자가 이름을 입력했다면
MsgBox "안녕하세요, " & name & "님!", vbInformation
' "안녕하세요, [name]님!" 메시지를 보여줍니다.
Else
' 만약 사용자가 이름을 입력하지 않았다면
MsgBox "이름을 입력하지 않으셨군요. 안녕히 가세요!", vbExclamation
' "이름을 입력하지 않으셨군요. 안녕히 가세요!" 메시지를 보여줍니다.
End If
End Sub
이름을 입력한 경우
이름을 입력하지 않은 경우
Sub 프로시저는 상수, 변수 또는 호출하는 프로시저로 전달되는 표현식과 같은 인수를 가질 수 있습니다.
Sub PrintMessage(message As String)
MsgBox message
End Sub
위 프로시저는 PrintMessage라는 이름을 가지며, 하나의 인수를 받습니다. 인수의 이름은 message이고, 이 인수는 String 타입으로 선언되었습니다. 이 Sub 프로시저는 message에 전달된 값을 메시지로 출력하는 작업을 수행합니다.
다른 프로시저에서 이 Sub 프로시저를 호출할 때, 인수에 원하는 값을 넣어서 호출할 수 있습니다
Sub Main()
Dim myText As String
myText = "Hello, World!"
PrintMessage myText
End Sub
Sub Main()
Dim myText As String
myText = "Hello, World!"
Call PrintMessage(myText)
End Sub
예제 코드 - 1
Sub GreetConstant()
' Sub 프로시저 정의: GreetConstant()
' 인사말을 출력하는 동작을 수행합니다.
Dim greeting As String
greeting = "Hello, "
Dim name As String
name = "John"
MsgBox greeting & name & "!", vbInformation
End Sub
예제 코드 - 2
Sub GreetVariable(name As String)
' Sub 프로시저 정의: GreetVariable(name As String)
' name을 인수로 받아 인사말을 출력하는 동작을 수행합니다.
Dim greeting As String
greeting = "Hi, "
MsgBox greeting & name & "!", vbInformation
End Sub
Sub Main()
' Sub 프로시저 정의: Main()
' GreetVariable 프로시저를 호출하여 personName을 인수로 전달합니다.
Dim personName As String
personName = "Alice"
Call GreetVariable(personName)
End Sub
예제 코드 -3
Sub CalculateExpression(number1 As Integer, number2 As Integer)
' Sub 프로시저 정의: CalculateExpression(number1 As Integer, number2 As Integer)
' number1,number2를 인수로 받아 두 수의 합을 출력하는 동작을 수행합니다.
Dim result As Integer
result = number1 + number2
MsgBox "두 수의 합: " & result, vbInformation
End Sub
Sub Main()
' Sub 프로시저 정의: Main()
' CalculateExpression 서브 프로시저를 호출하여 x,y를 인수로 전달합니다.
Dim x As Integer
x = 10
Dim y As Integer
y = 20
Call CalculateExpression(x, y)
End Sub
만약 Sub 프로시저에 인수가 없다면 Sub 문에 빈 괄호를 포함해야 합니다.
Sub SayHello()
' 인수가 없는 서브 프로시저로, 간단한 인사말을 출력하는 동작을 수행합니다.
MsgBox "Hello, World!", vbInformation
End Sub
Sub Main()
' SayHello 서브 프로시저를 호출합니다. (인수 없음)
Call SayHello
End Sub
다음 Sub 프로시저에는 각 줄을 설명하는 주석이 있습니다.
' GetInfo라는 이름의 프로시저를 선언합니다.
' 이 Sub 프로시저는 인수를 사용하지 않습니다.
Sub GetInfo()
' answer라는 문자열 변수를 선언합니다.
Dim answer As String
' InputBox 함수의 반환 값을 answer에 할당합니다.
answer = InputBox(Prompt:="이름을 입력하세요.")
' 조건부 If...Then...Else 문입니다.
If answer = Empty Then
' MsgBox 함수를 호출합니다.
MsgBox Prompt:="이름을 입력하지 않았습니다."
Else
' MsgBox 함수와 변수 answer를 결합하여 메시지를 표시합니다.
MsgBox Prompt:="당신의 이름은 " & answer & "입니다."
' If...Then...Else 문을 마칩니다.
End If
' Sub 프로시저를 마칩니다.
End Sub
도움말 출처
Writing a Sub procedure (VBA)
Office VBA reference topic
learn.microsoft.com
'언어 참조' 카테고리의 다른 글
함수에서 문자열 반환 (0) | 2023.08.01 |
---|---|
Function 프로시저 작성 (0) | 2023.08.01 |
Select Case문 사용 (0) | 2023.07.31 |
If...Then...Else 문 사용 (0) | 2023.07.31 |
선언문 작성 (0) | 2023.07.31 |