ユーザが入力した情報をマクロ処理で使用する
Tera Term マクロでは、メッセージボックスを表示してユーザに情報を入力させ、その入力情報をマクロ処理の中で使用することができます。
場合によってマクロの入力情報を変えたいが、ユーザにはマクロファイル等の編集をさせずに対応したいといった場合に活用できます。
動作確認環境
- Tera Term Version 4.104
2つの情報入力用ボックス
Tera Term マクロには情報入力用ボックスを表示するコマンドとして以下の2つがあります。
- inputbox
- passwordbox
どちらも入力機能としての仕様は同じですが、passwordbox の場合は入力文字がマスクされて表示されます。


なお inputbox、passwordbox で一度に入力できる情報は1行のみであり、複数行をまとめて入力することはできません。
inputbox の使い方
- inputbox <メッセージ> <タイトル> [<デフォルト文字列>]
- <メッセージ>:入力ボックス上に表示されるメッセージ内容
- <タイトル>;入力ウィンドウのタイトルに表示される文字列
- <デフォルト文字列>:オプション。入力欄にデフォルトで表示させる文字列。指定しない場合は入力欄が空白になる
- ユーザが入力した文字列はシステム変数 inputstr に格納される
以下は inputbox を使用してユーザに IP アドレスを入力させ、その後入力文字列を messagebox で表示するマクロです。
inputbox 'IPアドレスを入力してください。' 'IPアドレス入力(inputbox)' 'x.x.x.x'
messagebox inputstr 'inputstrの値'
このマクロを実行すると以下のように入力用のメッセージボックスが表示されます。

入力された文字列はシステム変数「inputstr」に格納されるため、その後の処理で inputstr の値を参照することで入力された情報を利用することができます。
passwordbox の使い方
passwordbox の使い方は inputobox とほぼ同じですが、入力欄にデフォルトで表示する文字列の指定はできません。
- passwordbox <メッセージ> <タイトル>
- <メッセージ>:入力ボックス上に表示されるメッセージ内容
- <タイトル>;入力ウィンドウのタイトルに表示される文字列
- ユーザが入力した文字列はシステム変数 inputstr に格納される
以下は passwordbox を使用してユーザにパスワードを入力させ、その後入力文字列を messagebox で表示するマクロです。
passwordbox 'パスワードを入力してください。' 'パスワード入力(passwordbox)'
messagebox inputstr 'inputstrの値'
このマクロを実行すると以下のように入力用のメッセージボックスが表示されます。

入力された文字列はシステム変数「inputstr」に格納されるため、その後の処理で inputstr の値を参照することで入力された情報を利用することができます。
活用例:コンソール接続時のCOMポートをユーザに入力させる
以下はコンソール接続用のCOMポート番号をユーザに入力させてから、入力されたCOMポート番号を使用してコンソール接続するマクロ例です。
inputbox 'COMポート番号を入力してください。' 'COMポート番号入力' '<1以上の整数>'
sprintf2 connectcmd '/C=%s' inputstr
connect connectcmd
sendln
以下は実行結果です。

まとめ
- inputbox、passwordbox を使用することでマクロ実行後にユーザに情報を入力させ、その情報をマクロ処理で使用することができる
- 入力できる情報は1行ずつ
- 入力された情報はシステム変数 inputstr に格納される
- 基礎知識
- コマンド解説
- ログイン
- コマンド実行
- ログ保存
- ファイル・フォルダ操作
- ユーザインターフェース
- 文字列操作
- 変数関連
- マクロのモジュール化
- テクニック
- サブルーチン
- オリジナルマクロ
コメント