リスト

リストはデータ型が同じ要素の 1 次元集合です。アプリケーションの実行中にいつでもサイズを変更できます。LotusScript® はコンパイル時には、リストの要素用に記憶域スペースを一切割り当てません。リストは要素の削除または追加時に、自動的に縮小したり拡大したりします。リスト中のそれぞれの要素は、リストタグという独特の String 型の値でアクセスします。

リストは、モジュールレベル、プロシージャ内、またはクラスの定義内で宣言できます (ユーザー定義のデータ型の定義内ではできません)。リストの宣言には、Dim ステートメントまたはそのバリエーションを使用します。

Syntax for a list statement module

Dim ステートメントで As dataType 節を省略し、リスト名にデータ型接尾辞を付けない場合、LotusScript はリスト名が適用可能な Deftype ステートメントで扱われているかどうかを調べます。リスト名が Deftype ステートメントで扱われていれば、LotusScript はそのデータ型をリストの要素に割り当てます。それ以外の場合は、Variant 型にします。

リストは最初は空です。次の形式のステートメントを使用して、リストに要素を追加します。

listName ( listTag ) = value

ここで、listName はリスト名、listTag は要素を一意的に識別する文字列、value は要素に代入する値です。

リストタグは、基本的に STRING 型のキーです。この「キー」を使用して、これに関連する格納済みのデータを一意に取り出すことができます。

リストタグは、リストが宣言されるモジュールの大文字小文字の区別に関する設定に従って、大文字と小文字を区別する場合と、区別しない場合とがあります。そのモジュールで大文字と小文字を区別するように設定されている場合、A123 と a123 は異なるタグと見なされます。大文字と小文字を区別しないように設定されている場合は同じと見なされるので、どちらも使用できます。モジュールに Option Compare ステートメントを含めることにより、モジュール内の文字列比較で大文字と小文字の区別を制御できます。構文は次のとおりです。

Option Compare { Case | NoCase | Binary }

Case または Binary キーワードを指定すると、文字列比較はモジュール内で大文字と小文字が区別されます。NoCase は文字列比較で大文字と小文字が区別されないことを意味します。既定は Option Compare Case です。

次の例は、リストを宣言し、要素を追加して、それら要素を参照する方法を説明しています。リスト内の要素は、スカラーデータ型 (String) です。

' Make string comparison case insensitive
' in this module.
Option Compare NoCase
' Declare a list--myList--to hold first names.
' The list tags will be unique IDs.
Dim myList List As String
Dim newTag As String
Dim newValue As String
' Put some elements in the list.
myList("A1234") = "Andrea"
myList("A2345") = "Vera"
myList("A3456") = "Isabel"
' Ask the user to enter an ID and a name.
newTag$ = InputBox$("Please enter your ID:")
newValue$ = InputBox$("Please enter your first name:")
' Add a new element to the list with
' the user's ID as the list tag and the user's name as
' the value of the new element.
myList(newTag$) = newValue$
Print myList(newTag$)
' Output: the name that the user entered