目次
変数が定義済みか確認する
Tera Term マクロで変数が定義されている前提の処理を行う際、対象変数が定義されていないとエラーになります。
エラーでマクロが停止することを防止するために、事前に変数が定義済みかをチェックし、未定義の場合にはメッセージを表示してマクロを停止するといった処理を行うことができます。
ここでは変数が定義済みかをチェックする方法を説明します。
動作確認環境
- Tera Term Version 4.104
変数が定義済みか確認するコマンド【ifdefined】
Tera Term マクロには「ifdefined」というコマンドがあり、このコマンドで指定の変数が定義済みか確認することができます。このコマンドの使い方は以下の通りです。
ifdefined の使い方
- ifdefined <変数名>
補足
- <変数名>:定義済みか確認する対象の変数名
- 変数の定義状況によってシステム変数 result に値が格納される
- 未定義 ⇒ result ← 0
- 整数型 ⇒ result ← 1
- 文字列型 ⇒ result ← 3
- ラベル ⇒ result ← 4
- 整数型配列 ⇒ result ← 5
- 文字列型配列 ⇒ result ← 6
上記の通り、変数が未定義の場合は result に 0 が格納されます。
ifdefined hogepiyo
messagebox result 'resultの値' ;変数 hogepiyo は未定義のため result は 0 となる
hogepiyo = 100
ifdefined hogepiyo
messagebox result 'resultの値' ;変数 hogepiyo は整数型のため result は 1 となる
この仕様から、ifdefined を実行後 result の値が 0 の場合は変数が未定義であると分かります。使用予定の変数を ifdefined で定義済みか確認し、その後 result が 0 だった場合にエラーメッセージを表示してマクロを停止するといった使い方ができます。
ifdefined hogepiyo
if result = 0 then
messagebox '変数hogepiyoが未定義のためマクロを停止します' 'エラー'
end
endif
また、変数の定義有無によって処理を変えるといった設計にすることもできます。
ifdefined hogepiyo
if result = 0 then
;変数hogepiyoが未定義の場合の処理
else
;変数hogepiyoが定義済みの場合の処理
endif
まとめ
CHECK!
- 変数が定義済みか確認するためには ifdefined コマンドを使用する
- 変数が未定義の場合のエラーを防止するためには変数の定義状況をチェックしよう
- 変数の定義状況によって処理を分岐したい場合にも ifdefined が使える
- 基礎知識
- コマンド解説
- ログイン
- コマンド実行
- ログ保存
- ファイル・フォルダ操作
- 文字列操作
- 変数関連
- マクロのモジュール化
- テクニック
- サブルーチン
- オリジナルマクロ
【整備済み品】HP ノートパソコン 830G5/13.3型フルHD/Win 11/MS Office H&B 2019/第7世代i5-7200U 2.50GHz/メモリ 16GB/SSD 512GB/指紋リーダー/USB 3.0/WEBカメラ/初期設定済
コメント