ユーザーと対話する

IBM® 製品は、対話式アプリケーションの作成に適しています。対話式アプリケーションは、ユーザーからの入力を受け入れたり、ユーザーに特定のタスクの実行を促したりします。それぞれの ソフトウェアにはスクリプトとの対話用に独自のユーザーインターフェースがありますが、LotusScript® はどの ソフトウェアでも使用できる基本的なツールを提供します。

次の例では、InputBox 関数を使用してユーザーから月次売上と月次経費を取得し、文字列を Currency 型に変換します。

スクリプトは差引きを計算し、MessageBox ステートメントを使用して差引き勘定を Currency 型でフォーマットして表示します。

Sub CalcBalance
   Dim revenue As Currency, expenses As Currency, balance _
     As Currency
   revenue@ = CCur(InputBox("How much did we make" & _
    " this month?"))
   expenses@ = CCur(InputBox("How much did we spend?"))
   balance@ = revenue@ - expenses@
   MessageBox "Our balance this month is " _
      & Format(balance@, "Currency")
End Sub

2 つの入力ボックスのサンプル入力と結果のメッセージボックスは、次のとおりです。

Three message boxes, two that collect user input and a third that displays the result of a calculation

CCur 関数が Currency 型に変換できない文字列をユーザーが入力すると、エラーになります。そのような場合には、On Error ステートメントを使用してエラー処理ルーチンへ分岐させることもできます。

次の例は上の例を拡張し、MessageBox 関数を使用して、再入力するかどうかをユーザーに尋ねます。2 番目のメッセージボックスにも疑問符のアイコンを MB_ICONQUESTION (32) で指定して含めます。MessageBox の引数と対応する数値の代わりに定数を使用するには、定数を定義するファイル LSCONST.LSS をモジュール宣言に含める必要があります。

%Include "LSCONST"
Sub CalcBalance
   Dim revenue As Currency, expenses As Currency, balance _
     As Currency
   EnterValues:
   On Error GoTo BadCur:
   revenue@ = CCur(InputBox("How much did we make" & _
    " this month?"))
   expenses@ = CCur(InputBox("How much did we spend?"))
   balance@ = revenue@ - expenses@
   MessageBox "Our balance this month is " _
      & Format(balance@, "Currency")
   Exit Sub
   BadCur:
   If MessageBox("Invalid entry! Do you want to try again?", _
      MB_YESNO + MB_ICONQUESTION) = IDYES Then GoTo _
      EnterValues
   Exit Sub
End Sub

ユーザーが無効な値を入力した場合、再入力を要求するメッセージボックスが表示されます。

エラー処理の詳細については、「エラーの処理」を参照してください。

Notes サーバーのコンテキストでの MessageBox

LotusScript エージェントを Notes® サーバー上で実行すると、MessageBox コマンド、Inputbox コマンドおよび Print コマンドは、出力をログにリダイレクトします。

HTTP サーバーについては、これらのコマンドは出力をブラウザにリダイレクトします。これらのコマンドを使用して HTML ページを作成し、任意のブラウザに提供できます。