Private ステートメント

プライベート変数を宣言して記憶領域を割り当てるために、モジュール レベルで使用します。

構文

Private [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]
[ , [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]] . . .

Private ステートメントの構文には、次の指定項目があります。

指定項目 説明
WithEvents 省略可能。 varnameオブジェクト変数であり、ActiveX オブジェクトによってトリガーされたイベントに応答するために使用されることを示すキーワードです。 WithEvents は、クラス モジュール内でのみ有効です。 WithEvents を使用して個別の変数をいくつでも宣言できますが、WithEvents配列を作成することや、WithEventsNew を併用することはできません。
varname 必須。 変数の名前です。標準の変数の名前付け規則に従ってください。
subscripts 省略可能。 配列変数の次元です。最大 60 までの多次元を宣言できます。 添字引数は、次の構文を使用します。

[ lowerTo ] upper [ , [ lowerTo ] upper ] . . .

lower で明示的に指定していないときには、配列の下限が Option Base ステートメントによって制御されます。 Option Base ステートメントが存在しない場合、下限は 0 になります。
New 省略可能。 オブジェクトの暗黙的な作成を可能にするキーワードです。 オブジェクト変数の宣言時に New を使用すると、その変数を最初に参照したときにオブジェクトの新しいインスタンスが作成されるようになり、Set ステートメントを使用してオブジェクト参照を割り当てる必要がなくなります。 New キーワードは、組み込みデータ型の変数を宣言する際には使用できません。 また、依存オブジェクトのインスタンスを宣言する際に使用することも、WithEvents と併用することもできません。
type オプション。 変数のデータ型。は、 ByteBooleanIntegerLongCurrencySingleDoubleDecimal (現在サポートされていません)、 DateString (可変長文字列の場合)、 Stringlength (固定長文字列の場合)、 ObjectVariantユーザー定義型、または オブジェクト型のいずれかです。 定義する変数ごとに個別の Astype 句を使用します。

解説

Private 変数は、その変数を宣言したモジュール内でのみ使用できます。

Private ステートメントは、変数のデータ型を宣言するために使用します。 たとえば、次のステートメントでは変数を Integer として宣言しています。

Private NumberOfEmployees As Integer 

また、Private ステートメントを使用して、変数のオブジェクト型を宣言することもできます。 次のステートメントではワークシートの新しいインスタンスに対応する変数を宣言しています。

Private X As New Worksheet 

オブジェクト変数の宣言時に New キーワードを使用していない場合は、そのオブジェクトを参照する変数の使用前に、Set ステートメントを使用して既存のオブジェクトを割り当てておく必要があります。 オブジェクトが割り当てられるまで、宣言したオブジェクト変数には Nothing という特殊な値が設定されます。この値は、その変数がオブジェクトの特定のインスタンスを参照していないことを示します。

データ型またはオブジェクト型を指定していない場合、モジュール内に Deftype ステートメントが存在していないと、変数は既定で Variant になります。

Private ステートメントは、動的な配列を宣言するために空のかっこと共に使用することもできます。 動的な配列を宣言した後で、その配列の次元と要素の数を定義するには、プロシージャ内で ReDim ステートメントを使用します。 PrivatePublic、または Dim のいずれかのステートメントでサイズが明示的に指定されている配列変数の次元を再宣言しようとすると、エラーが発生します。

変数の初期化時に、数値変数は 0 に、可変長文字列は長さ 0 の文字列 ("") に、固定長文字列は 0 で埋められた文字列に初期化されます。 Variant 変数は、Empty に初期化されます。 ユーザー定義型変数の各要素は、それぞれの要素が個別の変数であるものとして初期化されます。

注:

Private ステートメントはプロシージャの内側では使用できません。Dim ステートメントを使用してローカル変数を宣言してください。

この例では、モジュール レベルで Private ステートメントを使用して、変数をプライベートとして宣言します。これらの変数は、変数を宣言したモジュール内でのみ使用できるようになります。

Private Number As Integer ' Private Integer variable. 
Private NameArray(1 To 5) As String ' Private array variable. 
' Multiple declarations, two Variants and one Integer, all Private. 
Private MyVar, YourVar, ThisVar As Integer 

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。