公開日: 09/19/2023

ユーザに情報を送る

この節では、ユーザに情報を送るJSL関数について説明します。

Beep

Beep()は、警告音を鳴らします。

Speak

Speak()は、テキストを読み上げます。macOSでは、Speak()にブール値(1または0)をとるオプションのWait()があり、読み上げの終了まで次のステップへ進むのを待つかどうかを指定できます。デフォルトでは待たない設定になっているため、待つようにするには毎回Wait(1)を送る必要があります。たとえば、ここによく意味のわからない文を読み上げるスクリプトがあるとします。Wait(1)を使えば言葉は聞き取れるので、すぐに実行を中断したくなるはずです。しかし、Wait(1)ではなくWait(0)を使った場合、繰り返しの方が読み上げが完了するより早く処理されるため、結果として変な音が出力され、一体何が起こっているのかもわかりません。Windowsでは、Wait(n)コマンドが同じ機能を果たします。

For( i = 99, i > 0, i--,
	Speak(
		Wait( 1 ),
		Char( i ) || " bottles of beer on the wall, " || Char( i ) || "
		bottles of beer; " ||
"If one of those bottles should happen to fall, " || Char( i - 1 ) || "
bottles of beer on the wall. "
	) );

もっと実用的な例としては、JMPに60秒ごとに時間を読み上げさせるというものがあります。

script = Expr(
	tod = Mod( Today(), In Days( 1 ) );
	hr = Floor( tod / In Hours( 1 ) );
	min = Floor( Mod( tod, In Hours( 1 ) ) / 60 );
	timeText = "time, " || Char( hr ) || " " || Char( min );
	text = Long Date( Today() ) || ", " || timeText;
	Speak( text );
	Show( text );
	Schedule( 60, script );    // 次のスクリプトまでの秒数
);
script;

同じような方法を使って、プロセスが制御不可能になったことをJMPから警告させることもできます。

Caption

Caption()は、小さなウィンドウを開き、ユーザへのメッセージを表示します。この機能により、結果のウィンドウに余分なオブジェクトを加えることなしに、デモに注釈をつけられます。第1引数の{h,y}はオプションで、スクリーン上の位置を左上からのピクセル数で指定するものです。第2引数は、ウィンドウに表示するテキストです。位置の引数が省略された場合、ウィンドウは左上隅に表示されます。

読み上げを一定時間遅らせるには、名前付き引数Delayedと時間(秒)を指定します。この指定により作成される注釈と、それ以降のすべての注釈は、指定された秒数分遅れて表示されます。これは、別のCaptionコマンドで設定が更新されるまで続きます。遅れをすべてなくすには、Delayed(0)を使います。

フォントの種類、フォントのサイズ、テキストの色、または背景色は、次の引数で指定します。

Font( font );
Font Size( size );
Text Color("color");
Back Color("color");

Spokenオプションを指定すると、注釈が読み上げられます(OSに音声出力システムが組み込まれている場合)。Spokenはブール値(1または0)の引数をとり、Spoken引数を持つCaptionコマンドによって改めて変更されるまでは現在の設定(オンまたはオフ)が有効になります。

下のスクリプトでは、読み上げをオンにし、最後の注釈までオンのままにしています。最初のキャプションで、フォントの種類、色、背景色が指定されます。スクリプトを実行すると、フォントと色の設定が最初のキャプションだけに適用されることがわかります。

Caption(
	{10, 30},
	"A Tour of the JMP Analyses",
	Font( "Arial Black" ),
	Font Size( 16 ),
	Text Color( "blue" ),
	Back Color( "yellow" ),
	Spoken( 1 ),
	Delayed( 5 )
);
Caption( "Open a data table." );
bigClass = Open( "$SAMPLE_DATA/Big Class.jmp" );
Caption( "A data table consists of rows and columns of data." );
Caption( "The rows are numbered and the columns are named." );
Caption( {250, 50}, "The data itself is in the grid on the right" );
Caption(
	{5, 30},
	Spoken( 0 ),
	"A panel along the left side shows columns and other attributes."
);

新しいCaptionを指定するたびに、以前の注釈が非表示になります。つまり、一度に表示できる注釈ウィンドウは1つだけです。新しい注釈を表示せずにウィンドウを閉じるには、名前付き引数Removeを使います。

Caption( remove );

StatusMsg

Status Msg()は、ステータスバーにメッセージを送信します。

StatusMsg( "string" );

Mail

Mail()は、ユーザに電子メールを送信します。たとえば、プロセス制御管理者は、管理図にテストの警告スクリプトを含めておいて、警告の電子メールが管理者に届くように指定できます。

Mail(
	"JaneDoe@company.com",
	"管理外",
	Format( Today(), "d/m/y h:m:s" ) || "プロセス12Aが管理外"
);

Mail()は、電子メールの添付ファイルも送ることができます。オプションとして4つ目の引数に添付ファイルを指定します。添付ファイルは、ディスク上に存在することが確認されると、バイナリー形式で送信されます。たとえば、「Big Class.jmp」データテーブルを添付するには、次のスクリプトを実行します。

Mail(
	"JohnDoe@company.com",
	"興味深いデータセット",
	"このクラスのデータをご覧ください。",
	"$SAMPLE_DATA/Big Class.jmp" );

メモ: macOSの場合、Mail()はMountain Lionおよびそれ以降のオペレーティングシステムで動作します。Mountain Lionでは、オペレーティングシステムの制約により、電子メールにアドレスと件名を入力する必要があります。[送信]ボタンをクリックして電子メールを送信します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).