Excelファイルの相互作用
SenseTalkを使用すると、Microsoft Excel形式で保存されたデータにアクセスできます。 このセクションの関数を使用して、SenseTalkは個々のセルの値から直接データを読み取ります。
SenseTalkでExcelファイルを扱う
Excelのスプレッドシートファイルに値を更新して書き戻すことができ、セル内のプロパティ(テキストの色やフォントサイズなど)を更新できます。 例えば、SenseTalkを設定してスプレッドシートからデータを読み取り、このデータを使用してテストを実行し、その結果をスプレッドシートに書き戻すことができます。
このオプションはSenseTalkのデータベース機能を_サポートしていません_。 SenseTalkのデータベース機能を使用してExcelで作業するには、Excelでの作業をご覧ください。
ベストプラクティスとして、SenseTalkスクリプト内で参照されるファイルは、スイートウィンドウのリソースペインを通じてEggplant Functionalに追加する必要があります。 この方法では、ファイルが指定されたスイートのスイートディレクトリ内のリソースディレクトリに保存されます。 SenseTalkはローカルファイルシステム上の他の場所に保存されたファイルにアクセスできますが、リソースディレクトリを使用すると追加の機能が提供されます。 詳細については、リソースペインをご覧ください。
Excelの色関数はインデックス色とRGB色のみをサポートしています。 このセクションに表示されている関数がサポートされていないフォント色を読み取り処理すると、色値0,0,1
が返されます。
以下に示す関数をサポートし、Excelファイルで作業するには、まずEggplant Functionalで使用したいExcelファイルを定義します:
例:
set MyExcelFile to Workbook(ResourcePath("TestCases.xlsx")) // Sets MyExcelFile as a reference variable for the TestCases.xlsx Excel file
このコマンドが実行された後、SenseTalkは、コマンドで指定した名前(すなわちMyExcelFile
)を使用してTestCases.xlsx
から読み取り、書き込みができます。
ファイルから直接データを読み取るか、またはデータをファイルに書き込むには、次の関数とプロパティを使用します:
Workbook() Functionはワークブックファイルを識別し、他の関数を使用してそれにアクセスするための起点を提供します。
Worksheet Functionはワークブック内の特定のワークシートを識別します。
Cell Functionはワークシート内の特定のセルの値とプロパティへのアクセスを提供します。
CellRange Functionは、ワークシートの行、列、または矩形領域の範囲内の複数のセルに素早くアクセスできるようにします。
Excelファイルへの複数の接続の作成
Eggplant Functionalでは、Excelファイルに複数の接続を作成することができますが、これにより問題やエラーが発生する可能性があります。 たとえば、Excelファイルへの接続を_ワークブック_(このページで説明)および_データベース_(ここで説明)の両方として作成すると、Eggplant FunctionalはInternalWorkbookError - data source needed but no workbook value
のようなエラーメッセージを返す可能性があります。 このエラーは、一方の接続を閉じることで修正できます。
また、Excelのワークブック内の異なるテーブルを見るために別の接続を作成することもできます。 以下に示します。
例:
set myDB1 to {file:ResourcePath("Book1.xlsx"), type:"excel", writeable:"yes"}
set mySheet to table("Sheet1") of myDB1
set myDB2 to {file:ResourcePath("Book1.xlsx"), type:"excel", writeable:"yes"}
set myOtherSheet to table("Sheet2") of myDB2
Workbook
関数
動作: Workbook
関数は、Excelスプレッドシートへの直接アクセスの開始点です。この関数はパラメータとしてExcelファイルへのパス名を受け取り、.xlsx
ファイル拡張子を持つExcelファイルを参照し、Workbook
参照を返します。
パラメータ: Excelファイルへのパス名。
構文:
Workbook( ExcelFileName )
例:
set MyExcelFile to Workbook(ResourcePath("TestCases.xlsx")) // Sets MyExcelFile as a reference variable for the TestCases.xlsx Excel file
例:
set MyExcelFile to Workbook("TestCases.xlsx") // TestCases.xlsx Excelファイルへの参照変数としてMyExcelFileを設定する。workbook() 関数はデフォルトのスイートディレクトリ内のTestCases.xlsx Excelファイルを探します
この Workbook
関数参照を Worksheet
、Cell
、または CellRange
関数と一緒に使用して、Excelファイルの内容にアクセスするか、またはワークブックについての他の情報を取得します。
以下の読み取り専用プロパティが Workbook
関数で利用可能です:
プロパティ | 定義 |
---|---|
worksheetCount | ワークブックに含まれるワークシートの数。 |
worksheetNames | ワークブック内のすべてのワークシートの名前のリスト。 |
関連:
- Worksheet 関数: この関数を使用して、ワークブック内の特定のワークシートにアクセスします。
- Cell 関数: この関数を使用して、個々のセルの値またはプロパティにアクセスします。
- CellRange 関数: この関数を使用して、セル、行、または列の範囲にアクセスします。
Worksheet
関数
動作: この関数は、ワークブック内の特定のワークシートへのアクセスを提供します。この関数は Worksheet
参照を返します。
パラメータ: 次のアプローチのいずれかを使用してパラメータを渡します:
- ワークブック参照とシート識別子の両方を渡します。これは下記の最初の構文行で示されています。
- ワークブックの関数として呼び出し、追加のパラメータ(シート識別子)を含めます。これは下記の2番目の構文行で示されています。シート識別子はシートの名前またはその番号(ワークブックの最初のシートは1、2番目のシートは2など)のどちらかです。
構文:
worksheet( workbook, sheetIdentifier )
workbook .worksheet( sheetIdentifier )
例:
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( worksheetReference, cellIdentifier )
worksheetReference .cell( cellIdentifier )
SenseTalkコマンドを使用して、Excelスプレッドシートのセルのプロパティ値を読み取ったり、書き込んだりすることができます。ワークシートのセルのセルプロパティを表示するには:
put the <property> of <cellIdentifier> <cell reference> of <worksheet reference>
ワークシートのセルのセルプロパティを設定するには:
set the <property> of <cellIdentifier> <cell reference> of <worksheet reference> to <new value>
例: ワークシート参照とセル識別子を渡します:
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 <property> of cell("A3") of worksheet1
例: Cell
関数はコンテナとしても機能し、新しい値をセルに保存できます:
put 23 into Cell ("B4") of worksheet1— ワークシートの指定されたセルにセル値を設定
例: セルプロパティにもアクセスできます:
put the cellType of Cell("A3") of worksheet1— ワークシートの指定されたセルから cellType プロパティ値を表示
例: 下記に示すサポートされているセル関数プロパティのプロパティを使用して、worksheet1 の指定したセルの指定したセルプロパティを指定した <property value
> に設定します:
set the <property> of Cell("A3") of worksheet1 to "<property value>"
プロパティ | 定義 |
---|---|
cellType | cellType プロパティは、Number, String, Date, Boolean, Blank, Empty の値、または以下のエラー文字列をサポートします: #NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A |
columnHidden | セルを含む列が非表示かどうかを示す真偽値(真または偽)。 |
fontColor | セル内のテキストの色。 |
fontName | セル内に表示されるテキストのフォント名。 |
fontSize | セル内に表示されるテキストのフォントサイズ。 |
formula | セルに存在する式(セルが式を含む場合)。 |
rowHidden | セルを含む行が非表示かどうかを示す真偽値(真または偽)。 |
worksheet | セルが属するワークシート。 |
関連:
- Workbook Function: この関数を使用して、Excelワークブックファイルにアクセスします。
- Worksheet Function: この関数を使用して、ワークブック内の特定のワークシートにアクセスします。
- CellRange Function: この関数を使用して、セル、行、または列の範囲にアクセスします。
CellRange
Function
動作: この関数はワークシートのセルの範囲にアクセスするために使用されます。三つのパラメータ(ワークシートの参照と二つのセル識別子)を渡すか、セル識別子をパラメータとしてワークシートまたはワークブックの関数として呼び出すことができます。セル識別子は、例えば "C6"
と "E8"
のような伝統的なセル名、または ("C","E")
のような列を識別する一対の文字が使えます。cellRange
関数によって返される値は、例えば "C6"
と "E8"
のセルを範囲の両端とするセル値の長方形からの一連の値、または C 列から E 列までのリストのリストです。cellRange
関数は、開始行番号と終了行番号を渡すことで行の範囲を指定することもできます。cellRange
関数を使用する別の方法は、cellRange("C:E")
(列の範囲)や cellRange("4:12")
(行の範囲)のように ":" で区切られた二つの値を含む一つの文字列を渡すことです。cellRange
関数は、範囲が一つのセルのみを含む場合でも常にリストのリストを返します。
パラメータ: 以下の いずれかのアプローチを使用してパラメータを渡します:
- セル識別子をパラメータとしてワークシートの
cellRange
関数を呼び出します。 - 二つの列識別子を含めてワークシートの
cellRange
関数を呼び出します。 - 二つの行識別子を含めてワークシートの
cellRange
関数を呼び出します。 - コロンで区切られた列の範囲をパラメータとしてワークシートの
cellRange
関数を呼び出します。 - コロンで区切られた行の範囲をパラメータとしてワークシートの
cellRange
関数を呼び出します。
構文:
worksheet .cellRange( firstCellIdentifier, secondCellIdentifier )
worksheet .cellRange( firstColumnLetter, secondColumnLetter )
worksheet .cellRange( firstRowNumber, secondRowNumber )
worksheet .cellRange( rangeIdentifier )
例:
put worksheet1.cellRange ("C6", "E8") into columnsBasic --セル範囲のリストのリストを作成