サンプルで実際の挙動を確認する
1. DIAdem Example Finderでサンプルを開く
DIAdemを起動し、ヘルプ>>サンプルを選択し、DIAdem Example Finderを開きます。サンプル>>スクリプトを作成する>>ユーザダイアログボックスを確認すると、「テキストと数値を入力するためのユーザダイアログボックス」というサンプルプログラムがあります。「サンプルを開始」を選択するとこのプログラムの挙動を確認できます。
VBScriptとSUDファイルを確認する
1. VBScriptを確認する
前述のサンプルのVBScriptの主要部分を抜き出し、ダイアログボックスで入力した数値に対して後処理を加えると下記の様になります。
Option Explicit
' Initialize variables
Call GlobalDim("sMyText, iMyIntVal, dMyRealVal")
sMyText = "デモのテキストです。"
iMyIntVal = 2108
dMyRealVal = 3.141592653
If SudDlgShow("Input_1",CurrentScriptPath & "SudExample_1") = "IDOk" Then
' Display results of dialog box entry
Call MsgBoxDisp("次の入力をされました。@CRLF@" & _
"sMyText: " & vbtab & sMyText & "@CRLF@" & _
"iMyIntVal: " & vbtab & str(iMyIntVal) & "@CRLF@" &_
"dMyRealVal:" & vbtab & str(dMyRealVal),,,,5)
Else
MsgBox "入力がされていません。 DIAdem はスクリプトを取り消しました。"
End If
Dim x,y
x = iMyIntVal
y = x * 2
msgbox(y)
ダイアログで入力された値をスクリプトで使用するには上記のスクリプトをDIAdem Scriptにて*.vbs形式でAttachmentsのSudExample_1.sudと同じフォルダに保存し、実行する事で確認できます。
また、上記のスクリプトは下記の4段階から構成されています。
2. *.sudファイルを開く
AttachmentsのSudExample_1.sudを開くと、DIAdem Dialog Editorが起動します。ここで使用しているSUDはVBScriptのSudDlgShow("Input_1",CurrentScriptPath & "SudExample_1")の部分で呼び出されているInput_1です。現在表示しているSUDの名前は下記の画像の赤枠の部分で確認できます。
設定を確認したい部分を左クリックすると右側のプロパティ、イベントの表示の部分に詳細な設定を確認できます。"Enter a text"の部分はsMyTextという変数に結び付けられている事が確認できます。
3. ダイアログに新しい入力項目を追加する
ダイアログに新しい入力を追加するには、ダイアログとVBScript間で値の受け渡しを行うグローバル変数を追加します。グローバル変数の追加はEdit >> Variableから行う事ができます。ここではsMyTest2というバリアント型のグローバル変数を作成しました。
次にEditBoxを使用してダイアログに入力部分を作成します。また、この部分に入力された値がsMyText2に格納されるように、PropertiesのVariableをsMyText2に設定します。
編集完了後、このSUDを別名で保存します。ここではSudExample2.sudとして保存します。
4. VBScriptを編集して新たに作成したSUDを使用する。
新たに作成したSUDを使用する場合、VBScriptを下記の様に編集し、SUDファイルと同じフォルダに保存する必要があります。
Option Explicit
' Initialize variables
Call GlobalDim("sMyText, sMyText2, iMyIntVal, dMyRealVal")
sMyText = "デモのテキストです。"
sMyText2 = "デモのテキストです。"
iMyIntVal = 2108
dMyRealVal = 3.141592653
If SudDlgShow("Input_1",CurrentScriptPath & "SudExample_2") = "IDOk" Then
' Display results of dialog box entry
Call MsgBoxDisp("次の入力をされました。@CRLF@" & _
"sMyText: " & vbtab & sMyText & "@CRLF@" & _
"iMyIntVal: " & vbtab & str(iMyIntVal) & "@CRLF@" &_
"dMyRealVal:" & vbtab & str(dMyRealVal),,,,5)
Else
MsgBox "入力がされていません。 DIAdem はスクリプトを取り消しました。"
End If
msgbox(sMyText2)
このスクリプトを実行すると新たに作成した入力部分の値がダイアログボックスを閉じた際にVBScriptに受け渡され、メッセージボックスで表示されます。