ノーツ/ドミノ(Notes/ Domino)で使用する主要な言語にはロータススクリプト(Lotus Script)とロータス式言語(Lotus 式言語、アットマーク関数)があります。ロータススクリプトは VBScript に似たところがある言語です。
Windows上でノーツ/ドミノ サーバーを動かしていると、管理用のプログラムを VBScript や C# で書くことがあります。
ここではこれらの言語をとりあげます。
比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
評価方法
0 : バイナリーモード
1 : テキストモード(大文字小文字を区別しません)
@Replace (元の配列; 置換前の値を含む配列; 置換後の値を含む配列)
評価方法
大文字小文字を区別します
検索開始位置を省略したときは 1 とみなされます
数値を設定する検索開始位置や比較方法にNULL値を設定するとエラーになります
戻り値
1~ : 検索する文字の位置
0 : 見つからなかった
検索開始位置(初期値は1) : 検索される文字列が空
NULL : NULL値が設定された
評価方法
0 : 大文字小文字、全角半角を区別します
1 : 大文字小文字を区別しません
4 : 全角半角を区別しません
5 : 大文字小文字、全角半角を区別しません
検索開始位置を省略したときは 1 とみなされます
数値を設定する検索開始位置や比較方法にNULL値を設定するとエラーになります
戻り値
1~ : 検索する文字の位置
0 : 見つからなかった
検索開始位置(初期値は1) : 検索される文字列が空
NULL : NULL値が設定された
評価方法
0 : バイナリーモード
1 : テキストモード(大文字小文字を区別しません)
※いずれも大文字小文字を区別します
If 条件式 Then
式
Elseif 条件式 Then
式
Else
式
End If
※If ~ Elseif ~ Elseif と繰り返せます
※Elseif Else ともに使わないことができます
If 条件式 Goto ラベル
ラベル:
式
If 条件式 Goto ラベル Else 式
ラベル:
式
※If ~ Goto ~ Else ~ は改行せずに書きます
If 条件式 Then
式
Elseif 条件式 Then
式
Else
式
End If
※If ~ Elseif ~ Elseif と繰り返せます
※Elseif Else ともに使わないことができます
比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
※規定は 0 ですが、規定を Option Compare で変更することができます
場所
0 のとき 1 とみなされます
0 より大きいとき、左から何番目か?
0 より小さいとき、右から何番目か?
比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
※規定は 0 ですが、規定を Option Compare で変更することができます
例
えおか = StrToken ({あいう,えおか,きくけ}, {,}, 2)
場所
0 のとき 1 とみなされます
0 より大きいとき、左から何番目か?
0 より小さいとき、右から何番目か?
比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
※規定は 0 ですが、規定を Option Compare で変更することができます
※配列が文字列のときに比較方法を選択できます
比較方法
※大文字小文字を区別します
比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
2 = プラットフォームの並び順で比較
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
※規定は 0 ですが、規定を Option Compare で変更することができます
戻り値
-1 = 文字列1 < 文字列2
0 = 文字列1 = 文字列2
1 = 文字列1 > 文字列2
Null値 = 文字列1または文字列2がNull値
比較方法
0 = バイナリモードで比較します
1 = テキストモードで比較します
※規定は 0 です
戻り値
-1 = 文字列1 < 文字列2
0 = 文字列1 = 文字列2
1 = 文字列1 > 文字列2
Null値 = 文字列1または文字列2がNull値
比較方法
[CASESENSITIVE]/[CASEINSENSITIVE] = 大文字小文字を区別/区別しないで比較します
[ACCENTSENSITIVE]/[ACCENTINSENSITIVE] = アクセントを区別/区別しないで比較します
[PITCHSENSITIVE]/[PITCHINSENSITIVE] = 全角半角を区別/区別しないで比較します
※規定は [CASESENSITIVE] : [ACCENTSENSITIVE] : [PITCHSENSITIVE] です
※Unicodeスタンダードソートを設定しているときは使えない比較方法があります
戻り値
-1 = 文字列1 < 文字列2
0 = 文字列1 = 文字列2
1 = 文字列1 > 文字列2
日時の形式の例
2020/11/29 = Format (Now, {Short Date})
※オペレーティングシステムで指定された日付形式になります
14:51 = Format (Now, {Short Time})
※オペレーティングシステムで指定された時刻形式になります
2020/11/29 14:51:06 = Format (Now, {yyyy/mm/dd hh:mm:ss})
11/29 11:06 = Format (Now, {mm/dd mm:ss})
02:51:06 PM = Format (Now, {hh:mm:ss AM/PM})
※月と時はどちらもmmで指定しますが、hhのあとのmmは時と解釈されます
※スラッシュ(/)とコロン(:)はオペレーティングシステムで指定された記号に変換されます
※AM/PMと記載するとhhは01~12になり、AMまたはPMが付加されます
※am/pmと小文字で記載すると、amまたはpmが付加されます
2020/11/29 14:51:06 = Format (Now, {General Date})
日時の形式の例
2020/11/29 14:51:06 = @Text (@Now);
2020/11/29 14:51:06 = @Text (@Now; {S2});
2020/11/29 = @Text (@Now; {S0});
14:51:06 = @Text (@Now; {S1});
14:51 = @Text (@Now; {T1});
数値の形式の例
¥123,457 = Format (123456.789, {Currency})
123,456.79 = Format (123456.789, {Standard})
12345678.90% = Format (123456.789, {Percent})
1.23E+05 = Format (123456.789, {Scientific})
98% = Format (0.98, {#0%})
¥123,456. = Format (123456, {$#,##0.})
※桁区切記号(,)、小数点(.)、通貨記号($)はオペレーティングシステムで指定された記号に変換されます
数値の形式の例
123456.789 = @Text (123456.789);
123456.79 = @Text (123456.789, {F});
1.23E+05 = @Text (123456.789, {S});
\123456.79 = @Text (123456.789, {C});
123,456.789 = @Text (123456.789, {,});
123,45678.9 = @Text (123456.789, {%});
戻り値の要素数
-1 : 指定なし。すべての区切記号で分割
0 : 戻り値に値なし。戻り値の要素数は無し
1 : 分割なし。戻り値の要素数は-1と同じ
2 : 最初の区切記号だけで2つに分割。戻り値の要素数は2つまで
3 : 最初と2つ目の区切記号だけで3つに分割。戻り値の要素数は3つまで
評価方法
0 : 大文字小文字、全角半角を区別します
1 : 大文字小文字を区別しません
4 : 全角半角を区別しません
5 : 大文字小文字、全角半角を区別しません
評価方法
0 : バイナリーモード
1 : テキストモード(大文字小文字を区別しません)
区切記号
区切記号の長さは1文字です
区切記号に「ab」を指定すると「a」と「b」が区切記号になります
戻り値にブランクを含めるか?
False : (初期値)文字列の最初や最後に区切記号がある、または区切記号が連続しているとき、戻り値にブランクが含まれないようにします
True : 戻り値からブランを取り除きません
改行を区切り記号として扱うか?
True : (初期値)改行を区切記号に含めます
False : 改行は区切記号ではありません
注意
クライアントで実行しているときはステータスバーへ表示し、サーバーで実行しているときはログ(log.nsf)へ記録します
ステータスバーへ表示されるメッセージをログへ記録するには notes.ini に LogStatusBar=1 を設定します
ログをテキスト形式のコンソールログ(console.log)にも記録するには notes.ini に Console_Log_Enabled=1 を設定します
コマンドプロンプトから実行する CScript モードのとき
WScript.echo 値
WScript.StdOut.WriteLine 値
WScript.StdOut.Write 値 ' 改行が追加されません
※標準出力へ表示されますダブルクリックで実行する WScript モードのとき
WScript.echo 値
※ダイアログボックスが表示されます
@StatusBar (値);
注意
クライアントで実行しているときはステータスバーへ表示し、サーバーで実行しているときはログ(log.nsf)へ記録します
ステータスバーへ表示されるメッセージをログへ記録するには notes.ini に LogStatusBar=1 を設定します
ログをテキスト形式のコンソールログ(console.log)にも記録するには notes.ini に Console_Log_Enabled=1 を設定します
例:
Forall 参照変数 In 複数値
式
Exit Forall ' Forall から抜け出します
End Forall
注意
参照変数は Forall で使用する特別な変数で、Dim では宣言できません
参照変数の値を書き換えると In に続く複数値が変更されます
List : キーと値のペアで記憶する連想配列(辞書、ディクショナリー)を使います
For Each 変数名 In 複数値
式
Exit For ' For から抜け出します
Next
左側から検索される文字値を検索します
文字値 = StrLeft (検索される文字値,検索値,比較方法,何番目の検索値?)
文字値 = StrLeft (検索される文字値,検索値,比較方法)
文字値 = StrLeft (検索される文字値,検索値)
右側から検索される文字値を検索します
文字値 = StrLeftBack (検索される文字値,検索値,比較方法,何番目の検索値?)
文字値 = StrLeftBack (検索される文字値,検索値,比較方法)
文字値 = StrLeftBack (検索される文字値,検索値)
比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
戻り値には検索値を含みません
例: {ABCAB} = Strleft ({ABCABC},{c},1,2)
左側から検索される文字値を検索します
文字値 = @Left (検索される文字値,検索値)
右側から検索される文字値を検索します
文字値 = @LeftBack (検索される文字値,検索値)
戻り値には検索値を含みません
例: {AB} = @Left ({ABCABC},{C})
大文字小文字、全角半角を区別します
例: {ABCab} = @Left ({ABCabc},{c})
例: 1899/12/30 00:00:00 = Cdat (0)
日時値 = @TextToTime (日時に変換できる文字値);
時刻値 = @ToTime (時刻に変換できる値);
日時値 = @Time (日時に変換できる値);
日時値 = @Time (年; 月; 日);
日時値 = @Time (年; 月; 日; 時; 分; 秒);
エラーが発生したときにどうするか定義します
On Error Resume Next
On Error Goto ラベル
例:
On Error Goto ラベル
処理
Exit Sub
ラベル:
エラー処理
Resume Next ’ エラーの次の行へ戻る
似ている命令
On 番号 Goto ラベル1, ラベル2, ... ’ 番号によって異なるラベルへ制御を移す命令です。番号がゼロのときは何もしません
例 : On Err Goto ラベル ’ Err 変数の値(初期値は0)によってラベルへ制御を移します
初期化
Call Err.Clear ()
※ On Error や Exit でも Err が初期化されます
On Error は Resume Next だけです
On Error Resume Next
注意
最初の On Error より前は Err オブジェクトが存在しません
例:
On Error Resume Next
Call Err.Clear ()
処理
If 0 <> Err.Number Then
エラー処理
Call Err.Clear ()
End If
例 : @If (@IsError (評価式); エラー時の式; 正常時の式);