VBA 베이스 - 함수 및 모듈
개요
일반적인 VBA 프로그램에 대해서 말하자면, 아마도 하나 또는 몇 개의 함수만 있으면 될 것이다.어쨌든 VBA는 excel의 보조 도구로 사용될 뿐이다.
그러나 VBA가 갈수록 많아지면서 하나의 공정으로 관리하는 것이 필요하다. 하나의 코드 공정의 기초는 바로 함수와 모듈이다.
함수
VBA의 함수는 2가지가 있는데 하나는 Sub이고 하나는 Function이 VBA에 있는데 사실은 Sub를 과정이라고 하고 함수라고 하지 않는다. 그것들의 차이는 두 가지가 있다.
Sub 및 Function의 예는 다음과 같습니다.
1 Option Explicit
2
3 Sub CallAnotherMod()
4 Dim sum As Integer
5 sum = Add(2, 3)
6 Debug.Print sum
7 End Sub
8
9 Function Add(a As Integer, b As Integer) As Integer
10 Debug.Print a
11 Debug.Print b
12 Add = a + b
13 End Function
함수의 반환값은 함수 이름 자체에 결과를 부여하는 것입니다Add=a+b, 그렇지 않으면 반환값은 항상 0
모듈
모듈화의 목적은 복용하는 것이다. 일부 통용되는 기능에 대해 우리는 모듈로 봉인하여 내보낼 수 있다.이렇게 하면 서로 다른 VBA 공정에서 기존의 모듈을 가져오면 반복적으로 바퀴를 만들 필요가 없다.
모듈의 내보내기는 매우 편리하다. 대응하는 모듈에서 오른쪽 단추를 누르면 내보내면 된다. 내보내면 하나의 *이다.bas의 파일입니다.
일반 모듈
일반 모듈은 간단명료하다. 우리가 이전에 쓴 Sub나 Function은 사실 모두 기본적인 일반 모듈에 있다.다음 예시 프로젝트에서 저는 2개의 모듈을 만들었습니다. 각각 Main과 MyMath입니다. Main은 테스트에 사용되고 MyMath는 나중에 다시 사용하기 위한 함수입니다.
1 Option Explicit
2
3 Sub CallAnotherMod()
4 Debug.Print "2 + 3 = " & (Add(2, 3))
5 Debug.Print "2 * 3 = " & (Multiply(2, 3))
6
7 End Sub
1 Option Explicit
2
3 Function Add(A As Integer, B As Integer) As Integer
4 Add = A + B
5 End Function
6
7 Function Multiply(A As Integer, B As Integer) As Integer
8 Multiply = A * B
9 End Function
2 + 3 = 5
2 * 3 = 6
클래스 모듈
위와 같이 함수를 통해 일부 기능을 봉인할 수 있을 뿐만 아니라 VBA도 유형에 따라 조직할 수 있기 때문에 대상을 대상으로 하는 디자인에 익숙한 개발자들은 이런 방식을 더욱 좋아할 수 있다.
1 Option Explicit
2
3 ' , class
4 Const MathClsName = "math class"
5
6 Dim MathA As Integer
7 Dim MathB As Integer
8
9 ' set
10 Public Property Let A(numA As Integer)
11 MathA = numA
12 End Property
13
14 ' get
15 Public Property Get A() As Integer
16 A = MathA
17 End Property
18
19 ' set
20 Public Property Let B(numB As Integer)
21 MathB = numB
22 End Property
23
24 ' get
25 Public Property Get B() As Integer
26 B = MathB
27 End Property
28
29 Function Add() As Integer
30 Add = MathA + MathB
31 End Function
1 Option Explicit
2
3 Sub CallAnotherMod()
4
5 Dim mc As New MathCls
6 mc.A = 2
7 mc.B = 3
8
9 Debug.Print (mc.Add())
10
11 End Sub
총결산
그런 방식으로 봉인하든지 간에 봉인이 필요한 기능이 그런 방식에 적합하다는 것을 보아야 한다.이 두 가지 방식은 함수식과 대상을 대상으로 프로그래밍하는 것처럼 누가 높고 낮은지 각자 적합한 장면이 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.