본문 바로가기
언어 참조

Function 프로시저 작성

2023. 8. 1.

이 글은 도움말을 번역한 글입니다.

Function 프로시저는 Function 및 End Function 문으로 묶인 일련의 Visual Basic 문입니다. Function 프로시저는 Sub 프로시저와 유사하지만 Function 프로시저는 값을 반환할 수도 있습니다.

Function AddNumbers(num1 As Integer, num2 As Integer) As Integer
  
    ' 두 개의 숫자를 더하고, 결과 값을 반환하는 함수입니다.
    
    Dim result As Integer
    result = num1 + num2
    AddNumbers = result
End Function

Function MultiplyNumbers(ByVal num1 As Double, ByVal num2 As Double) As Double
    MultiplyNumbers = num1 * num2
End Function

Function CalcCircumference(ByVal radius As Double) As Double
   
    ' 주어진 반지름을 사용하여 원의 둘레를 계산하고, 결과 값을 반환하는 함수입니다.
    CalcCircumference = 2 * Application.Pi() * radius
 
End Function

Function CalcArea(ByVal radius As Double) As Double
   
    ' 주어진 반지름을 사용하여 원의 넓이를 계산하고, 결과 값을 반환하는 함수입니다.
    CalcArea = Application.Pi() * (radius ^ 2)
  
End Function

Function CreateArray() As Variant()
   
    ' 4개 요소를 가지는 Variant 타입의 배열 선언
    Dim myArray(3) As Variant
   
    ' 배열 요소에 값 할당
    myArray(0) = "Apple"
    myArray(1) = "Banana"
    myArray(2) = "Orange"
    myArray(3) = "Grapes"
   
    ' 배열 요소에 값 할당
    CreateArray = myArray
  
End Function


Function 프로시저는 호출 프로시저에 의해 전달되는 상수, 변수 또는 식과 같은 인수를 사용할 수 있습니다. Function 프로시저에 인수가 없으면 Function 문에 빈 괄호를 포함되어야 합니다. 함수는 프로시저의 하나 이상의 문에서 이름에 값을 할당하여 값을 반환합니다.

Function GetCurrentYear() As Integer
    GetCurrentYear = Year(Date)
End Function

Function GetCurrentDate() As Date
    GetCurrentDate = Date
End Function

다음 예제에서 Celsius 함수는 화씨 온도에서 섭씨 온도를 계산합니다. 함수가 Main 프로시저에서 호출되면 인수 값을 포함하는 변수가 함수에 전달됩니다. 계산 결과는 호출 프로시저로 반환되고 메시지 상자에 표시됩니다.

Sub Main() 
 temp = Application.InputBox(Prompt:= _ 
 "Please enter the temperature in degrees F.", Type:=1) 
 MsgBox "The temperature is " & Celsius(temp) & " degrees C." 
End Sub 
 
Function Celsius(fDegrees) 
 Celsius = (fDegrees - 32) * 5 / 9 
End Function

도움말 출처

Writing a Function procedure (VBA)

Office VBA reference topic

learn.microsoft.com

'언어 참조' 카테고리의 다른 글

Property 프로시저 작성  (0) 2023.08.01
함수에서 문자열 반환  (0) 2023.08.01
Sub 프로시저 작성  (0) 2023.08.01
Select Case문 사용  (0) 2023.07.31
If...Then...Else 문 사용  (0) 2023.07.31