Option Explicit Public Sub TEST() 'WSプロファイル(この例ではUSO800.ws)を指定してPCOMMを起動する Dim WSPF As String WSPF = "USO800" 'WSプロファイル指定 Call KIDOU(WSPF) 'PCOMM起動 'セッション名取得 Dim SSN As String SSN = SSNAME() 'セッション名取得 If SSN = "" Then MsgBox "セッションがありません。" _ & vbLf & "終了します。" End End If '変数の宣言 Dim autECLOIAObj As Object 'オペレータ情報域 Dim autECLPSObj As Object '表示スペースオブジェクト 'オブジェクト変数へオブジェクトの参照を格納 Set autECLOIAObj = CreateObject("PCOMM.autECLOIA") Set autECLPSObj = CreateObject("PCOMM.autECLPS") 'どのセッションにコマンドを送るか関連付け autECLOIAObj.SetConnectionByName (SSN) '変数SSNに関連付け autECLPSObj.SetConnectionByName (SSN) '変数SSNに関連付け 'サインイン処理 '略 '処理(例なので操作に特に意味なし) Dim i As Long Do Until autECLOIAObj.WaitForAppAvailable(100) 'アプリケーション待ち DoEvents i = i + 1 If i >= 100 Then MsgBox "待ってらんねえよ!" End End If Loop Dim data As String data = autECLPSObj.GetTextRect(1, 2, 3, 4) '1行目2列〜3行目4列の文字を取得 MsgBox data autECLPSObj.SetCursorPos 3, 5 'カーソルを3行目,5列目に autECLPSObj.WaitForCursor 3, 5 'カーソルが3行目,5列目に配置されるのを待つ autECLOIAObj.WaitForInputReady 'キー入力可待ち無限大 autECLPSObj.SendKeys "TEST" 'カーソル位置からTESTと書き込む autECLPSObj.SendKeys "DESU", 5, 10 '5行目,10列目にDESUと書き込む autECLPSObj.Wait (500) '500ms待ち autECLPSObj.SendKeys "[Tab]" 'TABキーを押す autECLPSObj.SendKeys "[enter]" '実行キーを押す autECLPSObj.SendKeys "[pf3]" 'PF3キーを押す 'サインアウト処理 '略 ' Call CLOSEWINDOW(SSN) 'オブジェクト変数の解放 Set autECLOIAObj = Nothing 'オペレータ情報域 Set autECLPSObj = Nothing '表示スペース End Sub Private Sub KIDOU(ByVal WSPF As String) 'PCOMMが起動しているかチェックして、なければ起動 Dim autECLConnList As Object 'オブジェクト変数宣言 Set autECLConnList = CreateObject("PCOMM.autECLConnList") 'オブジェクトの参照 autECLConnList.Refresh '接続のスナップショット取得 Dim Num As Long '接続(= セッション)の数 Num = autECLConnList.Count '接続の数を取得 '接続が有れば終了 If Num > 0 Then Exit Sub 'WSPF中にスペースがあれば単一引用符で囲む If InStr(WSPF, " ") > 0 Then WSPF = "'" & WSPF & "'" End If 'PCOMMを起動する Dim Mgr As Object Set Mgr = CreateObject("PCOMM.autECLConnMgr") WSPF = "profile=" & WSPF Mgr.StartConnection (WSPF) 'オブジェクト変数の解放 Set Mgr = Nothing Set autECLConnList = Nothing End Sub Private Sub CLOSEWINDOW(SSN As String) ' PCOMMのウィンドウを“無条件に”閉じる '変数の宣言 Dim autECLConnMgrObj As Object 'オブジェクト変数へオブジェクトの参照を格納 Set autECLConnMgrObj = CreateObject("PCOMM.autECLConnMgr") 'エミュレーター・ウィンドウを停止(閉じる) autECLConnMgrObj.StopConnection (SSN) 'オブジェクト変数の解放 Set autECLConnMgrObj = Nothing End Sub Private Function SSNAME() As String 'セッション名を返す Dim Num As Long '接続(= セッション)の数 Dim TYP As String '接続機器 Dim SSN As String '接続名 Dim RDY As Boolean 'Started,APIEnabled,CommStarted Dim i As Long 'Loop Dim autECLConnList As Object 'オブジェクト変数宣言 Set autECLConnList = CreateObject("PCOMM.autECLConnList") 'オブジェクトの参照 'もし起動直後だと、とれないので待つ Do autECLConnList.Refresh Num = autECLConnList.Count DoEvents Loop Until Num > 0 'DISP5250のセッション名取得 For i = 1 To Num 'Ready待ち Do DoEvents Loop Until autECLConnList(i).Ready 'DISP5250だったらセッション名取得 TYP = autECLConnList(i).ConnType '接続タイプ(接続機器) SSN = autECLConnList(i).Name '接続名(A〜Z) If TYP = "DISP5250" Then SSNAME = SSN Next i 'オブジェクト変数の解放 Set autECLConnList = Nothing End Function