LOTUSSCRIPT 言語
変数を宣言します。
構文{ Dim | Static | Public | Private } variableDeclaration [ , variableDeclaration ]... 構成要素Dim | Static | Public | Private
既定では、Dim は変数が Static でなく、Private であることを示します。
variableName
type がクラス名のとき、variableName はその型のオブジェクト参照です。値は、そのクラスのインスタンスや派生クラスのインスタンスの参照、または値 NOTHING だけです。
Lotus 製品によっては、製品の関数や製品オブジェクトのメソッドなど、スクリプト内で製品オブジェクトを作成するために他のメカニズムを提供するものがあります。詳しくは、Lotus ソフトウェアのマニュアルを参照してください。
ユーザー定義クラスでは、argList はクラスコンストラクタサブルーチン New から要求され type で指定したクラス内で定義される引数をカンマで区切ったリストです。製品クラスについては、製品のマニュアルを参照してください。
[ lowerBound To ] upperBound
ここで、lowerBound は、サブスクリプトに示す配列の下限値で、upperBound は上限値です。lowerBound を指定しない場合、Option Base ステートメントで 1 に変更しない限り、配列要素の下限値の既定はゼロ (0) です。たとえば、既定の下限値である 0 が使われた場合、次のステートメントは予想に反して 3 個の文字列でなく 4 個の文字列用の領域を割り当てます。
配列を宣言する固定長配列では、Dim ステートメントに配列の型、次元数、各次元の要素の範囲を指定します。Dim は配列の要素の領域を確保し、その要素をデータ型に対応した適切な値に初期化します (後述の「変数の初期化」を参照してください)。 動的配列では、Dim に配列の型のみを指定します。配列の次元数や各次元の要素の範囲は定義されません。そのため、配列の要素に領域は確保されません。動的配列の宣言は、後の ReDim ステートメントで完成されなければなりません。
配列は 8 次元まで指定できます。
配列の要素の範囲は -32,768 から 32,767 です。
リストを宣言するリストの宣言時は空です。要素も領域の確保もありません。リストタグを使ったリスト名が Let や Set などの代入ステートメントの左辺に最初に表示されるとき、要素がリストに追加されます。 文字セットがシングルバイトの場合は、Option Compare によってリスト名の大文字/小文字を区別するかどうかが決まります。たとえば、Option Compare Case が有効な場合、「ListA」と「Lista」は異なる名前と見なされます。逆に Option Compare NoCase が有効である場合、これらの名前は同じと見なされます。文字セットが 2 バイト (全角) の場合、リスト名の大文字と小文字、全角と半角は常に区別されます。
オブジェクト参照変数を宣言するtype がクラス名で、キーワード New が指定されていない場合は、宣言されたオブジェクト参照変数の初期値は NOTHING です。オブジェクト参照変数に別の値を代入する場合は、スクリプト後半で Set ステートメントを使います。 Dim variableName As New className では、実行コードが生成されます。コンパイルされたモジュールを保存するとき、モジュール単位の実行コードは保存されないので、モジュールレベルでこのようなステートメントを使うときには注意してください。Lotus ソフトウェアによっては、実行可能ステートメントをモジュールレベルで配置することを禁止しているものもあります。
実行コードではないオブジェクト参照変数を、モジュールレベルで Dim variableName As className を使って宣言するときは、プロシージャ内で Set ステートメント (実行コード) を使って、オブジェクト参照変数をオブジェクトにバインドします。
New キーワードは配列の宣言やリストの宣言では無効です。
変数を初期化する変数の宣言では、既定値への初期化も行われます。
変数を定義するための Public と Private は、モジュール、またはクラスの定義内でのみ使えます。プロシージャ内では、自動的に Private になります。ユーザー定義型のメンバは、自動的に Public になります。これらは一度設定されると変更できません。
例 関連項目