【VBA × TeraTerm】VBAからTeraTermを実行する

こんにちは、技術部の M です。
今回は、業務で VBA と TeraTerm を連携させたツールを作る機会があったので記事にしてみました。
構造としては VBA から ttl ファイルを作成しキックする形になっています。
処理を一連にまとめることでユーザーの操作を簡素化できるため、ツールの使用時に不必要なミスが起こりにくくなります。


ソース

				
					Sub runTTL()

'変数定義
Dim ttlFilePath As String   'ttlのスクリプトを記述するためのファイル
Dim ttlExePath As String    'ttlを実行するための.exeファイル
ttlFilePath = ThisWorkBook.path & "\" & "sample.ttl"
ttlExePath = "C:\Program Files (x86)\teraterm\ttpmacro.exe"

'TTLファイル作成
Open ttlFilePath For Output As #1
'設定値
Print #1, "HOST = 'ホスト名'"
Print #1, "USERNAME = 'ユーザー名'"
Print #1, "PASSWORD 'パスワード'"
'接続情報
Print #1, "COMMAND = HOST,"
Print #1, "strconcat COMMAND ':22 /ssh /2 /auth=password /user='"
Print #1, "strconcat COMMAND USERNAME"
Print #1, "strconcat COMMAND ' /passwd='"
Print #1, "strconcat COMMAND PASSWORD"
'ログイン
Print #1, "connect COMMAND"
Print #1, "wait '$ '"

'''TeraTerm内での処理'''

'クローズ
Print #1, "sendln 'exit'"
Close #1

'ttl実行
Dim wsh As Object
Dim resp As Integer

Set wsh = CreateObject("WScript.Shell")
resp = wsh.Run("""" & ttlExePath & """""" & ttlFilePath & """", 1, True)

If resp = 1 Then
    MsgBox "ttl実行に失敗しました。"
End If

Set wsh = Nothing

End Sub

				
			

解説

ソースから分かるように作りは非常に単純です。ttl のスクリプトを記述するためのファイルパスを用意し記述、最後にそのファイルを実行するという形になっています。
5 行目の【ttlExePath】は、ttl を実行するための.exe ファイルで、通常は C ドライブのどこかに格納されている思います。
(※ttermpro.exe ではなく ttpmacro.exe なので注意)


注意点

ttl はただでさえ動作が不安定な部分があるので、複雑な処理には向かない点がデメリットです。
基本的には TeraTerm から値を取得してきてエクセルに表示したり、取得した値を変数として扱うというような処理に使うのが良いと思います。


まとめ

VBA と TeraTerm の連携はとても簡単に作れる上に、使う場面は多くあると思うので覚えておいて損はないと思います。
機会があれば参考にしていただけると幸いです。


最後までお読みいただきありがとうございました。


スーパーソフトウエアの採用情報

あなたが活躍できるフィールドと充実した育成環境があります

blank
blank