NotationOriginプロジェクト内ではワークシートの列や行列、非接続データセット、グラフの4つの主要な場所にデータが存在します。これらのいずれの形式でも、範囲データ型を使用すると、標準的な方法で簡単にデータにアクセスできます。範囲変数が作成されると、範囲のデータを直接操作することができるようになり、範囲への読み書きができるようになります。以下は、多くの種類の範囲変数の作成と使用例です。Originバージョン8.0より前では、データはdattasetsとcell()、col()、wcol()関数でアクセスできました。cell()、col()、wcol()関数は、アクティブブックでアクティブシートを操作している場合、データアクセスに非常に有効な関数であることに変わりはありません。範囲表記は、基本的にこれらの関数を拡張し、Originプロジェクト内の任意のブック、シート、プロットに一般的にアクセスできるようにしたものです。すべてのXファンクションが複数列や非隣接列などの複雑な範囲を扱える訳ではありません。論理や文書でサポートが得られない場合は、少し実験してみるとよいでしょう。グラフ内のデータはデータプロットの形式で、それらは本質的には列、行列、非接続データセットへの参照となります。グラフに実際のデータが保存されているわけではありません。2023から、ページ名(ワークブック、行列、グラフなど)の範囲参照では、ページのロングネームはダブルクォートし、ページのショートネームはダブルクォートしないでください(これまではロングネームのダブルクォートが必須で、ショートネームのダブルクォートは可能でしたが、推奨されません)。["%H"]にはしないでください)にも適用されます。この変更により、ページのロングネームの検索では、アクティブなフォルダのウィンドウのロングネームを優先的に検索するようになります。この禁止事項により、フォルダの複製やプロジェクトの追加を行う際、より強固なページ参照が可能になります。以前の挙動にしたい場合は、システム変数@RQSを使ってこの変更をもとに戻すことができます。Range他のデータ型と同様に、以下の構文でRange変数を宣言することができます。RangeString範囲指定の左辺は、すべてのタイプの範囲指定で統一されています。大括弧([])はオプションスイッチはオプション設定できるパラメータで、データタイプによって利用可能なオプションスイッチは異なります。詳細は下の範囲データの型セクションをご覧ください。Originの変数名の規則に従います。システム変数名は使用しないでください。範囲指定の右辺であるRangeStringは、範囲が指し示すオブジェクトの種類によって変化します。個々の範囲文字列は、以下の範囲データの型のセクションで定義されています。範囲表記は、範囲変数を定義するためにのみ使用されます。式の両側でデータアクセスを行う一般的な表記法としては使用できません。Object範囲変数は、以下のタイプのOriginオブジェクトに割り当てることができます。列ワークシートページグラフレイヤ非接続データセット一度代入すると、範囲はそのオブジェクトを表すので、範囲変数を使用してオブジェクトのプロパティやメソッドにアクセスすることができます。[Book1]Sheet1!Col(A);rA.name$=;rA.lname$=;rA.unit$=;rA.index=;rA.nRows=;アクセス可能なオブジェクトのプロパティとメソッドを確認するには、スクリプトウィンドウを開いて次のように入力します。rangeVariable.=;ここで、rangeVariableは範囲変数の名前です。範囲は標準的なOriginオブジェクトのサブセットまたはいくつかの組み合わせで構成されます。下記のような例があります。対応するショートネームを参照します。ワークブックやワークシートの範囲表記でロングネームを使用するには、["MyBook"]"MySheet"]のようにロングネームをダブルクォーテーションで囲む必要があります!逆に、ショートネームをダブルクォーテーションで囲まないでください(これには[%H]のような参照も含みます)。2023より前では、この方法は推奨されてはいませんでしたが、使えていた可能性があります。Origin2023以降、ショートネームをダブルクォートすると失敗する可能性が高くなりました。以前の挙動(ショートネームをダブルクォートすることを許可する)に戻したい場合は、LabTalkシステム変数@RQSをご覧ください。ショートネームのダブルクオートを禁止する変更に伴い、ページロングネームの検索では、ウィンドウロングネームをアクティブフォルダから優先的に検索するようになりました。これは下記のようなことを可能にします。フォルダを複製し、ワークブックで定義されたローカル変数に依存するようなフォルダ内の操作を保持します。プロジェクトエクスプローラのフォルダをプロジェクトとして保存し、後でそのプロジェクトを別のプロジェクトに追加することができます。その際、ウィンドウのショートネームは名前の衝突を避けるために変更されますが、ウィンドウのロングネームに依存する操作には影響がありません。列のロングネームまたはショートネームのいずれかを指定します。(ロングネームにスペースがある場合は、二重引用符で囲む必要があります)2022bから、@LNCS=1で列ロングネームは大文字小文字を区別するようになりました。任意のRangeStringにおいて、連続したシート、列、行の長さを指定するには、index1:index2のように、シート、列、行のインデックス(それぞれ)をコロンで区切って指定することができます。キーワードendは、Originが指示されたオブジェクトをすべてピックアップすることを示すため、index2の代わりに使うことができます。ブック名MyBook行の場合、インデックスは角括弧で囲まなければならないので、ワークシート列の複数の行に対する完全な範囲指定文は次のようになります。10行目から2行目まで取得セルの内容にアクセスする方法として、従来からあるCell関数もサポートされています。範囲指定でカラムラベル行にアクセスしたい場合は、メタデータへのアクセスと列ラベル行の参照表をご覧ください。Columnアクティブなワークシートの列に対して範囲変数を宣言する場合、このようにブックとシートの部分をドロップすることができます。Col(3)実際の列が特定できるのであれば、以下のようにさらに表記を簡略化することも可能です。式で、アクティブブックの最初のシートを参照します。"1!"では、ロングネームが1!の現在のシートの列を参照します。範囲宣言の引用符の保持または破棄を制御するには、システム変数@RPQを参照してください。複数の範囲変数をカンマで区切って同じ行に宣言することができます。上記の例は、次のように書くこともできます。A";また、別のブックシートを参照する必要があり、すべて同じシートの中にある場合は、ブックシート部分を次のように結合することができます。//ブックロングネームはMyBookOriginは列のロングネームを一意にすることを強制しないので(つまり、ワークシート内の複数の列が同じロングネームを持つことができる)、より正確にするためにショートネームとロングネームを一緒に指定することができます。4)を範囲に割り当て列の範囲が決まったら、それを使って列のパラメータにアクセスし、変更します。小数点桁数を2桁にあるいは計算を行います。aa+bb;異なるシートのデータに対して演算を行う場合、範囲変数を使用する必要があります。範囲文字列の直接参照はまだサポートされていません。しても範囲変数を宣言せずに一行で書きたい場合は、データセット置換表記を使用します。Sheetデータの1列だけでなく、ページオブジェクトの任意の部分にアクセスするために、範囲を使用することができます。ワークブック全体にアクセスするには、範囲変数を使用します。Worksheets;ワークブックにアクセスするには、範囲変数を使用します。Subrange列の部分範囲を指定するには、次のような範囲変数を使用します。["MyBook"]sheet2!col(a)[3:10];また、目的のワークブックとワークシートがアクティブな場合は、短縮表記を使用することができます。col(a)[3:10];範囲変数を使用すると、列の一部に対して計算やその他の操作を行うことができます。//2列目の1行目から6行目までの値を1列目の5行目から10行目にコピーする。この場合、1列目の5行目に値が出力され、2列目の1行目と等しくなるはずです。Cells次のように、範囲を使用して、1つのセルまたはセルブロック(多くの行と列にまたがる場合があります)にアクセスします。セル(10,3)までNote:セルブロックを表す範囲変数は、Xファンクションの引数としてのみ使用でき、直接計算はサポートされていません。Originのjoin()関数で、複数の非連続範囲を1つのデータセットに結合できます。SR0以降ワークシートデータの場合、-vスイッチで1つのブロックを範囲として定義し、その値を一時ベクトルに格納することで、同じサイズでブロック形状が異なるブロック間でのデータ割り当てが可能になります(例えば、行から列への値の割り当てが可能です)。次の例では、ワークシートの特定の列の行にあるすべてのエントリをスケーリングします。r=1[1]:end[1];r*=10;以下のサンプルで、このオプションスイッチの使用方法をご紹介します。r1;ベクターはデータを列方向に格納し、「形」に関係なく宛先ブロックを埋めます。Combined;Note:目的のブロックで定義される列は割り振られる前に存在する必要があります。Data行列データではRangeStringは下記のようになります。対応するショートネームを使用しました。二重引用符で囲みます。変数の代入は、以下の構文で行うことができます。col]の表記を使って行列範囲のセルの内容にアクセスします。mm[2,3]=10;行列が複素数を含む場合,複素数を表す文字列は以下のようにアクセスすることができます。DataグラフデータではRangeStringは下記のようになります。[GraphWindowName]LayerNameOrIndex!DataPlot割り当ての例はこのようになります。Zオプションを使って、プロットデータセットのワークシート列範囲を取得することができます。これは、2DプロットのY値、3DプロットのZ値または行列オブジェクトです。-wで複数範囲がサポートされるようになっています。値のワークシート範囲を取得します。[Graph1]1!1であることに注意して下さい。Graphデータセレクタツールを使用すると、グラフ上の1つまたは複数の範囲を選択し、LabTalkから参照することができます。選択された1つの範囲に対して、MKS1、MKS2システム変数を使用することができます。追加され、解析するために選択範囲を文字列に取得できます。次の例は、現在のグラフの各範囲を選択する方法を示しています。SR6で導入)の追加ドキュメントが利用できます。X値を使用した部分範囲指定XY範囲で作業する場合、X値を使用して部分範囲を指定できます。この構文は次のようになります。smoothを使用してデータの部分範囲をスムージングします。2番目のXY部分範囲をLoessでスムージングX値に基づいて部分範囲を指定する場合、Xデータは単調である必要があります。非接続データセット非接続データセットは、ワークシートの列に似ていますが、ブック・シート・列構成のようなオーバーヘッドを持ちません。宣言せずに代入文で自動的に作成されます。非接続データセットのRangeStringはこのようになります。[??]!LooseDatasetName割り当ては、構文を使って行うことができます。使って、緩やかなデータセットのグラフを描いてみます。aa;非接続データセットはプロジェクトに属するので、宣言され、セッションまたはローカルスコープを持つDataset変数とは異なります。データセット変数も内部的には非接続データセットですが、計算のみに使用するよう制限されており、例えばプロット作成には使用できません。範囲メソッド範囲変数が作成されると、この範囲から以下のメソッドが使用できるようになります。範囲の大きさを返します。このメソッドは、列、行列オブジェクト、グラフプロット、セルブロック、非接続データセットなどのデータセット範囲に対して動作します。セルブロックの場合、範囲宣言で指定された最初の部分範囲のサイズのみを返すことに注意してください。範囲の大きさを設定します。このメソッドは、列、行列オブジェクト、グラフプロット、セルブロック、非接続データセットなどのデータセット範囲に対して機能します。範囲がセルブロックである場合、範囲宣言で指定された最初の部分範囲のサイズのみを設定します。範囲にレイヤ(グラフレイヤ、ワークシート、行列レイヤ)が添付されている場合、このメソッドはレイヤのuidを返します。範囲に添付されたページ(グラフページ、ワークブック、または行列ブック)がある場合、このメソッドはページのuidを返します。=」のように、メソッドの後に$記号を付ける必要があります。範囲がワークシート列またはグラフのプロットの場合、このメソッドは範囲に関連付けられた操作のuidを返します。範囲がワークシート(階層シートを含む)の場合、このシート範囲に接続されている最初の操作のuidを返します。このメソッドは、名前またはインデックスを指定して、データ範囲から部分範囲を取得するために使用されます。このメソッドは仮想行列の場合にのみ便利です。いう式でYの値のデータセットを返すことができます。ztitle.sub(y)[3]$=;という式でこのデータセットの3番目の値を返すことができます。このメソッドは、列、行列オブジェクト、グラフプロット、セルブロック、非接続データセットなどのデータセット範囲に対して機能します。範囲のデータ順序を逆にします。範囲がセルブロックである場合、範囲宣言で指定された最初の部分列のデータ順序を逆転させるだけになります。XファンクションcolReverseで同じことができます。このメソッドは、列、行列オブジェクト、セルのブロック、ラベル行などのラベル領域とデータ領域に対して機能します。範囲内のデータとラベルをクリアします。範囲がデータ領域の場合、この範囲のデータは欠損値に設定されます。GUIでは、選択した範囲を右クリックして、コンテキストメニューで「クリア」を選択することもできます。Manipulation列の範囲は、データを直接操作するために使用することができます。列名を直接指定するのではなく、範囲を指定する大きなメリットは、どのページやレイヤがアクティブであるかを意識する必要がないことです。遅延r1=10+r1/3;セル範囲を指定する列範囲変数に対する直接計算がサポートされています。aaの全ての要素が10増加します列内の部分範囲のサポートが拡張されました。Assignment変数の列番号や他の範囲変数の名前を使って、実行時に自動で新しい範囲を作成できることが有益な場合があります。Rangewcol()関数は、次のように実際の列インデックスを実行時に解決できるようにするために使用します。(オブジェクト)メソッドを使って、別の範囲に基づいた新しい範囲を作成する方法を示しています。)置換を使うと、型に関係なく常に[Book]Sheet!の文字列に解決されます。Sheet3!Col(A)となります。既存の範囲をベースに新しい範囲を構築するこの方法は、最初にワークシートの範囲を宣言し、それを使って列の範囲を宣言するというコードの一元化を可能にするため、非常に便利です。rwks.addcol();そして、範囲rwksの最後の列(一番右側)を認識する別の列を定義します。これは新しく作成された列を指します。);範囲の割り当てを行うことで、次のような計算や割り当てを簡単に行うことができます。データを10で割り、その結果を範囲r2として宣言されている列に入れます。<0>表記で最後の行/列を参照<0>表記は、ある範囲の最後のインデックス(最後の行、最後の列、または最後のシート)を参照します。[Book]Sheet!2:0;これは、[Book1]Sheet1のワークシートの2列目から最後の列までのブロックを指します。列が追加されても、r1の範囲には自動で新しい列が含まれます。同様に、次の表記では、最後の列と最後の行を参照します。Argument多くのXファンクションが引数として範囲を使っています。statsXファンクションはベクトルを入力とし,指定した範囲について記述統計量を計算します。このように入力できます。1[5]:2[10];あるいは、範囲変数を使って、同じような操作をすることもできます。/*1シート目と2シート目のcol(2)に範囲変数を定義します。aa;そして、このXファンクションの入力ベクター引数は、範囲変数で指定します。Xファンクションの中にはXYRangeと呼ばれる特別なタイプの範囲を使用するものがあり、これは基本的にXとY、そしてエラーバーの範囲を含む複合的な範囲です。XYRangeの一般的なシンタックスはこのようになります。指定することもできます。Xデータが仮定されます。次の2つの表記はXYRangeと同じです。コマンドを使用して、範囲変数を含むすべてのセッション変数の名前とその定義済み本体のリストを出力します。すべてのセッション変数を一覧表示コマンドウィンドウでこのコマンドを発行すると、次のようなリストが出力されます。(以下を参照してください)。コマンドを使用します。次の表に、変数を削除するためのオプションを示します。Range各Originオブジェクトは、ショートネーム、ロングネーム、ユニバーサル識別子(UID)を持ちます。uid2rangeを使って、ページとレイヤの名前を取得できます。複数のシートを参照する場合は、ワークシートのデータ範囲文字列の一般的な形式を使用し、カンマとコロンを組み合わせて範囲を指定します。irng:=(1:end)!;詳細は、下の複合範囲を参照してください。データとして指定する順序付けられたペアです。XY部分範囲は、X値を使用して指定できます。つのワークシート列を含む順序付きトリプルです。Rangeを使います。次多項式を当てはめます。係数を3列目に、XYフィットデータを4,5列目に入れます。'?'は、強制的にワークシート指定を使用することを示し、範囲指定が要件を満たさない場合は、失敗します。範囲が指定を無視し、行番号をX指定として使用することを意味します。Y列がサンプリング情報まで持っている場合は、そのサンプリング情報を使ってXを提供します。して使用しますこれらの表記法は、plotxyXファンクションにおいて特に便利ですので、ここで紹介します。ワークシートのすべての列を列指定でプロットする。多くのXファンクションは、テンプレート、名前、インデックスなどのタグで出力範囲を変更することができます。以下は、離散周波数Xファンクション、discfreqsで使用できる例です。index:=3>";これは、TABLE.OTWというテンプレートをロードして、Resultというワークブックの3番目のシートに直接出力されます。複数の部分範囲で構成される範囲です。以下の構文で複合範囲を構築することができます。(sheet1:sheetn)!range1この動作を示すために、wcellcolorXファンクションを使って範囲を表示し、plotxyを使ってXYRangeを表示します。少なくとも4つの列が数値データで入力されているアクティブなブック/シートを操作しているものとします。font;plotxyを試すには、最初のシートにいくつか数値を入れ、新しいシートを追加し、2番目のシートにはより多くの数値を入れます。複合範囲には特有の不明瞭さがあります。XY範囲、例えば、(r1,r2)です。