マクロは陰で使うもの。生産性を上げても給料は上がらず仕事が増えるだけなので仕事をサボろう!

Tera Term マクロで変数が定義済みか確認する方法【ifdefined】

目次

変数が定義済みか確認する

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 が使える

Tera Term マクロ関連記事リスト


Amazon で買えるおすすめアイテム(アフィリエイト)

ブログ始めるなら 【アフィリエイトリンク】

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次