ノーツ/ドミノの言語

2020-11-04に作成

 ノーツ/ドミノ(Notes/ Domino)で使用する主要な言語にはロータススクリプト(Lotus Script)とロータス式言語(Lotus 式言語、アットマーク関数)があります。ロータススクリプトは VBScript に似たところがある言語です。
 Windows上でノーツ/ドミノ サーバーを動かしていると、管理用のプログラムを VBScript や C# で書くことがあります。
 ここではこれらの言語をとりあげます。

所有者限定モードのためこのボードには投稿できません ボードとは?

Chr (10) : 改行記号です

Lotus Script 言語
  • Chr (10) : プラットフォーム固有の改行記号に自動変換されます

注意
ノーツ/ドミノ サーバーに配置したアプリは、再コンパイルなしで複数のプラットフォームで動作します

VbScript 言語
  • vbCrLf : Windows プラットフォームの改行記号です
  • vbCr : Mac プラットフォームの改行記号です
  • vbLf : UNIX や Linux プラットフォームの改行記号です
Lotus 式言語
  • @Char (10) : 改行記号として扱われます
  • @Char (13) : @Prompt 内で改行記号として扱われます
  • @NewLine : 改行記号ですが、使用できないところがいくつかあります

変数の初期値

Lotus Script 言語
  • 数値型: 0
  • 文字値型: ブランク
  • Boolean型: False
  • オブジェクト型: Nothing
  • Variant型: Empty
  • List型: 初期化されません。アクセスする前に Redim で初期化します

注意
Variant型変数を Empty に戻すには、未使用の Variant型変数を利用します
例: Variant型変数 = 宣言したまま使用していない Variant型変数

VbScript 言語
  • Variant型: Empty

注意
Variant型変数を Empty に戻すには、Empty を使用します
例: Variant型変数 = Empty

Lotus 式言語
  • Variant型: Empty

””{}|| : 文字列定数をあらわす記号

Lotus Script 言語
  • ”文字列値”
  • {文字列値}
  • |文字列値|
VbScript 言語
  • ”文字列値”
Lotus 式言語
  • ”文字列値”
  • {文字列値}

& : 文字列連結演算子

Lotus Script 言語
  • 文字値 = 値 & 値
  • 文字値 = 文字値 + 文字値

注意
& は両辺が null のときに null を返します
+ は片方が null のときに null を返します
+ は数値とあわせて使うと、数値に変換できる文字値を数値へ変換して加算することがあります

演算子ではないところで使用される&記号
変数名や値の末尾に&を付けると、Long型ですよという意味になります(接尾辞)
&B、&O、&H は、それぞれ2進数、8進数、16進数ですよという意味になります(接頭辞)
演算子として&記号を書くときは、コンピューターが困惑しないように、&の前後に空白をはさむとよいでしょう

VbScript 言語
  • 文字値 = 値 & 値

注意
& は両辺が null のときに null を返します

演算子ではないところで使用される&記号
&O、&H は、それぞれ8進数、16進数ですよという意味になります
演算子として&記号を書くときは、コンピューターが困惑しないように、&の後に空白をはさむとよいでしょう

Lotus 式言語
  • 文字値 = 文字値 + 文字値

ArrayAppend : 値をまとめて新しい配列をつくる

Lotus Script 言語
  • 動的配列 = ArrayAppend (配列, 単数値または配列)

エラーになる例
ArrayAppend (単数値, 単数値または配列)

動的配列とは
Lotus Script の配列は2種類あります
ひとつは Redim で値の数を変更できる動的配列、もうひとつは値の数を変えられない静的配列です

既存の配列に値を追加する方法
動的配列に入る値の数を変更するには Redim Preserve 配列名 (上限値) を使用します
初期値では下限値が 0 となっているため、上限値を 1 にすると配列の値の数は (0) と (1) の2つになります
Preserve キーワードを忘れると、配列の値が初期化されます
新しく増やした部分に値を入れるには 配列名 (Ubound (配列名)) = 値 とします

VbScript 言語

Lotus Script 言語の既存の配列に値を追加する方法でおこないます

Lotus 式言語
  • 配列 = 単数値または配列 : 単数値または配列

Rem : コメントを付けます

Lotus Script 言語
  • ’ 行末までコメント
  • Rem 行末までコメント
%REM
複数行コメント
%END REM

注意
%REM と %END REM は行の先頭から記載します

VbScript 言語
  • ’ 行末までコメント
  • Rem 行末までコメント
Lotus 式言語
  • REM {括弧で囲んだ範囲がコメント};
  • REM ”括弧で囲んだ範囲がコメント”;

Boolean,True,False : 論理型について

Lotus Script 言語
  • False は 数値の 0 と表すこともできます
  • True は 数値の -1 と表すこともできます
  • True と False を反転させるには Not を使います
  • Boolean型は False に初期化されます

注意
論理型を数値に置き換えると紛らわしいです
True や False を数値に置き換えることはできますが控えたほうが無難です

等しい

等しくない
<>, ><

VbScript 言語
  • False は 数値の 0 と表すこともできます
  • True は 数値の -1 と表すこともできます
  • True と False を反転させるには Not を使います

等しい

等しくない
<>

Lotus 式言語
  • @False は 数値の 0 と表すこともできます
  • @True は 数値の 1 と表すこともできます (Lotus Script 言語と異なります)
  • @True と @False を反転させるには !(びっくりマーク) を使います

反転(Not, !, ~しない, ~ではない)
重ねて使うと、否定の否定って何!?って、何だかわからなくなりそうです

等しい

等しくない
<>, ><, !=, =!

Asc,Uni,String,Chr,UChr,UString : 一文字を文字コードへ、またはその反対へ変換します

Lotus Script 言語
  • 数値 = Asc (プラットフォーム固有の文字値)
  • 数値 = Uni (ユニコード文字値)
  • プラットフォーム固有の一文字値 = Chr (数値)
  • プラットフォーム固有の一文字値 = String (1, 数値)
  • ユニコードの一文字値 = UChr (数値)
  • ユニコードの一文字値 = UString (1, 数値)
    Asc,Chr で扱う数値の範囲は 0 ~ 255
    String は一バイト文字または二バイト文字のコードのどちらでも使用できます
    Uni,UChr,UString で扱う数値の範囲は 0 ~ 65,535

エラーになる例
Asc (長さがゼロの文字値)
Asc (Null値)
UString (1, -1)
UString (1, 65536)

VbScript 言語
  • 数値 = Asc (文字値)
  • 一文字値 = Chr (数値)
Lotus 式言語
  • 文字値 = @Char (数値)
  • 文字の複数値 = @Char (数の複数値)
  • 改行 = @Char (10)
  • タブ = @Char (9)
    数値の範囲は 0 ~ 255

注意
@Ascii は Asc とは異なります
@Ascii はロータスマルチバイト文字セット (LMBCS) を ASCII文字にする関数です

Abs : 数値を符号のない絶対値へ変換します

Lotus Script 言語, VbScript 言語
  • 数値 = Abs (数値)
  • Null値 = Abs (Null値)

エラーになる例
Abs (複数値)
Abs (文字値)

Lotus 式言語
  • 数値 = @Abs (数値)
  • 数の複数値 = @Abs (数の複数値)