VBAの基礎 - 機能とモジュール

概要

一般的なVBAプログラムのために、それはライン上の1つまたはいくつかの機能であってもよい。結局、唯一使用する補助ツールとしてVBAエクセル。

プロジェクトの基本的なコードがしている間しかし、VBAで、それが必要である管理するためのプロジェクトで、より多くのを書き込む機能モジュール

機能

VBA関数は2種類、1がされているサブ、一方が機能 VBAで、実際には、サブ関数を呼び出していない、プロセスと呼ばれ、その差を2があります。

  1. 関数が値を返す、サブなし
  2. サブを直接実行することができ、機能を実行するために呼び出さなければなりません

次のように例のサブと機能は以下のとおりです。

 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

関数の戻り値は、結果が関数名自体に割り当てられていることに注意してください追加= A + Bそう返し、値は常に0です

モジュール

モジュラー目的は、いくつかの一般的な機能のために、私たちは、モジュールおよびエクスポートにパッケージ化することができ、再利用することである。このように、さまざまなプロジェクトにインポート既存のVBAモジュール、彼らは車を複製し、作成しないでください。

エクスポートモジュールだけでエクスポートすることができ、対応するモジュールを右クリックして、非常に簡単で、輸出は* .BASファイルです。

一般的なモジュール

シンプルな、我々はデフォルトの一般的なモジュールでは、実際にはSubまたは関数の前に書きました。次の例のプロジェクトを、私は2つのモジュール、すなわちメインとMyMathを作成し、メインをテストするために使用される一般的なモジュール、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
  • MyMathモジュール:

    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クラスの方法に従うことができます。

  • 以前に選択除き、クラスモジュール、新しいモジュール、および同じ一般的な手順を作成した新しいタイプのあるクラスモジュール
  • たとえば、私たちは、新しいクラスモジュールMathClsを作成します。

     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

概要

かかわらず、パッケージへのアプローチの種類の、パッケージはそのように機能するために調べる必要があります。機能やオブジェクト指向プログラミングと同様に、これら二つの方法のように、誰もが適切な場面で、それぞれが、高いか低いん。

おすすめ

転載: www.cnblogs.com/wang_yb/p/11613069.html