カスタムのダイアログボックスにVBScriptで挙動を追加する

更新しました Apr 7, 2021

環境

ソフトウェア

  • DIAdem

DIAdemではカスタムのダイアログボックスを作成する事ができます。ダイアログボックス上に挙動を追加するにはVBスクリプトを使用します。ここではVBScriptを使用してコンボボックスを持つダイアログボックスを作成し、コンボボックスで指定した内容をDIAdemのVBScriptで認識する方法について確認します。

DIAdemでダイアログボックスを作成する方法の基礎・サンプルについてはこちらの資料で確認できます。

1. DIAdemを起動し、VBScriptを開きます。
ダイアログボックスを作成するにはユーザダイアログボックスを作成を選択し、DIAdemダイアログエディタを開きます。
 
1OpenDIAdem.png

2. VBScriptとダイアログボックスファイルの作成
ダイアログボックスとなる*.sudファイルと、それを呼び出す*.vbsファイルを作成します。VBScriptからダイアログボックスを呼び出す際に、同じフォルダの*.sudファイルを呼び出す方法を使用する為、この2点は同じフォルダに作成します。
 
2ScriptSUD.png

DIAdemのVBScriptは下記の物を使用します。
 
Option Explicit

class cSUDPara
  dim sObject
end class

Dim oSUDPara
set oSUDPara = new cSUDPara
oSUDPara.sObject    = "Red"
call SUDDlgShow("Dlg1", CurrentScriptPath & "SudExample", oSUDPara)
msgbox oSUDPara.sObject

上記のスクリプトではダイアログボックスのパスをVBScriptファイルを保存したフォルダに存在するSudExample.sudとしています。ダイアログボックスの*.sudファイルはSudExample.sudという名前でVBScriptファイルと同じフォルダに保存すると上記のスクリプトをそのまま使用する事ができます。

3. ダイアログボックスの作成
ダイアログボックスを配置します。
 
3combobox.png

ボタンを配置します。
 
4button.png

ボタンを下記の様に編集し、Button Typeを4 - OKに変更します。
 
5mod.png

コンボボックスをクリックし、ObjectCodeをcb1にします。
 
5modcomb.png

コンボボックスをダブルクリックし、スクリプトの編集を行います。イベントの項目のEventInitializeとEventTerminateをダブルクリックし、下記の様にイベントハンドラを作成します。
 
6eventh.png

上記のスクリプトを下記の様に編集します。
 
Option Explicit

Dim oSUDPara

Sub Dialog_EventInitialize(ByRef This) '作成されたイベントハンドラー
  Set oSUDPara = Dialog.GetArgument
  
  Call cb1.Items.RemoveAll
  Call cb1.Items.add("Red", 0)
  Call cb1.Items.add("Green", 1)
  Call cb1.Items.add("Yellow", 2)
    
  select case oSUDPara.sObject
    case "Red" cb1.Value = 0
    case "Green"   cb1.Value = 1
    case "Yellow"  cb1.Value = 2
  end select

End Sub

Sub Dialog_EventTerminate(ByRef This) '作成されたイベントハンドラー
  oSUDPara.sObject    = cb1.Text
  call Dialog.SetArgument(oSUDPara)
End Sub

上記の編集を行い、保存した後、DIAdem Scriptで作成したVBScriptを実行すると、下記の様にコンボボックスの挙動を確認できます。
 
7combo.png