HELP

共通マクロ書式

ユーザーデータ書式

NAME ユーザーデータ設定
FORMAT {%SET_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10],キー,値)}
FORMAT {%SET_U(データ名[,分類キー1,分類キー2,...,分類キー10],キー,値)}

データ領域(変数)に文字情報を一時的に記憶できます。データ名単位で、重複しないキーを指定し、複数の値(文字列)を記憶できます。

分類キーを使って、階層的にデータを保存することもできます。分類キーは0個~10個まで指定できます。

同じ名前の分類キーとキーを同じ階層に重複して追加することはできません。

データ内容の保持期間について

ユーザーデータの内容が保持されるのは、ファイルの読み込み開始から終了まで、または、メイン画面のコンテキストメニューからマクロを実行した時から、そのマクロが終了するまでとなります。

例1
データ名「商品データ」、キー「A001-00123」、値「パソコン」をユーザーデータに記憶したい場合
{%SET_USER_DATA(商品データ,A001-00123,パソコン)}
例2
データ名「商品データ」、キー「A001-00123」、値「パソコン」をユーザーデータに記憶したい場合 (省略名を使用)
{%SET_U(商品データ,A001-00123,パソコン)}
例3
データ名「学生リスト」、分類キー1に年、分類キー2に組、キーに番号、値に、氏名をユーザーデータに記憶したい場合
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,2組,1番,山田)}
{%SET_USER_DATA(学生リスト,2年,1組,1番,太田)}
例4
例3に先生の情報も追加したい場合

以下の書き方はできません。「学生リスト,1年,1組,2番,大橋」の「1組」は分類キーで、「学生リスト,1年,1組,山岡先生」の「1組」はキーですが、同じ「1組」のため重複してしまいます。

{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,1組,山岡先生)}
{%SET_USER_DATA(学生リスト,1年,2組,1番,山田)}
{%SET_USER_DATA(学生リスト,1年,2組,村上先生)}
{%SET_USER_DATA(学生リスト,2年,1組,1番,太田)}
{%SET_USER_DATA(学生リスト,2年,1組,木村先生)}

先生と生徒を分類したい場合は、以下の様にするとよいでしょう。

{%SET_USER_DATA(学生リスト,1年,1組,生徒,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,生徒,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,1組,先生,山岡)}
{%SET_USER_DATA(学生リスト,1年,2組,生徒,1番,山田)}
{%SET_USER_DATA(学生リスト,1年,2組,先生,村上)}
{%SET_USER_DATA(学生リスト,2年,1組,生徒,1番,太田)}
{%SET_USER_DATA(学生リスト,2年,1組,先生,木村)}

さらに、先生が複数になる場合も考慮すると以下のようになります。

{%SET_USER_DATA(学生リスト,1年,1組,生徒,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,生徒,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,1組,先生,1番,山岡)}
{%SET_USER_DATA(学生リスト,1年,2組,生徒,1番,山田)}
{%SET_USER_DATA(学生リスト,1年,2組,先生,1番,村上)}
{%SET_USER_DATA(学生リスト,2年,1組,生徒,1番,太田)}
{%SET_USER_DATA(学生リスト,2年,1組,先生,1番,木村)}
{%SET_USER_DATA(学生リスト,2年,1組,先生,2番,中川)}
NAME ユーザーデータ追加
FORMAT {%ADD_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10],値)}
FORMAT {%ADD_U(データ名[,分類キー1,分類キー2,...,分類キー10],値)}

データ領域(変数)に文字情報を一時的に記憶できます。データ名単位で、重複しないキーを指定し、複数の値(文字列)を記憶できます。連番のキーを追加して登録します。追加される連番は自動でカウントアップされていきます。

分類キーを使って、階層的にデータを保存することもできます。分類キーは0個~10個まで指定できます。

例1
データ名「参加者リスト」、値に伊藤、山田、太田をユーザーデータに記憶したい場合
{%ADD_USER_DATA(参加者リスト,伊藤)}
{%ADD_USER_DATA(参加者リスト,山田)}
{%ADD_USER_DATA(参加者リスト,太田)}

この例では内部的には、キー「1」値「伊藤」、キー「2」値「山田」、キー「3」値「太田」と登録されます。
例2
データ名「学生リスト」、分類キー1に年、分類キー2に組、キーは指定せず自動で番号をキーとして、値に氏名をユーザーデータに記憶したい場合
{%ADD_USER_DATA(学生リスト,1年,1組,伊藤)}
{%ADD_USER_DATA(学生リスト,1年,1組,大橋)}
{%ADD_USER_DATA(学生リスト,1年,2組,山田)}
{%ADD_USER_DATA(学生リスト,2年,1組,太田)}

この例では内部的に以下の様なデータが登録されます。 学生リスト  1年   1組    1 伊藤    2 大橋   2組    1 山田  2年   1組    1 太田
NAME ユーザーデータ取得
FORMAT {%GET_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10],キー)}
FORMAT {%GET_U(データ名[,分類キー1,分類キー2,...,分類キー10],キー)}

データ領域(変数)に記憶された文字情報を返却します。(SET_USER_DATAマクロでセットされたデータを返却します。)

例1
データ名「商品データ」、キー「A001-00123」のユーザーデータを取得したい場合
{%GET_USER_DATA(商品データ,A001-00123)}
例2
データ名「商品データ」、キー「A001-00123」のユーザーデータを取得したい場合  (省略名を使用)
{%GET_U(商品データ,A001-00123)}
例3
データ名「学生リスト」のユーザーデータを取得したい場合
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,2組,1番,山田)}
{%SET_USER_DATA(学生リスト,2年,1組,1番,太田)}
{%WRITE_LOG({%GET_USER_DATA(学生リスト,1年,1組,1番)})}
{%WRITE_LOG({%GET_USER_DATA(学生リスト,2年,1組,1番)})}

結果 伊藤 太田
NAME ユーザーデータ取得(番号指定)
FORMAT {%GET_USER_DATA_BY_NUMBER(データ名[,分類キー1,分類キー2,...,分類キー10],番号)}

データ領域(変数)に記憶された文字情報を、番号を指定して返却します。(SET_USER_DATA,ADD_USER_DATAマクロでセットされたデータを返却します。)

例1
データ名「商品データ」、1番目のユーザーデータを取得したい場合
{%SET_USER_DATA(商品データ,A001-00123,パソコン)}
{%SET_USER_DATA(商品データ,A001-00200,マウス)}
{%WRITE_LOG({%GET_USER_DATA_BY_NUMBER(商品データ,1)})}

結果 パソコン
例2
データ名「学生リスト」、1年、1組の2番目に登録されたデータを取得したい場合
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%WRITE_LOG({%GET_USER_DATA_BY_NUMBER(学生リスト,1年,1組,2)})}
結果 大橋
NAME ユーザーデータキー取得(番号指定)
FORMAT {%GET_USER_DATA_KEY_BY_NUMBER(データ名[,分類キー1,分類キー2,...,分類キー10],番号)}

データ領域(変数)に記憶されたキー情報を、番号を指定して返却します。(SET_USER_DATA,ADD_USER_DATAマクロでセットされたデータのキーを返却します。)

例1
データ名「商品データ」、1番目のユーザーデータのキーを取得したい場合
{%SET_USER_DATA(商品データ,A001-00123,パソコン)}
{%GET_USER_DATA_KEY_BY_NUMBER(商品データ,1)}

結果 A001-00123
例2
データ名「学生リスト」、1年、1組の2番目に登録されたキーを取得したい場合
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%WRITE_LOG({%GET_USER_DATA_KEY_BY_NUMBER(学生リスト,1年,1組,2)})}
結果 2番
NAME ユーザーデータ数取得
FORMAT {%GET_USER_DATA_COUNT(データ名[,分類キー1,分類キー2,...,分類キー10])}

ユーザーデータに記憶されたデータの個数を返却します。データ名を指定します。

データ名と分類キーを指定することもできます。その場合は最後の分類キーまで指定してください。
例1
データ名「商品データ」のデータ数を取得したい場合
{%SET_USER_DATA(商品データ,A001-00123,パソコン)}
{%SET_USER_DATA(商品データ,A001-00200,マウス)}
{%WRITE_LOG({%GET_USER_DATA_COUNT(商品データ)})}

結果 2
例2
データ名「学生リスト」のデータ数を取得したい場合
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,2組,1番,山田)}
{%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト)})}
{%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト,1年)})}
{%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト,1年,1組)})}
{%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト,1年,1組,1番)})}

結果 0 ← 分類キーを最後まで指定していないので0となる。 0 ← 分類キーを最後まで指定していないので0となる。 2 0 ← 最後の引数に分類キーではなくキーを指定しているので0となる。
NAME ユーザーデータキー数取得
FORMAT {%GET_USER_DATA_KEY_COUNT(データ名[,分類キー1,分類キー2,...,分類キー10])}

ユーザーデータに記憶されたキーの個数を返却します。データ名を指定します。

データ名と分類キーを指定することもできます。各階層の分類キーの数を取得できます。

例1
データ名「学生リスト」のキーの数を取得したい場合
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,2組,1番,山田)}
{%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト)})}
{%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト,1年)})}
{%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト,1年,1組)})}
{%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト,1年,1組,1番)})}

結果 1 2 2 0 ← 最後の引数に分類キーではなくキーを指定しているので0となる。
NAME ユーザーデータ存在チェック
FORMAT {%EXISTS_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10,キー])}

ユーザーデータに記憶されているデータのデータ名、分類キー、又はキーが存在するかチェックします。存在する場合、「True」を返却します。存在しない場合は、「Flase」を返却します。

例1
データ名「商品データ」のキー「A001-00123」のユーザーデータが存在するかチェックして、存在するなら「データあり」を表示、存在しないなら「データなし」を表示する。
{%IF({%EXISTS_USER_DATA(商品データ,A001-00123)}=True,
  {%MSGBOX(データあり)}
,
  {%MSGBOX(データなし)}
)}
例2
データ名「学生リスト」の分類キー又は、キーの存在チェックをしたい場合
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)}
{%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)}
{%SET_USER_DATA(学生リスト,1年,2組,1番,山田)}
{%WRITE_LOG({%EXISTS_USER_DATA(学生リスト)})}
{%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年)})}
{%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年,1組)})}
{%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年,1組,1番)})}
{%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,2年)})}
{%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年,1組,3番)})}

結果 True True True True False False
NAME ユーザーデータ削除
FORMAT {%DELETE_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10,キー])}

ユーザーデータを削除します。キーは省略可能で、キーを省略した場合は、データ名で定義された全てのキーと値が削除されます。データ名とキーを指定した場合は、該当のキーと値のみが削除されます。

例1
データ名「商品データ」のキー「A001」を削除する。
{%DELETE_USER_DATA(商品データ,A001)}
例2
データ名「商品データ」の全てのデータを削除する。
{%DELETE_USER_DATA(商品データ)}
NAME ユーザーデータ読み込み
FORMAT {%LOAD_USER_DATA(ファイル名,データ名[,ファイル削除指定])}

SAVE_USER_DATAマクロによって、出力されたユーザーデータをファイルから読み込みます。

値に独自の形式の識別文字(改行や、タブ)が含まれる場合は、マッチした制御文字に置き換え、読み込みます。

ファイル削除指定には、「Delete」または、「Leave」を指定できます。「Delete」を指定した場合は、データ読込後に、ファイルを削除します。「Leave」を指定した場合は、ファイルを削除せず、そのまま残します。

例1
「D:\Test\UserData.txt」からユーザーデータをデータ名「商品データ」に読み込み、読込後にファイル「D:\Test\UserData.txt」を削除する。
{%LOAD_USER_DATA(D:\Test\UserData.txt,商品データ,Delete)}
NAME ユーザーデータ保存
FORMAT {%SAVE_USER_DATA(ファイル名,データ名)}

ユーザーデータの内容をファイルに出力します。出力するファイルはテキスト形式で、キーと値がタブで区切られたTAB区切りデータになります。複数のデータがある場合は、1データ1行で改行されて出力されます。

また、値に、改行や、タブが含まれる場合は、独自の形式で識別文字に置き換え保存します。

例1
データ名「商品データ」のユーザーデータを「D:\Test\UserData.txt」に保存する。
{%SAVE_USER_DATA(D:\Test\UserData.txt,商品データ)}

グローバルデータ書式

NAME グローバルデータ取得
FORMAT {%GET_GLOBAL_DATA(データ名)}
FORMAT {%GET_G(データ名)}

グローバルデータ設定で設定された文字列を、引数のデータ名により返却します。

例1
名前が「PATH」のグローバルデータを取得したい場合
{%GET_GLOBAL_DATA(PATH)}