マクロ命令一覧


標準的な命令(予約語)

命令 処理名 SHEET
指定
G
E
T
S
E
T
処理内容
if(条件){ } else { }
※elseは任意
条件分岐処理 条件が一致した場合は"{"、"}"で囲まれた処理を実行します。
条件に一致しない場合はelse以下の"{"、"}"で囲まれた処理を実行します。
ただしelseの記述が無い場合は処理を無視します。

条件とは値、関係演算子、値の結果の正否を判定します。
値には型は任意で指定できますが日付型と数値型のような場合はエラーと
なります。
※関係演算子には下記があります。
  (==、=、>、>=、<、<=、<>、!=)
  ==と=は同じ意味で一致を意味します。文字列の比較の場合は大文字、小文字も
  判断します。
  <>と!=は同じ意味で不一致を意味します。
※OR条件はありません。
※AND条件は5つまで指定可能。 キーワードは"and"または"&&"。
while(条件){ } 繰り返し処理 条件が一致した間は"{"、"}"で囲まれた処理を繰り返し実行します。
条件を満たさない処理を書くと無限ループとなるので注意ください。

使用例:nRowが0から9までの10回ループを繰り返します。
nRow = 0;
while(nRow < 10)
{
 命令;
 nRow = nRow + 1;
}
break 繰り返し処理抜ける while()の処理内で使用すると読み込んだ時点でループを抜けます。
return [戻り値] 関数に戻る  関数の定義で戻り値ありの場合は返す値の指定が可能。
void指定の関数の場合は[戻り値]の指定は出来ません。

変数宣言(予約語)

命令 内容 備考
string 文字列型 文字列を扱います。
int 整数型 数値、小数点を含まない。
double 数値型 数値、小数点含む。
date 日付型 日付を扱う変数を定義します。
sheet シート型 シートを扱う変数です。
該当のシートがない場合は実行時にエラーとなります。
関数指定には指定不可。
例:aaaという変数に"sheet1"を指定して、"sheet1"のシートでセルに値をセット。
sheet aaa;
aaa = "sheet1";
aaa.cell(4,5) = "aaaa";
void 戻り値なし 関数指定のときのみ指定可能。

◇定数(事前定義変数)※厳密には定数では無いので値を置き換えることも出来るしローカル変数で定義も可能

命令 内容 備考
true int 1
false int 0
CRLF string 改行文字 
COLOR_BLACK int 黒色(0)
COLOR_WHITE int 白色(16777215)
COLOR_GRAY int 灰色(8355711)
COLOR_RED int 赤色(3750399)
COLOR_BLUE int 青色(15556683)
COLOR_GREEN int 緑色(5299016)
COLOR_YELLOW int 黄色(3145727)
NON int 0 : 基本的にDEF値
LEFT int 1:左詰め(cell_align()で使用)
CENTER int 2:中央(cell_align()やcell_valign()で使用)
RIGHT int 3:右詰(cell_align()で使用)
TOP int 1:上詰め(cell_valign()で使用)
BOTTOM int 3:下詰め(cell_valign()で使用)
UPPER int 1:大文字(chg_str()で使用) 
LOWER int 2:小文字(chg_str()で使用) 
FULL_WIDTH_CHAR int 3:全角(chg_str()で使用) 
HALF_WIDTH_CHAR int 4:半角(chg_str()で使用) 
HIRAGANA int 5:ひらがな(chg_str()で使用)
KANA int 6:全角カタカナ(chg_str()で使用)
AS0〜AS4 int 配列区分用で0から4を指定するより別で使ってる変数というのがわかりやすい
のではないかと用意したもの。
KW_SHEET int 0:get_keyword()の引数に指定するID
・QuitList画面で選択を実行して該当キーワードがあれば後ろに書かれた名前の
 シートに遷移する。
・マクロ登録画面のメニュー[オプション]-[キーワード編集]より変更可能
KW_COL int 1:get_keyword()の引数に指定するID
・QuitList画面で選択を実行して該当キーワードがあれば後ろに書かれた数字の
 列にカーソルを移動する。
・マクロ登録画面のメニュー[オプション]-[キーワード編集]より変更可能
KW_ROW int 2:get_keyword()の引数に指定するID
・QuitList画面で選択を実行して該当キーワードがあれば後ろに書かれた数字の
 行にカーソルを移動する。
・マクロ登録画面のメニュー[オプション]-[キーワード編集]より変更可能
KW_SET int 3:get_keyword()の引数に指定するID
・QuitList画面で選択を実行して該当キーワードがあれば後ろに文字列全てを
 カーソル位置に値をセットする。
・マクロ登録画面のメニュー[オプション]-[キーワード編集]より変更可能
KW_COPY int 4:get_keyword()の引数に指定するID
QuitList画面で選択を実行して該当キーワードがあれば後ろに文字列全てを
クリップボードへコピーする。
KW_BOOK_PATH int 5:get_keyword()の引数に指定するID
開いているブックのパスを取得する。(未保存の場合は空を返す)
 
KW_BOOK_FILE int 6:get_keyword()の引数に指定するID
開いているブックのファイル名を取得する。(未保存の場合は空を返す)
 
KW_RET int 7:get_keyword()の引数に指定するID
QuitList画面で選択を実行時、該当キーワードがあれば改行文字に置き換える。
 

全体操作

命令 引数 SHEET
指定
G
E
T
S
E
T
処理内容
clear_all() なし シート上のデータを全て削除
clear_row(row) int row : 行 指定した行以下の行データをシート上から削除
quit() なし マクロの処理を終了します。
cr = RGB(r,g,b) int r : 赤色(0-255)
int g : 緑色(0-255)
int b : 青色(0-255)
<int cr> 色番号
RGBの色番号を生成する。
str = hex(val, [kind]) int val : 値
int kind : 種類(0:通常 1-8:頭0付きの桁数 -1:RGBの6桁)
<string str>16進の文字列
str 数値を16進の内容で返します。
※文字列を引数で渡すと空も文字も0を返します。
undo_off() なし UNDO処理をクリアして動かなくします。offにすることでレスポンスがアップします。
create_array(size) int size : 確保する領域(1-10000) 配列関数の領域を確保します。処理内で一度設定すると再定義は出来ません。 
サイズを10と指定した場合は領域としては0から9までの領域が確保されます。
確保した領域を参照したり取得するにはarray()を使用します。
※再度指定すると領域内の値はクリアされます。
val = array(index)
array(index) = val
int index : 使用するインデックス値
<int val>設定した数値
int int int型の配列的に値を保持したり取得したり出来ます。
使用する前にcreate_array()で領域を確保する必要があります。
例:create_array(10);
  i = array(0);
  array(9) = 5; 
create_array_str(size, [配列区分]) int size : 確保する領域(1-50000)
int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
配列関数の領域を確保します。処理内で一度設定すると再定義は出来ません。 
サイズを10と指定した場合は領域としては0から9までの領域が確保されます。
確保した領域を参照したり取得するにはarray_str()を使用します。
 
str = array_str(index, [配列区分])
array_str(index, [配列区分]) = str
int index : 使用するインデックス値
<string str>設定した文字列
int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
str str string型の配列的に値を保持したり取得したり出来ます。
使用する前にcreate_array_str()で領域を確保する必要があります。
例:create_array_str(10);
  strData = array_str(0);
  array_str(9) = "test";
array_str_save(name, [配列区分]) string name : リスト名
int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
指定した配列区分のarray_str()の内容をリスト名で保存します。

 
array_str_load(name, [配列区分]) string name : リスト名
int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
指定した配列区分のarray_str()にリストの内容を読み込みます。
array_str_ins(index, [配列区分]) int index : 挿入する位置(0から)
int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
array_str()のindex値に行を追加します。
 
array_str_del(index, [配列区分]) int index :削除入する位置(0から)
int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
 
array_str()のindex値の行を削除します。
array_str_rota(index1, index2, [配列区分]) int index1 :入れ替え元(0から)
int index2 : 入れ替え先(0から)
int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
array_str()のindex1の位置の内容とindex2の位置の内容の値を入れ替えます。 
get_array_str_max([配列区分]) int 配列区分 : AS0からAS5の区分
 (DEF:AS0)
<int max>:最大値
int array_str()に指定しているリスト数を取得します。
初期化する場合はcreate_array_str()を再度実行すると0行になる。 
max = init_array_word(data) string data : テキスト内容
<int max> : ワード数
int 文字列をセットします。
セットするとワード単位の配列を作成。
array_word()でワード単位の内容を設定・取得
get_word()で原文の内容から取得できる文字列を取得する。
※ここでのワードとは主に半角のシステムとか文字列を判断に分解します。
 "や'で囲まれている内容は1つのワードと捉えます。
※全角の分解は行わないので注意。

【使用例】
nMax = init_array_word("<input type=""text"" />");
cell(1,1) = array_word(0);  // <
cell(2,1) = array_word(1);  // input
cell(3,1) = array_word(2);  // type
cell(4,1) = array_word(3);  // =
cell(5,1) = array_word(4);  // "text"
cell(6,1) = array_word(5);  // />

str = array_word(index,[kakomi])
array_word(index,[kakomi]) = str
int index : ワードインデックス(0から)
int kakomi: 囲みの有無(0:あり 1:囲みなし) (get時の指定はエラー)
<string str>設定した単語
str str init_array_word()で取得したワード単位に値を取得します。
引数kakomiは"や'で囲まれたものは1ワードとして扱うが囲みを外した状態で取得する
場合は1を指定する。
囲み内で同囲み文字がある場合は囲み文字を1文字として扱う

【例】
"Yama Tarou"というデータはワードとしては引数kakomiが0または「なし」のとき
"Yama Tarou"と取得します。
引数Kakomiが1の場合はYama Tarouと囲みを外して取得します。

str = get_word([index], [su], [trim]) int index : ワードのインデックス
       -1:のとき先頭の前余白含む
       0からワードインデックス
int su : 取得ワード数(-1でindex
    以降全文)
    未指定のときは1
int kakomi : 後ろ余白有無
    (0=そのまま 1=除く)
    未指定のときは1
<string str>単語
str init_array_word()で設定された文章をワード単位に取得します。
array_word()での取得の違いは単語間の余白を含めて取得できる点です。
引数なしの場合は設定した値全てを取得します。

【使用例】
nMax = init_array_word() = " <input type = 'text' />";
cell(1,1) = get_word();      // [SPC]<input type = 'text' />
cell(2,1) = get_word(-1,1,0);  // [SPC] ※get_word(-1)だと空になります。
cell(3,1) = get_word(0);     // <
cell(4,1) = get_word(0,2);    // <input
cell(5,1) = get_word(0,2,0);   // <input[SPC]
cell(6,1) = get_word(2,3);    // type = 'text'
max = get_word_max() <int max> ワード最大数 int init_array_word()で設定した文字列内で発生したワード数 
flag = is_word_kakomi() <int flag> 0=false 1=true int init_array_word()で取り込んだ文字列の囲み文字の整合性がとれてない場合は0(false)
となります。
例:「備考="abc」の場合はfalse
使い方としてはtrueになるまで次行のデータをunion(data, CRLF, 次行のデータ)という
風に結合した文字列をinit_array_word()にセットしてtrueになるまで組み立てから
各ワード関連の関数を利用するといった使い方を想定してます。。

※配列区分 : 2次元配列的なものというよりarray_strを使用できる個数を増やすという意味のもの(0から4(定数はAS0からAS4を設定))


セルの操作

命令 引数 SHEET
指定
G
E
T
S
E
T
処理内容
str = cell(row,col)
cell(row,col) = str
int row : 行
int col : 列
<str str> : セルに設定する値
str str セルに値をセットまたは取得
cell_back_color(row,col) = cr
cr = cell_back_color(row,col)
int row : 行
int col : 列
<int cr> : 色(-1のときは設定解除)
int int セルの背景色をセットまたは取得
(取得のときは未指定でもデフォルトの色を返す)
cell_font_color(row,col) = cr
cr = cell_font_color(row,col)
int row : 行
int col : 列
<int cr> : 色(-1のときは設定解除)
int int セルの文字色をセットまたは取得
(取得のときは未指定でもデフォルトの色を返す)
cell_keisen(row,col) = 罫線種類
cell_keisen_top(row,col) = 罫線種類
cell_keisen_left(row,col) = 罫線種類
cell_keisen_bottom(row,col) = 罫線種類
cell_keisen_right(row,col) = 罫線種類
※上記命令は全て値取得も可能
int row : 行
int col : 列
<int 罫線種類>
  0=なし
  1=細線
  2=点線
  3=太線
int int セルに罫線を引く。
cell_keisen()はセル全体に罫線を引く
(ゲットすると1111という風に左、上、右、下の値を取得)
cell_keisen_top()はセルの上に罫線を引く
cell_keisen_left()はセルの左に罫線を引く
cell_keisen_bottom()はセルの下に罫線を引く
cell_keisen_right()はセルの右に罫線を引く
cell_align(row,col) = 配置 int row : 行
int col : 列
<int 配置>
 0=DEF 1=左詰 2=中央 3=右詰
int int セルの文字配置(横)をセットまたは取得
0=DEFの場合は数字だと判断すれば自動的に右詰します。
cell_valign(row,col) = 配置 int row : 行
int col : 列
<int 配置>
 0=DEF 1=上詰 2=中央 3=下詰
int int セルの文字配置(縦)をセットまたは取得

列または行の操作

命令 引数 SHEET
指定
G
E
T
S
E
T
処理内容
col_width(col) = width
width = col_width(col)
int col : 列
<int width> : 幅(最小から最大値)以外の数値は最小または最大に変換される
int int 指定の列の幅を設定または取得
row_height(row) = height
height = row_height(row)
int row : 行
<int height> : 高さ(最小から最大値)以外の数値は最小または最大に変換される
int int 指定の行の高さを設定または取得
ins_col(col) int col : 列 指定の列に列を追加
del_col(col) int col : 列 指定の列を削除
ins_row(row) int row : 行 指定の行に行を追加
del_row(row) int row : 行 指定の行を削除
flag = is_row_view(row) int row : 行
<int flag> 0=false 1=true
int 指定の行が表示か非表示かを判断する。(表示:1(true)、非表示:0(false))

各値の取得

命令 引数[戻り値] SHEET
指定
G
E
T
S
E
T
処理内容
col = get_cur_col() <int col> カーソルの列 int マクロ実行時のカーソルの列位置
row = get_cur_row() <int row> カーソルの行 int マクロ実行時のカーソルの行位置
max = get_col_max() <int max> 列の最大数 int 取得時点の列の最大数
max = get_col_su(row) int row : 調べる行
<int max> 指定行の文字列のある列の最大値 
int 指定行の文字列のある最大列 
max = get_row_max() <int max> 行の最大数 int 取得時点の行の最大数
max = get_sheet_max() <int max> シート数 int シートの最大数
name = get_sheet_name(index) int index : シートのインデックス(0から)
<string name> シート名
int 指定インデックスのシートの名前
index = get_sel_sheet_idx() <int index> 選択中のシートインデックス int 選択中のシートのインデックス値 
col = get_sel_left() <int col> 範囲選択している
カーソルの左の列位置
int マクロ実行時の範囲選択したカーソルの左の列位置
col = get_sel_right() <int col> 範囲選択している
カーソルの右の列位置
int マクロ実行時の範囲選択したカーソルの右の列位置
row = get_sel_top() <int row> 範囲選択している
カーソルの上の行位置
int マクロ実行時の範囲選択したカーソルの上の行位置
row = get_sel_bottom() <int row> 範囲選択している
カーソルの下の行位置
int マクロ実行時の範囲選択したカーソルの下の行位置
flag = is_num(str) string str : 数字かどうかチェックする文字列
<int flag> 0=false 1=true
int 数字かどうかチェック
flag = is_date(str) string str : 日付かどうかチェックする文字列
<int flag> 0=false 1=true
int 日付かどうかチェック
para = get_para() <int para> ブックマクロ実行のパラメータ int ブックマクロ実行のボタンオブジェクトで指定する値を取得。
メニュー、ショートカットからの実行は0となります。
ran = get_random(hani) int hani : ランダムの設定する範囲
<int ran> ランダムの値
int 引数haniに10を指定すると、返す乱数値は0から9。
引数haniの指定可能な範囲は1から1000000。
dbl = round(val, syou, kind) int val : 浮動小数点数値
int syou : 小数点桁数(0-4)
int kind : 0:四捨五入 -1:切捨 1:切上
<double dbl> 指定の小数点の値
dbl 小数点の桁数を指定の桁数で四捨五入、切り捨て、切り上げ。 
word = get_keyword(id) int no : 取得するキーワードのID
<string word> キーワード 
str 規定のIDのキーワードとなる固定値を取得する。
詳細は定数側を参照 

インタフェース

命令 引数[戻り値] SHEET
指定
G
E
T
S
E
T
処理内容
msg(xxx) string xxx : 表示するメッセージ メッセージボックス(情報アイコン)を表示
msg_err(xxx) string xxx : 表示するメッセージ メッセージボックス(警告アイコン)を表示
flag = msg_yesno(xxx) string xxx : 表示するメッセージ
<int flag> Yes=1(true)、No=0(false)
int メッセージボックス(警告アイコン)を表示、
「はい」「いいえ」の選択を行います。
msg_run(xxx) string xxx : 表示するメッセージ 実行を中止するかどうか確認メッセージを表示、
「はい」「いいえ」の選択で「いいえ」を選択するとマクロ処理を終了します。
quit([シート名],[行],[列]) string シート名 : 遷移先シート名
※省略すると遷移なし
int 行:遷移後のカーソル行位置
int 列:遷移後のカーソル列位置
マクロの処理を終了します。 
引数にシート名を指定した場合、終了後、対象シートを開く。
該当のシートがない場合はそのまま終了。
※シート移動なしでカーソル位置を変える場合はシート名に空を指定
※行のみ指定した場合は列は1列目に移動
quit_msg(xxx, [シート名],[行],[列]) string xxx : 表示するメッセージ
string シート名 : 遷移先シート名
※省略すると遷移なし
int 行:遷移後のカーソル行位置
int 列:遷移後のカーソル列位置
処理を終了して、メッセージ(情報アイコン)を表示。
処理最後のメッセージの場合、
処理の最後で処理を抜ける必要がなくてもmsg()より
こちらを使用することを推奨します。
理由は最後の描画を終えてのメッセージ表示で、中断画面の
表示も無い状態で表示するため。

引数にシート名を指定した場合、終了後、対象シートを開く。
該当のシートがない場合はそのまま終了。
※シート移動なしでカーソル位置を変える場合はシート名に空を指定
※行のみ指定した場合は列は1列目に移動
quit_msg_err(xxx, [シート名],[行],[列]) string xxx : 表示するメッセージ
string シート名 : 遷移先シート名
※省略すると遷移なし
int 行:遷移後のカーソル行位置
int 列:遷移後のカーソル列位置
処理を終了して、メッセージ(警告アイコン)を表示。
処理最後のメッセージの場合、quit_msg()同様の理由より、
msg_err()を推奨します。

引数にシート名を指定した場合、終了後、対象シートを開く。
該当のシートがない場合はそのまま終了。
※シート移動なしでカーソル位置を変える場合はシート名に空を指定
※行のみ指定した場合は列は1列目に移動
quit_macro(name,[シート名],[行],[列]) string name : マクロ名
string シート名 : 遷移先シート名
※省略すると遷移なし
int 行:遷移後のカーソル行位置
int 列:遷移後のカーソル列位置

 
処理を終了して指定したマクロ名のマクロを実行。
ただし、1回のみ使用可

引数にシート名を指定した場合、終了後、対象シートを開く。
該当のシートがない場合はそのまま終了。
※シート移動なしでカーソル位置を変える場合はシート名に空を指定
※行のみ指定した場合は列は1列目に移動
quit_list(name,title,msg) string name : リスト名
 (Max:30文字、"\"文字使用不可)
string title : タイトル
 (Max:30文字、"\"文字使用不可)
string msg : メッセージ
 (Max:50文字、"\"文字使用不可)
処理を終了してリスト名のファイルを読み込んで
QuitList画面に内容を一覧表示します。

QuitList画面はリストの内容に特定のキーワードが記述される
場合、選択したときに該当の動作を行います。
詳細はこちらを参考ください。

QuitList画面は「閉じる」ボタン押下で画面を非表示にしますが
メニュー[マクロ]-[QuitList画面の再描画]で再度表示が可能です。
yyy = input(xxx, len, init) string xxx : 表示するメッセージ(Max:50文字)
int len : 入力可能な文字数(1-50)
string init : 初期値
<string yyy> 入力値
string ・入力を促すメッセージ画面を表示。未入力ではエラーとなるので
 「キャンセル」した場合は未入力となります。
・文字数を超える初期値を設定するとエラーとなります。
 アプリケーション用マクロで初期値に一番左のシートを初期値
 にしたりしていますが長い名前だとエラーになります。
input_array_str(title, msg, [配列区分]) string title : タイトル(Max:30文字)
string msg : メッセージ(Max:50文字)
int 配列区分(AS0からAS4)
  (使用するarray_str()の区分)
array_str()に画面から値を設定する。
入力できる文字数は50文字
重複も可能 
index = select_array_str(title, msg, [配列区分]) string title : タイトル(Max:30文字)
string msg : メッセージ(Max:50文字)
int 配列区分(AS0からAS4)
  (使用するarray_str()の区分)
<int index>選択した
int array_str()の内容をリスト画面で表示して選択したindex値を返す。
キャンセルは-1を返す。

文字列操作

命令 引数[戻り値] SHEET
指定
G
E
T
S
E
T
処理内容
zzz = union(xxx, y2,[y3],[y4],[y5]) string xxx, yyyy・・・ : 文字列1から文字列5

<string zzz> 文字列1+文字列2+・・+文字列5
2つから5つの文字列の引数を結合
例:引数の数を2から5まで設定可能
str = union("a","b","c","d","e");
str2 = union("A","B");
zzz = div(xxx, kgri, iti) string xxx : 区切り文字を含む文字列
string kgri : 区切り文字
int iti : 位置(0から)
<string zzz> 取得した文字列
string 区切り文字列から必要な文字列を取り出します。
例:zz = div("AA,BB,CC", ",", 1);
 変数zzに"BB"が入る。位置が0だと"AA"、位置が2だと"CC"
pos = str_find(pos, xxx, find, [種類]) int pos : 開始位置(0から)
string xxx : 検索対象文字列
string find : 検索する文字列
int 種類 : 0=完全一致 1=大文字小文字判断なし
<int pos> 見つかった位置(-1のとき該当なし)
int 文字列から検索する文字列が見つかった位置を返します。
zzz = replace(xxx, find, rep, [kind]) string xxx:置換対象文字列
string find:検索文字列
string rep:findで見つけた文字列を置き換える文字列
int kind:0=完全一致 1=大文字小文字判断なし
<string zzz> 置換対象文字列(xxx)を置換後の結果 
string 置換対象文字列内にある検索文字列で一致する文字列部分をrepで
指定した文字列に置換します。
(同じ文字列があれば全て変換)
zzz = substr(xxx, 開始位置, [長さ]) string xxx : 文字列
string 開始位置 : 抜き取る文字の先頭位置(0から)
int 長さ : 取得する文字列の長さ
      (0から1000)
      ※省略した場合は残り全て
<string zzz> 切り取った文字列
string 文字列から一部抜き取ります。
注意:改行マークは0x0D,0x0Aですがその途中でも切れますが
そのデータ上ではカーソル位置がおかしくなったりします。
一応、保存したり読み込めたりはしましたがそれ以外にも
バグを引き起こす恐れがあるので注意ください。
サロゲートペアなんかも同様です。
zzz = chg_str(xxx, 変換) string xxx : 文字列
int 変換 : 変換する種類
 0:変換なし
 1:大文字
 2:小文字
 3:全角変換
 4:半角変換
 5:全角ひらがな
 6:全角カタカナ

<string zzz> 変換後の文字列
string 文字列から指定の文字種に変換
ln = length(xxx) string xxx : 文字列
<int ln> 文字列の長さ
int 文字列の長さを返します。
サロゲートペア文字は1文字で2とカウントします。
改行文字も2とカウントします。

日付操作

命令 引数[戻り値] SHEET
指定
G
E
T
S
E
T
処理内容
next_dt = inc_day(dt, add) date dt : 対象の日付
int add : 進める日数(-999から999)
<date next_dt> 進めた日数の日付
date 日付を指定の日数進めます。
0年とか9999年を超えるような日付にはなりません。
next_dt = inc_month(dt, add) date dt : 対象の日付
int add : 進める月数(-999から999)
<date next_dt> 進めた月数の日付
date 日付を指定の月数で進めます。
0年とか9999年を超えるような日付にはなりません。
dt = get_now() <date dt> 今日の日付(時間あり)を取得 date 今日の日付(時間あり)を取得(YYYY/MM/DD HH:MM:SS)
dt = get_today() <date dt> 今日の日付を取得 date 今日の日付(時間なし)を取得(YYYY/MM/DD)
yyyy = get_year(dt) date dt : 日付
<int yyyy> 日付の年
int 日付の年を取得
mm = get_month(dt) date dt : 日付
<int mm> 日付の月
int 日付の月を取得
dd = get_day(dt) date dt : 日付
<int dd> 日付の日
int 日付の日を取得
hh = get_hour(dt) date dt : 日付
<int hh> 時間の時
int 時間の時を取得
mm = get_minute(dt) date dt : 日付
<int mm> 時間の分
int 時間の分を取得
ss = get_second(dt) date dt : 日付
<int hh> 時間の秒
int 時間の秒を取得
ww = get_week(dt) date dt : 日付
<int ww> 日付の曜日番号
int 日付の曜日番号を取得。
 1=月曜日
 2=火曜日
 3=水曜日
 4=木曜日
 5=金曜日
 6=土曜日
 7=日曜日

クリップボード操作

<クリップボードでの前提条件>
  区切り文字(デフォルトでTAB)ごとに次のセルに値を設定します。
  区切り文字をカンマとかで指定は可能ですがTAB文字は無条件に区切り文字として判定します。
  例外としてはclip_board()では区切り文字に関係なく文字列として値を扱います。ただし、TAB文字は半角スペースに置き換えられます。


簡易命令/設定系
命令 引数[戻り値] SHEET
指定
G
E
T
S
E
T
処理内容
clip_board() = str
str = clip_board()
<string str>
  クリップボードから取得・設定する文字列
str str 文字列として扱う場合は簡易的にクリップボードとやりとりする命令。
タブ文字は半角スペースで置き換えられる。
cb_to_cell(top, left, [bottom], [right]) int top : 貼り付け開始の行
int left : 貼り付け開始の列
int bottom : 貼り付け終了行
 (未指定でクリップボードでの区切り分全行)
int right : 貼り付け終了列(
 (未指定でクリップボードでの区切り分全列)
クリップボードの内容を指定のセルに貼り付けます。 
※undo_off()を実行しない場合は500KBまで使用可能です。
 undo_off()せずに実行すると遅すぎて固まったようになるため。
cell_to_cb(top, left, [bottom], [rigth]) int top : コピー開始の行
int left : コピー開始の列
int bottom : コピー終了行
 (未指定でデータ最終行)
int right : コピー終了列(
 (未指定でデータ最終列)
 
指定セルの内容をクリップボードへコピーします。
cb_opt(str kugiri,
 [int 囲み種類],(詳細はこちら
 [str 囲み文字],
 [int 最大サイズ(MB)])
cb_opt_read(※cb_optと同じ引数)
cb_opt_write((※cb_optと同じ引数)
str kugiri : 区切り文字
 ※文字列の頭1文字のみ有効
 ※空の場合はTABのみ
 ※TABは区切りとして必須
int 囲み種類 : 囲み文字の設定有無
 0=なし 1=全て 2=改行のみ 3=改行、区切等
 DEF:2、区切り文字がTAB以外のときDEF:3
str 囲み文字
int 最大サイズ(MB)(0-10)(0は制限なし)
  デフォルトは5MB
各種設定を行います。
cb_opt_read()は読込(貼り付け)命令に対しての設定
cb_opt_write()は書込(コピー)命令に対しての設定
cb_opt()は読込・書込の両方に対しての設定

TAB文字は必須で区切り文字と扱います。
区切り文字の指定として""を指定することで

コピー系命令
    範囲選択した内容をコピーする例
int nRow, nRowStart, nRowEnd;
int nCol, nColStart, nColEnd;

cb_create();
nRowStart = get_sel_top();
nRowEnd = get_sel_bottom();
nColStart = get_sel_left();
nColEnd = get_sel_right();
nRow = nRowStart;
while(nRow <= nRowEnd)
{
  nCol = nColStart;
  while(nCol <= nColEnd)
  {
    cb_write(cell(nRow, nCol));
    nCol = nCol + 1;
  }
  nRow = nRow + 1;
  cb_write_ret();
}
cb_commit();

命令 引数[戻り値] SHEET
指定
G
E
T
S
E
T
処理内容
cb_create() クリップボードに書き込むための準備を開始します。
cb_commit() クリップボードへの書込を確定します。
cb_write(data) str data : 書込データ  セル単位に書き込む。
cb_write_ret(data) str data : 書込データ セル単位に書き込む。改行付き 

貼り付け系命令
    カーソル位置に貼り付ける例
int nRow, nCol, nColSt;

nColSt = get_cur_col();
nRow = get_cur_row();

undo_off();

cb_open();
while(cb_is_eof() == false)
{
  nCol = nColSt;
  while(cb_is_next_line() == false)
  {
    cell(nRow, nCol) = cb_read();
    nCol = nCol + 1;
  }
  nRow = nRow + 1;
}
cb_close();

命令 引数[戻り値] SHEET
指定
G
E
T
S
E
T
処理内容
cb_open() クリップボードの内容を取得を開始します。
扱うデータはテキストのみ
cb_close() クリップボードの内容取得の終了処理を行います。
str = cb_read() <string str>クリップボードの内容取得  クリップボードの内容を区切りまたは改行単位の文字列を取得。
取得するたびに次の文字列を取得していく。
※全ての内容を読み終えたら空の文字列を返しますが、
 区切りごとに空の場合もあるので実際のデータ有無の判定などは
 cb_is_eof()やcb_is_next_line()などの関数を使用します。

flag = cb_is_eof() <int flag> 0=false 1=true int データの読込が終了したとき1=trueを返します。
cb_open()、cb_read()で使用後に判定が決定します。
flag = cb_is_next_line() <int flag> 0=false 1=true int 読み込むデータが改行、終端のときtrueを返します。
※注意事項として一度使用すると改行の場合は次内容の判定
  になります。
kind = cb_chk_sep() <int kind>区切り文字の種類 int 読み込んだ内容の区切りの種類を返します。
 0 = 下記以外
 1 = EOF
 2 = 改行文字
 3 = 区切り文字
size = cb_paste_size() <int size>
 クリップボードから読み込んだデータサイズ
int クリップボードから読み込んだデータサイズを取得。
cb_open()実行後から値取得可能