データテーブルを開く

ここでは、スクリプトを使ってJMPデータテーブルを開く方法を見ていきます。新しいスクリプトエディタウィンドウを開き、pick directory関数を使って、スクリプト実行時にユーザーにディレクトリまたはフォルダへの移動を促すプロンプトを表示します。そして、その結果を変数myPathに格納します。変数名では、いわゆるキャメルケースを使用しています。これは、変数名で2つの単語の間にスペースを入れる代わりに、2つ目の単語の最初の文字を大文字にすることで読みやすくするものです。pick direct関数の結果をmyPathに代入します。pick directoryです。プロンプトはオプションです。これはフォルダ参照ダイアログの左上隅に表示されますが、使用すると文字列になります。「Where is the Cure Time file?」と入力して、ユーザーが探しているものを明確にできるようにします。そして、スクリプトを実行します。これで、インタラクティブに最後に移動したフォルダ、つまりこのコースのデータフォルダに移動できました。ここで「フォルダを選択」をクリックするだけで済みますが、実際にそのフォルダに移動しなければならないとしたらどうなるでしょうか。フォルダ内に入る必要はありません。フォルダを開いて「フォルダを選択」をクリックするのではなく、選択するだけで済みます。これは、実際に開いて「フォルダを選択」をクリックした場合と同じ結果になります。ログに返された内容と、パスに格納されているのは、そのフォルダまたはディレクトリへのパスと、最後にスラッシュで終わる文字列です。では、このパスを取得したらどうすればよいでしょうか?新しい行に移動し、open関数を使ってCure Timeデータテーブルを開く際に使用します。この結果を変数dtに格納します。open関数は、データテーブルを開くだけでなく、データテーブルオブジェクトへの参照も返します。では、openと入力し、変数myPathを2本の縦棒、または2本の縦線で連結し、データテーブル名(Cure TimeとドットJMPの間にスペース)を含む文字列と連結します。この行だけを実行します。ちなみに、標準デスクトップキーボードの右側にあるテンキーのEnterキーを押すと、カーソルが置かれているスクリプトの1行を実行できます。この行だけ実行すると、Cure Timeデータテーブルが開きます。ログを見ると、データテーブルオブジェクトのインスタンスが作成され、その参照がdtに格納されていることがわかります。スクリプトに戻ってdtにマウスオーバーすると、このデータテーブルへのオブジェクト参照が格納されていることがわかります。つまり、データテーブルにメッセージを送信したり、その他の方法でデータテーブルとやり取りしたりすることができます。ここでは、このopen関数の使用に焦点を当てます。他の例をいくつか見ていく前に、一つ注意点があります。データテーブルへのオブジェクト参照をdtに格納したので、もうこのデータテーブルを開く必要はないと思われがちですが、実際にはそうではありません。Cure Timeデータテーブルに戻って閉じ、新しい行に移動して、この行にdtと入力し、その行を実行してデータテーブルの使用を模倣します。実行すると、ログに返されるのは「データテーブル("UnknownTable")」です。つまり、データテーブルへのオブジェクト参照を変数に格納したからといって、データテーブルを閉じられるわけではありません。操作中はメモリ内に保持されたままになります。行の内容をクリアします。最初の行は実際にはそのまま残しますが、再度実行することはありません。次に、pick file関数を使用します。その結果を変数fに格納します。fにはpick fileの結果が代入されます。括弧内には、pick file 関数のオプション引数が2つあります。プロンプト引数とディレクトリ引数です。プロンプトではなくディレクトリを指定したい場合、これらは名前のない引数なので、引数の位置が重要になります。括弧内にカンマを入力し、変数 myPath を使用します。カンマは、JMP にこれが最初の引数ではなく2番目の引数であることを伝えるだけです。つまり、プロンプトは表示されず、pick file 関数にどのディレクトリを参照するかが指示されます。これを実行します。すると、ファイルを開くダイアログのようなものが開きます。ファイルを選択したときにクリックするボタンには「開く」と表示されますが、これはデータテーブルを開くものではなく、f に格納される文字列を返すだけです。Cure Time.jmp をクリックし、「開く」をクリックします。もちろん、ファイル名と拡張子を含む絶対パスが表示されます。そして、新しい行に dt と入力して、引数 f を取る open 関数の結果を代入できます。その行を実行します。ここでも、dt にはデータ テーブル Cure Time が格納されており、最初に pick directory を使用してユーザーにファイルの場所を尋ね、次に実際に Cure Time ファイルを選択させることができます。また、この場合もプロンプトがあっても問題ありません。どちらの場合も、プロンプトはウィンドウの左上隅に表示されます。引数を指定せずに open 関数を使用することもできます。その場合、「ファイル > 開く」を選択した場合と同じように動作しますが、データ テーブル オブジェクト参照も返します。つまり、pick 関数は文字列を返します。Open はデータ テーブル オブジェクト参照を返します。