前回「Tera Termマクロコマンド「listbox」結構便利です!」で、接続対象ホストのIPアドレスを選択し自動接続するマクロをご紹介しました。(こんな感じのメニューでしたよね!) 
しかしIPアドレスを利用して選択画面を表示するのでは、実際どこのサーバに接続するのか分からなくなってしまう場合があります。
そこで「listbox」の戻り値の特性を生かす活用法をご紹介します。
接続するサーバの選択画面ではホスト名等の分かりやすい文字列を利用し、そのホストを選択すると対となるIPアドレスへ接続を実行するというものです。仕組みは超単純なのですが以外と使えますので、是非試して実感してみて下さい。 
マクロコマンド「listbox」の便利な点はこんな感じです
①数字入力ではなく、マウス操作で選択が可能
②マクロ内で選択項目の設定部分が簡単
③内部処理でリストに無い数字の入力チェック等が不要
④何と言っても、見た感じが見易い!
それでは、実際のマクロをご覧ください。
;========================================================
; Filename : ssh_listbox-02.ttl
; Description : SSH Auto login - host selection listbox
; Author : Jnzou Osako
; Created : 2013/06/16
; modified :
;========================================================
;; [[初期値設定]]
;; ユーザ名/パスワードファイル設定
USERNAME = 'ユーザ名'
;; パスワードファイル指定
PASSFILE = 'C:\password.dat'
;; 配列設定(接続先IPアドレスを代入)
strdim HOSTNM 3
HOSTNM[0] = 'Sakura-VPS'
HOSTNM[1] = 'ServersMan-VPS'
HOSTNM[2] = 'GMO-VPS'
strdim HOSTIP 3
HOSTIP[0] = '192.168.0.1'
HOSTIP[1] = '192.168.0.2'
HOSTIP[2] = '192.168.0.3'
;========================================================
;; 接続先ホスト選択
listbox '接続するホストを選択して下さい' '接続ホスト選択' HOSTNM
if result >= 0 then
HOSTADDR = HOSTIP[result]
else
end
endif
;; パスワード取得(初回は入力要)
getpassword PASSFILE USERNAME PASSWORD
;; 接続用コマンド組立て
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;; 接続コマンド実行
connect COMMAND
;; マクロ終了
end
参考)「listbox」コマンドの書式
listbox [message] [title] [string array]
パラメータ
文字列 [message] リストボックスに表示されるメッセージ
文字列 [title] リストボックスのタイトル
文字型文字列 [string array] リストボックスの選択項目
返り値
システム変数 [result]
項目が選択された場合、0 (N-1)のいずれかの値が格納される
キャンセルされた場合、-1が格納される
マクロ内容の解説
配列設定①(接続先IPアドレスを代入)
まず「strdim」コマンドを用いて文字列配列の変数の宣言を行ないます。
「strdim HOSTNM 3」を宣言し、3個の「HOSTNM」の配列が作成されます。それに接続先ホスト名を代入します。
配列設定②(接続先IPアドレスを代入)
続いて「strdim HOSTIP 3」を宣言し、上記配列設定①で指定したホスト名と対となるIPアドレスを「HOSTIP」へ代入します。
もうお分かりですよね!
接続先の選択時は「HOSTNM」の配列を使用し、接続先選択画面を表示します。接続先ホストを選択すると、その返り値を利用して対となる「HOSTIP」の値を利用して、対象サーバへ接続するといった感じですね。

「HOSTNM」 「HOSTIP」← 配列名
配列0 ホストA = ホストAのIPアドレス
配列1 ホストB = ホストBのIPアドレス
配列2 ホストC = ホストCのIPアドレス
まあ、2次元配列が使えればもっと簡単に書けるのですが、今回苦肉の策という事でこの方法を選択してみました。
おわりに
IPアドレスを表示して接続先を選択するタイプだとどのサーバだったかな?とかあると思われますので、分かりやすいホスト名なんかをキーに選択できれば超便利になりますよね。
結構簡単に使えますので、是非使ってみてください。


