Excelファイルとのやり取り
Microsoft Excel(.xlsx)形式で格納されているデータは、SenseTalkを使ってアクセスすることができます。このセクションに挙げる関数を使うと、SenseTalkが各セルの値からデータを直接読み取ります。ユーザーは、値を更新してそれを再びExcelスプレッドシートファイルに書き込んだり、セル内の文字色やフォントサイズなどのプロパティを更新したりすることができます。例えば、SenseTalkを構成することによって、スプレッドシートからデータを読み取り、このデータを使ってテストを駆動した後、そのテスト結果を元のスプレッドシートに書き込むといったことが可能です。
このオプションは、SenseTalkのデータベース機能に対応していません。SenseTalkの主要なデータベース機能を用いてExcelを扱うためのSenseTalk構成については、SenseTalkにおけるExcelの扱い方をご覧ください。
次の例に示すようなコマンドを実行すると、Excelファイル(TestCases.xlsx)を組み込むようSenseTalkが構成され、以降の関数が使えるようになります。
例:
set MyExcelFile to Workbook(ResourcePath("TestCases.xlsx")) // MyExcelFileをExcelファイルTestCases.xlsxの参照変数として設定します
このコマンドの実行後は、コマンド内で指定した名前(MyExcelFile)を使って、SenseTalkでTestCases.xlsxファイルの読み書きを行えるようになります。この例に出した名前は任意に選択可能なものですが、一貫性を持たせるために以降の例ではMyExcelFileを使っています。ファイルにデータを直接読み書きする際に使用する関数とプロパティは次のとおりです。
Workbook()関数は、ワークブックファイルを特定し、他の関数を用いたアクセスの出発点となります。
Worksheet()関数は、ワークブック内にある個別のワークシートを特定します。
Cell()関数を使うと、ワークシート内にある特定の1セルの値およびプロパティにアクセスできます。
CellRange()関数を使うと、ワークシートの複数行、複数列または矩形領域にわたる複数のセルに一気にアクセスできます。
Workbook()関数
挙動:Workbook()関数は、Excelスプレッドシートに直接アクセスする際の出発点となります。この関数は、1つのパラメータ(.xlsx拡張子を持つExcelファイルのパス名)を受け入れ、ワークブック参照を返します。
パラメータ:Excelファイルのパス名。
構文:
Workbook(<Excelファイル>.xlsx)
例:
set MyExcelFile to Workbook(ResourcePath("TestCases.xlsx")) // MyExcelFileをExcelファイルTestCases.xlsxの参照変数として設定します
例:
set MyExcelFile to Workbook("TestCases.xlsx") // MyExcelFileをExcelファイルTestCases.xlsxの参照変数として設定します。workbook()関数はデフォルトのスイートディレクトリ内でExcelファイルTestCases.xlsxを探します
Workbook()関数では、次の読み取り専用プロパティが利用可能です。
プロパティ | 定義 |
---|---|
worksheetCount | ワークブックに含まれるワークシートの数 |
worksheetNames | ワークブック内の全ワークシート名のリスト |
関連:
- Worksheet()関数:ワークブック内にある個別のワークシートにアクセスするときは、こちらの関数を使用します。
- Cell()関数:個々のセルの値やプロパティにアクセスするときは、こちらの関数を使用します。
- CellRange()関数:ある範囲のセル、行または列にアクセスするときは、こちらの関数を使用します。
Worksheet()関数
挙動:ワークブック内の特定のワークシートへのアクセスを提供します。この関数が返すのは、ワークシート参照です。
パラメータ:渡し方としては次の選択肢があります。
- ワークブック参照とシート識別子の両方を渡します(下記の構文の1行目を参照)。
- ワークブックの関数として呼び出し、追加のパラメータ(シート識別子)を1つ含めます(下記の構文の2行目を参照)。シート識別子には、シート名またはシート番号(1がワークブック内の最初のシート、2が2番目のシート、など)が使用可能です。
構文:
Worksheet(<ワークブック>, <シート識別子>)
<ワークブック>. Worksheet(<シート識別子>)
例:
set worksheet2 to Worksheet(MyExcelFile, 2) // 当該excelファイルの2番目のワークシートをworksheet2に設定します
例:
set worksheet1 to MyExcelFile. Worksheet("Customer Budget") // 「Customer Budget」という名前のワークシートをworksheet1に設定します
Worksheet()関数では、次のプロパティが利用可能です。
プロパティ | 定義 |
---|---|
name | ワークブック内におけるシート名 |
workbook | シートが属しているワークブック |
関連:
- Workbook()関数:Excelワークブックファイルにアクセスするときは、こちらの関数を使用します。
- Cell()関数:個々のセルの値やプロパティにアクセスするときは、こちらの関数を使用します。
- CellRange()関数:ある範囲のセル、行または列にアクセスするときは、こちらの関数を使用します。
Cell()関数
挙動:個々のセルの値やプロパティにアクセスします。ワークシート参照の代わりにワークブック参照を使用した場合、そのワークブック内の最初のワークシートが使われます。この関数は、2つのパラメータ(ワークシート参照とセル識別子)を渡して呼び出すことも、ワークシートまたはワークブックの関数として呼び出し、セル識別子をそのパラメータとすることもできます。セル識別子には、通常のセル名(例、「C6」)か、行と列を示す番号の組(例、(6,3))を使用可能です。Cell()関数の戻り値は、スプレッドシートのセルに格納されている値に応じて、文字列、数値、ブーリアンまたは日付となります。
パラメータ:渡し方としては次の選択肢があります。
-
ワークシート参照とセル識別子を渡します。
-
ワークシートの関数としてCell()関数を呼び出し、セル識別子をそのパラメータとします。
構文:
ワークシート参照とセル識別子を渡す場合:
Cell (<ワークシート参照>, <セル識別子>)
ワークシートの関数としてCell()関数を呼び出し、セル識別子をそのパラメータとする場合:
<ワークシート参照>.<セル識別子>()
Excelスプレッドシート内のセルのプロパティ値は、SenseTalkコマンドを用いて読み書き可能です。ワークシートのセルのプロパティを表示する場合:
put the <プロパティ> of <セル識別子> <セル参照> of <ワークシート参照>
ワークシートのセルのプロパティを設定する場合:
set the <プロパティ> of <セル識別子> <セル参照> of <ワークシート参照> to <新しい値>
例:ワークシート参照とセル識別子を渡しています。
put Cell(worksheet1, "A3") into cellValue1
例:ワークシートの関数としてCell()関数を呼び出し、セル識別子をそのパラメータとしています。
put worksheet1. Cell(4,7) into workingBalance
例:ワークシート参照とセル識別子を渡しています。
add 1 to worksheet1's Cell("E3") — worksheet1のセルE3を更新します
例:ワークシート参照とセル識別子を渡しています。
put the date into Cell(worksheet1 ( 3,5)) — worksheet1の行3、列5に日付を格納します
例:対応セルプロパティの表(下記参照)にあるプロパティを使用し、worksheet1内の特定のセルの指定セルプロパティを読み取って表示します。
put the <プロパティ> of cell("A3") of worksheet1
例:Cell()関数は、コンテナとしても働くため、セルに新しい値を格納することが可能です。
put 23 into Cell ("B4") of worksheet1— ワークシート内の指定セルにセル値を設定します
例:セルプロパティへのアクセスおよび設定も可能です。
put the cellType of Cell("A3") of worksheet1— ワークシート内の指定セルからcellTypeプロパティの値を表示します
set the cellType of Cell("A3") of worksheet1 to "String"— ワークシート内の指定セルにcellTypeプロパティの値を設定します
例:対応セル関数プロパティの表(下記参照)にあるプロパティを使用し、worksheet1内の特定のセルの指定セルプロパティを、指定の<プロパティ値>に設定します。
set the <プロパティ> of Cell("A3") of worksheet1 to "<プロパティ値>" | プロパティ |
---|---|
定義 | cellType |
cellTypeプロパティの対応値:Number(数値)、String(文字列)、Date(日付)、Boolean(ブーリアン)、Blank(空白)、Empty(空)、いずれかのエラー文字列:#NULL!、#DIV/0!、#VALUE!、#REF!、#NAME?、#NUM!または#N/A | columnHidden |
そのセルを含んだ列が非表示になっているかどうかを示すブーリアン(trueまたはfalse) |
fontColor |
そのセル内のテキストの色 |
fontName |
そのセルに表示されているテキストのフォント名 | fontSize |
そのセルに表示されているテキストのフォントサイズ | formula |
セル内に存在する式(セルが式を含んでいる場合) | rowHidden |
そのセルを含んだ行が非表示になっているかどうかを示すブーリアン(trueまたはfalse) | worksheet |
セルが属しているワークシート
- 関連:
- Workbook()関数:Excelワークブックファイルにアクセスするときは、こちらの関数を使用します。
- Worksheet()関数:ワークブック内にある個別のワークシートにアクセスするときは、こちらの関数を使用します。
CellRange()関数:ある範囲のセル、行または列にアクセスするときは、こちらの関数を使用します。
挙動:ある範囲の複数のワークシートセルにアクセスします。この関数は、3つのパラメータ(ワークシート参照と2つのセル識別子)を渡して呼び出すことも、ワークシートまたはワークブックの関数として呼び出し、セル識別子をそのパラメータとすることもできます。セル識別子には、複数の通常セル名(例、「C6」と「E8」)か、複数の列を示す文字の組(例、("C","E"))を使用可能です。cellRange()関数が返す値は、上の例でいくと、「C6」および「E8」セルをセル値の矩形範囲の境界(範囲内)として使用したワークシートからの値の集合か、列CからEまでのリストのリストになります。cellRange()関数では、始点と終点の行番号を渡すことで、行の範囲を指定することもできます。これ以外のcellRange()関数の使い方として、2つの値を「:」で区切った1つの文字列を渡すやり方があります。例えば、列の範囲であればcellRange("C:E")、行の範囲であればcellRange("4:12") のようになります。cellRange()関数は、範囲内に1つのセルしか含まれていない場合であっても、常にリストのリストを返します。
-
パラメータ:渡し方としては次の選択肢があります。
-
ワークシートの関数としてcellRange()関数を呼び出し、セル識別子をそのパラメータとします。
-
ワークシートの関数としてcellRange()関数を呼び出し、2つの列識別子を含みます。
-
ワークシートの関数としてcellRange()関数を呼び出し、2つの行識別子を含みます。
-
ワークシートの関数としてcellRange()関数を呼び出し、コロンで区切った列範囲をそのパラメータとします。
ワークシートの関数としてcellRange()関数を呼び出し、コロンで区切った行範囲をそのパラメータとします。
構文:
ワークシートの関数としてcellRange()関数を呼び出し、セル識別子をそのパラメータとする場合:
<ワークシート>.cellRange(<1つ目のセル識別子>, <2つ目のセル識別子>)
ワークシートの関数としてcellRange()関数を呼び出し、2つの列識別子を含む場合:
<ワークシート>.cellRange (<1つ目の列文字>, <2つ目の列文字>)
ワークシートの関数としてcellRange()関数を呼び出し、2つの行識別子を含む場合:
<ワークシート>.cellRange (<1つ目の行番号>, <2つ目の行番号>)
ワークシートの関数としてcellRange()関数を呼び出し、コロンで区切った列範囲をそのパラメータとする場合:
<ワークシート>.cellRange ("<1つ目の列文字>:<2つ目の列文字>")
ワークシートの関数としてcellRange()関数を呼び出し、コロンで区切った行範囲をそのパラメータとする場合:
<ワークシート>.cellRange ("<1つ目の行番号>:<2つ目の行番号>")
例:
put worksheet1.cellRange ("C6", "E8") into columnsBasic -- セル範囲に対応したリストのリストを作成します
例:
put worksheet1.cellRange("C","E") into columnsBasic -- 列範囲に対応したリストのリストを作成します
例:
put cellRange("6","8") of worksheet1 into columnsBasic -- 行範囲に対応したリストのリストを作成します
例:
put cellRange("C:E") of worksheet1 into columnsBasic -- コロンを使用し、列範囲に対応したリストのリストを作成します
例:
put cellRange("6:8") of worksheet1 into columnsBasic -- コロンを使用し、列範囲に対応したリストのリストを作成します
例:
put worksheet1's cellRange into allCellList -- リストのリストをallCellList変数に割り当てます
例:
put cellRange(1) of worksheet1 into firstRow -- 行1の値を格納したリストのリストをfirstRow変数に割り当てます
例:
put worksheet1.cellRange("A","E") into columnsBasic-- 列AからEまでの各行のリストのリストをcolumnsBasic変数に割り当てます
例:
put cellRange("B3","D5") of worksheet1 into rectRange --セルによって定義される矩形範囲内のリストのリストをrectRange変数に割り当てます
-
関連:
-
Workbook()関数:Excelワークブックファイルにアクセスするときは、こちらの関数を使用します。
-
Worksheet()関数:ワークブック内にある個別のワークシートにアクセスするときは、こちらの関数を使用します。