メインコンテンツまでスキップ

Excelファイルの相互作用

SenseTalkを使用すると、Microsoft Excel形式で保存されたデータにアクセスできます。 このセクションの関数を使用して、SenseTalkは個々のセルの値から直接データを読み取ります。

SenseTalkでExcelファイルを扱う

Excelのスプレッドシートファイルに値を更新して書き戻すことができ、セル内のプロパティ(テキストの色やフォントサイズなど)を更新できます。 例えば、SenseTalkを設定してスプレッドシートからデータを読み取り、このデータを使用してテストを実行し、その結果をスプレッドシートに書き戻すことができます。

Important

このオプションは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 関数参照を WorksheetCell、または 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>"
プロパティ定義
cellTypecellType プロパティは、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 --セル範囲のリストのリストを作成

例:

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 関数: この関数を使用してワークブック内の特定のワークシートにアクセスします。
  • Cell 関数: この関数を使用して個々のセルの値またはプロパティにアクセスします。