Wks


WKSオブジェクトは、Originシートに関連するプロパティとメソッドを持ちます(Note: シートはワークシート、行列シートのどちらも可)。範囲表記を使用して、ワークシートオブジェクトを定義できます。

range wksオブジェクト = [ウィンドウ名]シート名!

範囲が指定されていない場合、Originはアクティブシートで動作します。一度ワークシート(または行列シート)オブジェクトが定義されると、オブジェクトプロパティとメソッドには、次の構文を使用してアクセスできます。

wksオブジェクト.プロパティ
wksオブジェクト.メソッド(引数)

例:

range rWa = [Book2]Sheet2!;     // ワークシートオブジェクト範囲を定義
rWa.colSel(2,1);                // シートの2番目の列を選択
rWa.vGrids = 0;                 // 垂直グリッド線を非表示
range rWb = !;                  // アクティブワークシートを範囲として使用
page.xlcolname = 0;            // 最初にスプレッドシートセル表記をオフにする
rWb.AddCol(NewColumn);          // 新規の列を追加
NumColumns = rWb.ncols;         // 列数を確認

ワークブックのスプレッドシートセル表記については、FAQ-849 を参照してください。

その他のワークシートプロパティへの読み/書きアクセスについてはwproperties Xファンクションを参照してください。さらに、wksオブジェクトと同じ事をするXファンクションがあります。詳細は、ワークシート操作Xファンクションをご覧下さい。

プロパティ

アクティブなワークシートまたは行列シートで操作する場合は、 wks.プロパティ を使用してシートプロパティにアクセスできます。それ以外の場合は、範囲表記を使用する必要があります。

プロパティ アクセス 説明
wks.AutoAddRows 読み/書き
整数
シートのサイズ変更時に行を自動追加。

range aa=[book1]sheet2!;
// 固定を維持するために行の自動追加を無効化
// 列数と行数
aa.AutoAddRows=0; 
// 3x2のワークシートを作成
aa.nCols = 2;aa.nRows = 3;
wks.band

(2023)

読み/書き
整数
行の縞模様のオン/オフをの切り替え。0=行の縞模様オフ、1=行の縞模様オン。

システム変数@WBCを参照して縞模様の色を変更し、@WBEを参照して塗りつぶす行を奇数と偶数の間で切り替えます。

wks.c1, c2, r1, r2 読み取り専用
整数
選択範囲。最初と最後の列と行。
wks.catI 読み/書き
カテゴリインデックスまたはカテゴリの表示切り替え。0=カテゴリを表示、1=インデックスを表示。
wks.cNamen$ 読み取り
文字列
n番目のワークシート列のショートネーム。特定の列型を操作するにはwks.cnamemode を参照してください。(参考:Wks.Col (オブジェクト)
wks.cNameMode 読み/書き
整数
その値によってwks.cnamen$ が操作する列を決定。wks.cnamemode には次の値を設定できます。0=すべての列、1=数値列、2=テキスト列、4=テキストと数値(混合)列、64=選択範囲内の列。完全なデータセット名をwks.cnamen$ に返すにはwks.cnamemode = 128 を設定します。
wks.col 読み/書き
整数
現在の作業列(ワークシート、デフォルト1)またはアクティブオブジェクト(行列)。Wks.Col (Object)プロパティも参照してください。
wks.colWidth 読み/書き
整数

アクティブなワークシートの列幅。

wcolwidth Xファンクションやwks.col.widthも参照してください。これらは個々の列の幅を設定するのに使うことができます。

wks.colxy$

(2025)

読み/書き
文字列
列の属性の設定/取得。列属性の記号についてはこのページを参照してください。 反復パターン(かっこで囲まれたパターンが繰り返される)およびLading/Trailing指定シンボルに対応しています。例えば、
//1番目の列をx,2番目の列をyに設定。これ以降の列属性は指定していないため、全てYになる
wks.colxy$=xy; 

// 1番目の列は無属性、残りの列はxyのペアを繰り返す
wks.colxy$=n(xy); 

// 1番目の列を無属性、2番目列をラベル、最後の列をzに設定。
// その間の列はxyのペアを繰り返す
wks.colxy$=nl(xy)z;
wks.DB

(2023b)

読み/書き
整数
データベースのインポート。Wks.DB オブジェクトプロパティも参照してください。
wks.DC

(2019b SR0)

読み/書き
整数
データコネクタ。Wks.DC オブジェクトプロパティも参照してください。
wks.epd 読み/書き
「レイヤ内容」や「作図のセットアップ」などグラフ関連のダイアログでプロットを行うときに、現在のワークシートを除外するかどうかを指定します。1=このシートを作図ダイアログから除外するためにタグ付けする、0=除外タグを解除。

システム変数@TCEを使用して、@TCE=Color(255, 60, 60)のように任意の色でタグ付き(除外)シート名を指定できます。

wks.export 読み/書き
ワークシートのエクスポート設定。サブメソッドはwks.export.=と入力します。
wks.font 読み/書き
整数
シート内の標準名スタイルのフォント(インデックスによる)。font(name)関数を使用して、wks.font = font(Courier New); のようにフォントのインデックスを取得することができます。
wks.frozen$ 読み/書き
文字列
固定された列および/または行の範囲を設定または読み取るか、列/行を固定解除します。
// 以下はユーザーがセルD4を選択し、
//ミニツールバーのウィンドウ枠の固定ボタンをクリックするのと同様
wks.frozen$="C 3"; // 列A~C、行1~3を固定
wks.frozen$=""; // 列A~C、行1~3の固定解除
wks.fSize 読み/書き
float
シート内の標準名スタイルのフォントサイズ( wks.fsize = 12; など)。
wks.hasdc

(2019b SR0)

読み取り
bool
ワークブック/ワークシートにデータコネクタがあるかどうかを返します。

0 =ワークブックにデータコネクタがない、
1 =ワークシートがデータコネクタによって出力(宛先シート)として使用されている、
2 =ワークシートがどのデータコネクタによっても出力として使用されていない。この場合、ワークシートにデータコネクタが含まれているが、有効な接続が構築されていません。ワークシートがデータコネクタによって出力として使用されているかどうかを確認するには、 "wks.DC.Valid"を使用します。

wks.hGrids
wks.vGrids
読み/書き
整数
水平グリッドと垂直グリッドを表示:1=有効、0=無効。
wks.hiddenRows

(2019 SR0)

読み取り
整数
ワークシート内の非表示行の数を返す。wks.hiddenRows == wks.maxRows - wks.visibleRows
wks.hierarchical 読み取り
整数
ワークシートが階層型であるかどうか(つまり、解析レポートシートのような折りたたみ可能なノードやテーブルが含まれているかどうか)を確認します。1=階層型、0=フラットシート。
wks.gap

(2021b)

読み/書き
整数
ウィンドウのタイトルバーとシートの上部の間隔。この領域を使用して、スクリプトを実行するテキストオブジェクトやカスタムボタンの配置などを行えます。間隔はテキストのポイントサイズ単位で設定されます(例えば「20」を入力すると、20ポイントのテキストに対応する間隔が作成されます)。
wks.ignorehidden 読み/書き
プロットと解析操作での非表示行の扱い。

0 = プロットと解析に非表示行のデータを含める。
1 = (デフォルト)プロットと解析で非表示行を無視する。

wks.image 読み/書き
行ビュー設定。0=データモード、1=イメージモード。
wks.import 読み/書き
ワークシートのインポート設定。サブメソッドはwks.import.=と入力します。
wks.index 読み/書き
整数
ワークブック内のワークシートインデックス(1, 2, 3など)。

このプロパティを使用してワークシートを並べ替えます。例:

newbook sheet:=4; // 4つのシートを持つワークブックを作成;
wks.index = 3; // "Sheet1"をワークシートの3番目に移動;

Note: このプロパティは 8.5.0 SR1より前のバージョンでは読み取り専用です。

wks.isc 読み/書き
インポートウィザードとデータコネクタ両方のインポート時の列幅のシートレベル制御。

0=インポート時に列幅を調整しない。
1=(デフォルト)システム変数@ISCの値に従う。

wks.joinMode 読み/書き
整数
ワークシートの統合モードを設定/取得。値は次のとおりです。

0=列名が一致する場合は列挙する。一致する行が見つからない場合は追加する。

1=列名が一致する場合は削除する。一致する行が見つからない場合は追加する。

2=列名が一致する場合は列挙する。一致する行が見つからない場合は削除する。
3=列名が一致する場合は削除する。一致する行が見つからない場合は削除する。
wks.join() メソッドを参照してください。

wks.khra

(2018 SR0)

読み/書き
bool
列/棒グラフのX列にテキストが含まれている場合、このテキストは行インデックスの順に主目盛のラベルとして使用されます。Origin 2018以前は、ワークシートデータフィルタを適用する場合、データポイントはプロットされていなくても、プロットはフィルタされたデータの空の目盛とラベルを登録していました。これはOrigin 2018で変更され、フィルタされたデータに関連する目盛が表示されなくなりました。これは、テキストを含み、カテゴリとして設定されていないX列にのみ適用されます。0(デフォルト)=フィルタリングされたデータラベルを非表示。1 =データがフィルタリングされていてもデータラベルを表示(古い動作)。
wks.loadedgrid 読み/書き
整数
グリッドが読み込まれていない場合は0、グリッドが読み込まれている場合は1。
wks.lock

(2023)

読み/書き
整数
ワークシートの保護/ロック。1=真、0=偽。

システム変数@WPOで保護されたワークシートの例外を設定します。

wks.longname$ 読み/書き
文字列
ワークシートのロングネーム。Origin 2020b以降、「ロングネーム」=「ラベル」です。
wks.maxRows 読み取り
整数
すべての列をスキャンして、値を持つ最大の行インデックスを見つけます。wks.nRowsを使用してワークシートを設定できますが、値を入力する前はwks.maxRows はゼロのままになります。ワークシートのサイズを小さくするには、wks.nRowsを使用します。このプロパティは最も長い列行サイズのみを取得します。
wks.multiX 読み取り専用
整数
複数X列 。1=有効、0=無効。
wks.name$ 読み/書き
文字列
ワークシート名。
wks.nancolor 読み/書き
整数
行列イメージビューの欠損値の色。
wks.nMats 読み/書き
整数
行列シート内の行列オブジェクトの数。
wks.nCols 読み/書き
整数
ワークシート内の列の数。Origin 8以前は、このプロパティは読み取り専用です。
wks.nRows 読み/書き
整数
ワークシート内の行の数。Origin 8以前は、このプロパティは読み取り専用です。wks.maxRowsも参照してください。
wks.rhw 読み/書き
整数
セルの高さの1/10単位での行ヘッダ幅。

// 約5文字分の高さに設定
range aa=2!; // アクティブなブックの2番目のシート
aa.rhw=50;
wks.sel 読み取り専用
整数
選択フラグ。16進数の戻り値は、ワークシートで選択されている内容を示します。値は次のいずれか、またはこれらのビットの組み合わせです。0=なし、1=編集セル、2=列、4=行、8=範囲、16=1列。
wks.upc 読み取り専用
整数
ユーザパラメータの数。
wks.useFont 読み/書き
整数
フォントの使用法。1=選択したフォントを使用、0=システムフォントを使用。
wks.userParamn 読み/書き
整数
指定したユーザーパラメーターの表示/非表示。例:
wks.UserParam1=1; // 最初のユーザパラメータを表示
wks.userParamn$ 読み/書き
文字列
ユーザーパラメーターの名前にアクセスする。例:
// パラメータ名を "Site Index"に設定
wks.UserParam1$="Site Index";
wks.View

(2020b)

読み/書き
整数
ワークシートの列リストビューのオン/オフを切り替える。0=標準表示、1=列リストビュー。
wks.VisibleCols 読み取り専用
整数
ワークシートに表示されている列の数(非表示の列は含まない)。
wks.VisibleRows 読み取り専用
整数
ワークシートに表示されている行の数(非表示の行は含まない)。
wks.x(y).comments$ 読み/書き
文字列
行列のX/Y座標のコメント。
wks.x(y).longname$ 読み/書き
文字列
行列のX/Y座標のロングネーム。
wks.x(y).units$ 読み/書き
文字列
行列のX/Y座標の単位。

wks.merge()はラベル専用であり、選択したワークシートセルを統合するLabTalkプロパティやコマンドはありません。ただしセルの統合ツールバーボタンのメニューIDを取得して、menu-eコマンドを使用することでこれを実現できます。

メソッド

メソッド 説明
wks.AddButton(objname, label) ワークシートの上部の隙間にボタンを追加。
wks.addCol(name) ワークシートの最後に名前付きの列を1列追加する。nameが指定されていない場合は、一般的な名前が選択されます。

列名を指定した場合は、ワークブックのスプレッドシートセル表記をオフにする必要がある場合があります。詳細については、FAQ-849を参照してください。

wks.addUD(name, str, col) ユーザパラメータを追加。nameは追加するユーザパラメータ名、colは列範囲または単一列、strはユーザパラメータの内容です。

例:

 //列1と2にユーザパラメータ "File Name" を追加し、その内容を "some file name"とする
wks.AddUD("File Name", "some file name", 1:2);

//2列目にユーザパラメータ行 "FileName" を追加し、その内容を "some file name"とする
wks.AddUD(FileName, "some file name", 2); 

//2列目から最後の列にユーザパラメータ行 "File" を追加し、その内容を "F1.dat"とする
wks.AddUD(FileName, "F1.dat", 2:end);
wks.colSel(colNum, n) 列の選択。n = 1の場合、colNum列を選択します。n = 0の場合、colNum列の選択を解除します。
wks.copy(strRegister, Col, Row) Copy(Z): ワークシート全体を文字列レジスタ %Zにコピーします。(最大6,290文字を保持できる%Zを使用することをお勧めします。これよりも文字数が多い場合はコピーされず、エラーは発生しません)。wks.paste()も参照してください。
Copy(Z, n): 列nの全行をコピーします。
Copy(Z, 0, n): 行nの全列をコピーします。
さらなるオプションについてはcolcopycolcopywcopywrcopy Xファンクションを参照してください。
wks.deleteRows(rowBegin[,numRows, colBegin, colEnd])
wks.deleteRows([rowBegin,Undo])

行の範囲の削除。rowBeginのみを指定すると、ワークシート内のすべての列のrowBeginが削除されます。
numRowsオプションを追加すると、rowBeginからすべての列のnumRowsが削除されます。
colBegincolEndを使用して、行の削除を指定された列に制限できます。 (a) colBeginからシートの最後の列まで(colEndの指定なし)、または (b) colBeginからcolEndまでです。

rowBeginが指定されていないか0に設定されている場合、選択された範囲は削除されます。この場合、Undoは「元に戻す」をサポートするかどうかを決定します。 undo: 0 = 元に戻すをサポートしない(デフォルト)、 1 = 元に戻すをサポートする。例えば、

// 選択した行を削除(「元に戻す」不可)
wks.DeleteRows(); 

// 列Bの値が5000未満の行、または欠損値の行を選択し削除
wxt test:="col(B)<5000 or IsNA(col(B))" sel:=1;
wks.DeleteRows(0,1);

その他の例はこちらを参照してください。
また、下記のwks.insertRowsも参照してください。

wks.delHidden([RowCol, Undo])

(2023b)

現在のワークシートで非表示の行または列を削除。 RowColは非表示の行または列を削除するかどうかを決定します。0=行(デフォルト)、1=列。一方、Undoは「元に戻す」をサポートするかどうかを決定します。0 = 元に戻すをサポートしない(デフォルト)、 1 = 元に戻すをサポートする。たとえば、次のコードは、現在のワークシートでcol(B)< 5000の行を削除します。
// col(B) < 5000の行を非表示にするフィルタを追加
wks.col2.filter = 1;
wks.col2.filter$="x>5000";
wks.runfilter();
// 非表示行を削除
wks.DelHidden(0,1);
wks.col2.filter=0;
wks.nrows=wks.maxrows;

Note: 列リストビューではwks.DelHidden() が無効になっています。

wks.findLabels(ind, K[,n]) データの列でラベルを探す(データはOriginワークシートまたはExcelブック。Excelワークシートがアクティブな場合は、内部データが(layer -sと同様に)使用前に更新されていることを確認してください)。
ind =(必須)ラベルを検索する列のインデックス。
K =(必須)検出されたラベル文字列を格納するグローバル文字列変数文字列。
n =(任意) 0のときは選択を無視、1のときは列内の行の範囲のみが選択されている場合に列内の選択を考慮します(列内で何も選択されていない場合、または列全体が選択されている場合は0として扱われます)。デフォルト(つまりnが省略されている場合)は0です。
wks.findX(col)
wks.findX(colIndex,0)
指定したY列col'に対応するX列を検索し、X列のインデックスを返す。colがX列の場合は0以下の値を返します。例えば、
i=wks.findX(B);
i=;// 1を返す
i=wks.findX(A);
i=;// Col(A) は X列のため-3を返す

任意の列(Y列か否かに関係なく)に対して、wks.findX(colInex,0)を使用して列の指定を無視し、対応するX列インデックスを取得できます。

wks.hasfilter() ワークシートにフィルタが適用されているかどうかを確認する。yesの場合は1を返し、そうでない場合は0を返します。フィルタプロパティスクリプトの詳細はwks.col.filterを参照してください。
wks.insert(name list) 列のリストを現在の位置に挿入。現在の列位置はwks.col で指定されます。リストは、スペースで区切られた1つ以上の任意の列名からなります。列名が既に使用されている場合は、自動的に列挙されます。

ワークブックでスプレッドシートセル表記が有効になっている場合、指定された列名が新しく追加された列に適用されないことがあります。そのため、指定した列名を列のショートネームに適用したい場合は、wks.insertコマンドを実行する前にスプレッドシートセル表記をオフにする必要があります。詳細は、FAQ-849を参照してください。

wks.insertRows(rowBegin[,numRows, colBegin, colEnd]) 行の範囲を挿入。rowBeginのみを指定すると、ワークシートのすべての列でrowBegin の前に1行挿入されます。
numRowsオプションを追加すると、rowBeginからnumRowsをすべての列に挿入します。
colBegincolEndを使用して、行の挿入を指定された列に制限できます。 (a) colBeginからシートの最後の列まで(colEndの指定なし)、または (b) colBeginからcolEndまでです。
サンプルをご覧ください。
また、上記のwks.deleteRowsも参照してください。
wks.isColHidden(colNum) 列(列番号が colNumで指定されたもの)が非表示かどうかを確認。非表示の場合は1を返し、それ以外の場合は0を返します。
wks.isColSel([colNum]) colNumが引数として含まれている場合、colNumの選択状態を返す。0=列が選択されていない。1 =列全体が選択されている。2=列の範囲が選択されている。
colNumが引数として含まれていない場合、このメソッドは選択された列の数(選択の一部と全体)を返します。
wks.isRowHidden(rowNum) 行(行番号rowNumで指定)が非表示かどうかを確認。非表示の場合は1を返し、それ以外の場合は0を返します。
[ToWks!]wks.join(FromWks) FromWksで指定したワークシートをToWksで指定したワークシートに結合。このメソッドはwks.joinmodeによって指定されたメソッドに従ってFromWksの列をToWksに追加します。

ToWksが指定されていない場合は、現在アクティブなワークシートが使用されます。

wks.labels(str) ワークシートの列ラベルの表示を制御。引数なし=ラベルを非表示。それ以外の場合は、列ラベル行文字を含む文字列。例:
// ロングネームとコメントを表示(それらが空でない場合)
wks.labels();
// ラベル行を非表示
wks.labels(0);
// インポート時に単位を追加する場合は、単位をロングネームとコメントの間に移動して、F(x)=を一番下に移動
wks.labels(@);
// ロングネーム、単位、コメントの表示設定
wks.labels(LUC)
// コメント、ユーザパラメータ1、ロングネームを表示
wks.labels(CD1L)

プレフィクス+-*は以降のバージョンで使用できます。 Origin 8 SR2.
プレフィクス<>は以降のバージョンで使用できます。 Origin 2017.
wks.labels(@) は以降のバージョンで使用できます。 Origin 2020b.
プレフィクス#は以降のバージョンで使用できます。 Origin 2024b.

// 単位を削除
wks.labels(-U);
// 上部にサンプリング間隔とスパークラインを追加
wks.labels(+ES);
// 最後に単位を追加
wks.labels(*U);
//  F(x)= to を最後に移動
wks.labels(>O);
//コメントを最初に移動
wks.labels(<C);
//User Parameter 1 ラベル行の内容をクリアして非表示
wks.labels(#D1);

+*を使用してラベル行を上または下に「移動」(追加)することもできます。ラベル行がまだ表示されていない場合、<>の記号は何もしません。

次のコマンドを使用すると
wks.labels(D*);
すべてのユーザーパラメータ行を表示できます。以降のバージョンに対応しています。 Origin 2025.
wks.merge(Label, option) 同じテキストを含む隣接するラベルセルを結合。
wks.merge(L,1);// LNを結合
wks.merge(L,0);//LNの結合解除
wks.merge(L,-1)=;//LNが結合されたら1、そうでない場合は0を返す
wks.paste(strRegister, Col, Row) 文字列レジスタの内容( %なしで指定)を (Col, Row) から始まるセルに貼り付け。
wks.readonly(arg1, [arg2])

(2021b)

ラベルの読み取り専用ステータスを取得・設定。

arg1 = ラベル型、arg2 = 読み取り専用。

wks.readonly("L")=;//ラベルが読み取り専用(編集不可)であるかどうかを取得
wks.readonly("L", 1);//ロングネームを読み取り専用に設定
wks.readonly("P1",-1);//読み取り専用プロパティを削除

readonly()は、ユーザ定義ラベルおよびパラメータラベルをサポートしています。以降のバージョンに対応しています。 Origin 2025, 読み取り専用プロパティの削除をサポートしています。以降のバージョンに対応しています。 Origin 2025.

wks.reorder(arg1, [arg2]) 列の並べ替え。

arg1 =-1:現在の順序を逆にする。

wks.reorder(-1); //逆順にする

arg1 =列インデックス、arg2は新しいインデックス。

wks.reorder(2,5) //2番目の列を5番目に移動
wks.reorder(2, 0) //2番目の列を最後に移動
wks.reorder(2,-1) //2番目の列を最後から2番目に移動
wks.reorder(0, -1) //最後の列を最後から2番目に移動
wks.reorder(-1, 1) //最後から2番目の列を最初に移動

arg1 = dataset:順序の指定。

dataset vv = {1,4,3,2};
wks.reorder(vv);
wks.runfilter() filter. runfilter(2) を実行または再適用して、フィルタがない場合でも強制的に実行する。フィルタプロパティスクリプトの詳細については、wks.col.filterを参照してください。
wks.setaslabel(type, rowNum, label, append) 1行をロングネーム、単位、コメント等として設定または追加。

type : ラベル型。L、C、U、Pなど。

rowNum : ラベルとして設定する行の番号(この行は削除されません)。-1=ラベルとして設定したときにアクティブな行を削除する(※このスクリプトを実行する前に行を選択する必要があります)。

label :1=ラベル行を選択、0=データ行を選択。

append : 1=選択した行の内容をラベルに追加する(ロングネームとコメントの場合のみ有効)。 0=選択した行の内容を使用して元の内容を置き換える。

//2番目のラベル行をロングネームに設定
wks.SetAsLabel(L,2,1,0);

//4 番目のデータ行をコメントに追加
wks.SetAsLabel(C,4,0,1);

//最初のデータ行を単位に設定
//(最初のデータ行がアクティブである必要がある。 
// これはスクリプト実行後に削除される)
worksheet -s 0 1 0 1;  
wks.SetAsLabel(U,-1,0,0);
wks.sortCols(char [, order, c1, c2, skipHidden]) 1つ以上のの列ラベル行の文字列内容でワークシート列を並べ替える。成功した場合、メソッドは0を返します。

char以外のすべての引数はオプションです。

char =1つ以上の列ラベル行文字。複数のcharが与えられた場合、ソートはネストされます。
c1 =ソートの開始列。c1c2が省略された場合、またはc1=0 、c2=-1の場合、ワークシート全体がソートされます。
c2 = ソートの終了列。
order = a (昇順)または d (降順)。orderが省略された場合、昇順でソートされます。
skipHidden = 数値。0以外の場合は、ソート中に非表示の列をスキップします。0または省略された場合は、非表示の列をスキップしません。

// ワークシート列を列のロングネームで昇順にソート
wks.sortCols(L); 
// ネストされたソート。ユーザ定義パラメータ (a) > ロングネーム (d)、全列、非表示列をスキップ
wks.sortCols(D1L,ad,,,1);
wks.template( FileName[,[WinName],NumRows]) FileNameという名前のテンプレートをWinNameウィンドウの<NumRows>行に適用する。
wks.GetNextVisibleRow(n) 与えられた行nから始まる次の可視行(非表示でない行)を探します。GetNextVisibleRow(n) は行nの後の行を1つずつチェックし、可視行が見つかった場合は行インデックスを出力します。wks.GetNextVisibleRow(0) は最初の可視行を与えます。
wks.userparam(str) 指定されたユーザパラメータのインデックスを返します。見つからない場合は0を返します。例:
wks.userparam(Location)=;// ユーザパラメータ"Location"のインデックスを返す

新しいユーザパラメータを追加する場合は

wks.userparam(++Factor) // ユーザパラメータ"Factor"を追加

サンプル

ワークシートの列と行の操作

新しいワークシートを作成すると、デフォルトで2列32行になります。ワークシートの列と行の数を読み取りまたは設定するには、wks.ncolsプロパティとwks.nrowsプロパティを使用します。

newsheet; // 新規のワークシートを追加
wks.ncols = 5; // 列数を5に設定
wks.nrows = 100; // 行数を100に設定

Originは指定した番号よりも後ろの(つまり右側の)列を削除することに注意してください。したがって、一般的にはwks.addCol()メソッドを使用して列を追加する方が安全です。

page.xlcolname = 0; // 最初にスプレッドシートセル表記をオフにする
wks.addCol(Does); // 'Does'というショートネームの列を追加

ワークブックのスプレッドシートセル表記については、FAQ-849 を参照してください。

ワークシートの行に関しては、wks.maxRowswks.nRowsの2つのプロパティは似ています。前者はワークシート内で値を持つ最大の行インデックスを検索し、後者はワークシート内の行数を設定または読み取ります。次のスクリプトは、これら2つのプロパティの使用方法を示しています。

newbook; // 新規のワークブックを作成
col(b) = {1:10}; // 列Bに10個の値を入れる
wks.maxRows = ; // 10を返す
wks.nRows = ; // 32を返す

ワークシートの列ラベルを表示

このスクリプトは、異なる都市の平均気温の空の表を作成します。この例ではユーザー定義パラメータを作成し、ワークシートのロングネーム、単位、およびユーザー定義パラメータを表示します。

range ww = !;  // アクティブなワークシート上の範囲を定義
ww.name$ = "Average Temperature";  // ワークシートの名前変更
ww.ncols = 13;  // 列の総数を設定
ww.userParam1$ = Month;  // 新規のユーザパラメータラベルを定義
// ワークシートのロングネーム、単位、ユーザパラメータを表示
ww.labels(LUD1);  
Col(1)[L]$ = City;  // 列のロングネームを設
stringarray month = {"Jun.", "Feb.", "Mar.", "Apr.", "May.", "Jun.", 
                   "July", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."};
loop(ii, 2, 13)
{
	Col($(ii))[L]$ = Temperature;  // 列のロングネームを設定
	Col($(ii))[U]$ = \+(o)F;  // 列の単位を設定
        // 列のユーザパラメータを設定
	Col($(ii))[D1]$ = month.getAt(ii-1)$;  
}

ワークシートの列から非表示でない値を取得

1.ワークシートのフィルタによって一部の値が非表示になっているとき、以下のスクリプトは非表示の値を列に一覧表示します。

//ワークシートがアクティブな状態で
for (int ii=1; ii <= wks.nrows; ii++){
if(wks.isRowHidden(ii)){       //非表示の行がある場合は続行
  ii = wks.GetNextVisibleRow(ii);   //この非表示行の後の非表示でない最初の行番号を取得
  col(A)[$(ii)]=;  
}
};

2.2番目の例では、関数GetNextVisibleRowがどのように機能するかを示しています。

Bookhide.png

ワークシートがアクティブな状態でスクリプトを実行します。

//ワークシートがアクティブな状態で
type "The 1st visable row is $(wks.GetNextVisibleRow(0))";
loop(ii,1,3){
a$(ii)=wks.GetNextVisibleRow(ii);
type "The 1st visible row after row $(ii) is $(a$(ii))";
}

次のような結果が出力されます。

The 1st visible row is 1
The 1st visible row after row 1 is 3
The 1st visible row after row 2 is 3
The 1st visible row after row 3 is 5

関連情報

ワークシート操作のXファンクション