eDocFinder Help

共通マクロ書式

ユーザーデータ書式
ユーザーデータ設定

{%SET_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10],キー,値)}

{%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番,中川)}
ユーザーデータ追加

{%ADD_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10],値)}

{%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 太田
ユーザーデータ取得

{%GET_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10],キー)}

{%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番)})}
結果
伊藤
太田
ユーザーデータ取得(番号指定)

{%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)})}
結果
大橋
ユーザーデータキー取得(番号指定)

{%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番
ユーザーデータ数取得

{%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となる。
ユーザーデータキー数取得

{%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となる。
ユーザーデータ存在チェック

{%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
ユーザーデータ削除

{%DELETE_USER_DATA(データ名[,分類キー1,分類キー2,...,分類キー10,キー])}

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

例1 データ名「商品データ」のキー「A001」を削除する。

{%DELETE_USER_DATA(商品データ,A001)}

例2 データ名「商品データ」の全てのデータを削除する。

{%DELETE_USER_DATA(商品データ)}
ユーザーデータ読み込み

{%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)}
ユーザーデータ保存

{%SAVE_USER_DATA(ファイル名,データ名)}

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

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

例1 データ名「商品データ」のユーザーデータを「D:\Test\UserData.txt」に保存する。

{%SAVE_USER_DATA(D:\Test\UserData.txt,商品データ)}
グローバルデータ書式
グローバルデータ取得

{%GET_GLOBAL_DATA(データ名)}

{%GET_G(データ名)}

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

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

{%GET_GLOBAL_DATA(PATH)}