LOTUSSCRIPT 言語
メモ LotusScript に、明示的宣言になっているかを必ずチェックさせるには、OPTION DECLARE を指定します。明示的に宣言されていない変数があると、コンパイルエラーが発生します。アプリケーションをリリースする前に、明示的宣言をチェックすることをお勧めします。
次の図は、1 つのスカラー変数 (この例では String 型の変数) を宣言する構文をまとめたものです。
スカラー変数の宣言に使う構文の要素は、次の表に示すとおりです。
宣言時に変数名の後ろにデータ型の接尾辞を付けたかどうかに関係なく、明示的に宣言されたスカラー変数を参照できます。
次に例を示します。
Public firstName$ Public lastName As String Dim age% Dim money As Currency firstName$ = "Roman" lastName$ = "Minsky" age% = 12 money@ = 150.75 Print firstName & " " & lastName & ", " & age &", $" & money ' Output:Roman Minsky, 12, $150.75 Print firstName$ & " " & lastName$ & ", " & age% &", $" & money ' Output:Roman Minsky, 12, $150.75
String 型変数String 型の変数には、Unicode 文字セットの一連の文字が含まれます。Unicode は、文字セット中の各文字を 2 バイトを使って表す文字エンコードシステムです。LotusScript では、アプリケーションをコンパイルする前に、入力データが Unicode 形式に変換されます。 String 型の変数は可変長の場合も固定長の場合もあります。可変長の String 型変数を宣言する構文は、前述の図に示されています。固定長の String 型変数を宣言する構文は、次のとおりです。
charNum 引数は、varName が charNum で指定された文字数で構成される固定長の String 型変数であることを指定しています。
文字列を固定長の String 型変数に代入する場合、宣言された長さに合うように、必要に応じて文字列は切り捨てられたり、後続の空白で埋められます。
Dim myName$ Dim myTown As String ' myName and myTown are variable-length string variables. Dim myState As String * 2 ' myState is a 2-character fixed-length String variable. Dim myZIP As String * 5 ' myZIP$ is a 5-character fixed-length String variable. ' If myZIP$ is assigned a value of more than 5 characters, ' that value will be truncated to its first 5 characters. myName$ = "Mark" myTown$ = "Centerville" myState$ = "MA" myZIP$ = "02100-9999" Print myName$ ' Output:Mark Print myTown$ & ", " & myState$ & " " & myZIP$ ' Output:Centerville, MA 02100
一度に複数の変数を宣言するDim ステートメントとそのバリエーションを使って、モジュールレベルまたはプロシージャ内で一度に複数の変数を宣言できます。モジュールレベルでは、構文は次のとおりです。 { Dim|Public| Private}varName1[ As dataType ], varName2 [ As dataType], ...
プロシージャ内では、構文は次のとおりです。
{ Dim | Static } varName1 [ As dataType ], varName2 [ As dataType ], ...
すべての変数を明示的に宣言することが重要です。次に例を示します。
Dim aString$, anInt%, aDouble As Double, aCurrency@ aString$ = "Hello" Print TypeName(aString$) & ":" & aString$ ' Output:STRING:Hello anInt% = 123 Print TypeName(anInt%) & ":" & anInt% ' Output:INTEGER:123 aDouble# = 123.45 Print TypeName(aDouble) & ":" & aDouble# ' Output:DOUBLE:123.45 aCurrency@ = 456.78 Print TypeName(aCurrency@) & ":" & aCurrency@ ' Output:CURRENCY:456.78 Sub MySub Dim aString As String * 2, anotherString$, anInt% Static aDouble#, anotherDouble# aString$ = "Hi" Print TypeName(astring$) & ":" & aString$ anotherString$ = "World" Print TypeName(anotherstring$) & ":" & anotherString$ anInt% = 234 Print TypeName(anInt%) & ":" & anInt% aDouble# = aDouble# + 1 anotherDouble# = aDouble# * 2 Print TypeName(anotherDouble#) & ":" & anotherDouble# End Sub Call MySub ' Output: ' STRING:Hi ' STRING:World ' INTEGER:234 ' DOUBLE:2 Call MySub ' Output: ' STRING:Hi ' STRING:World ' INTEGER:234 ' DOUBLE: 4
関連項目