メインコンテンツまでスキップ
バージョン:23.4

Excelファイルの相互作用

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

SenseTalkでExcelファイルを扱う

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

重要

ここで説明する機能は、SenseTalkのデータベース機能とは異なります。スプレッドシートの内容にデータベースとしてアクセスするには、「Excel をデータベースとして使用する」を参照してください

注記

ベストプラクティスとして、SenseTalkスクリプト内で参照されるファイルは、スイートウィンドウのリソースペインを通じてEggplant Functionalに追加する必要があります。 この方法では、ファイルが指定されたスイートのスイートディレクトリ内のリソースディレクトリに保存されます。 SenseTalkはローカルファイルシステム上の他の場所に保存されたファイルにアクセスできますが、リソースディレクトリを使用すると追加の機能が提供されます。 詳細については、リソースペインをご覧ください。

注記

Excelの色関数はインデックス色とRGB色のみをサポートしています。 このセクションに表示されている関数がサポートされていないフォント色を読み取り処理すると、色値0,0,1が返されます。

ファイルから直接データを読み取るか、またはデータをファイルに書き込むには、次の関数とプロパティを使用します:

Workbook() Functionはワークブックファイルを識別し、他の関数を使用してそれにアクセスするための起点を提供します。

Worksheet Functionはワークブック内の特定のワークシートを識別します。

Cell Functionはワークシート内の特定のセルの値とプロパティへのアクセスを提供します。

CellRange Functionは、ワークシートの行、列、または矩形領域の範囲内の複数のセルに素早くアクセスできるようにします。

Excelファイルへの複数の接続の作成

Eggplant Functionalでは、Excelファイルに複数の接続を作成することができますが、これにより問題やエラーが発生する可能性があります。 たとえば、Excelファイルへの接続を_ワークブック_(このページで説明)および_データベース_(ここで説明)の両方として作成すると、Eggplant FunctionalはInternalWorkbookError - data source needed but no workbook valueのようなエラーメッセージを返す可能性があります。 このエラーは、一方の接続を閉じることで修正できます。

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ワークブック内のすべてのワークシートの名前のリスト。

例:

put workbook(excelFilePath) into myWorkbook
put myWorkbook is a workbook --> True (myWorkbook is a workbook object)
put myWorkbook's worksheetCount --> 3
put the worksheetNames of myWorkbook --> ["People","Departments","Facilities"]

関連:

  • Worksheet 関数: この関数を使用して、ワークブック内の特定のワークシートにアクセスします。
  • Cell 関数: この関数を使用して、個々のセルの値またはプロパティにアクセスします。
  • CellRange 関数: この関数を使用して、セル、行、または列の範囲にアクセスします。

Worksheet 関数

動作: この関数は、ワークブック内の特定のワークシートへのアクセスを提供します。この関数は Worksheet 参照を返します。

**パラメータ:**ブック参照とシート識別子。ブック参照は、最初のパラメーターとして関数に渡すか (以下の最初の構文)、Worksheet 関数をブック オブジェクトの関数として呼び出すことができます (以下の 2 番目と 3 番目の構文)。シート識別子は、シートの名前またはその番号 (ブックの最初のシートの場合は 1、2 番目のシートの場合は 2 など) のいずれかです。

構文:
worksheet( workbook, sheetIdentifier )
worksheet( sheetIdentifier ) of workbook workbook .worksheet( sheetIdentifier )

例:

set worksheet2 to Worksheet(MyExcelFile, 2) // Excelファイルの2番目のワークシートを参照するようにworksheet2を設定します

例:

set custBudget to MyExcelFile.Worksheet("Customer Budget") // "Customer Budget" という名前のワークシートを参照するように custBudget を設定します

ブックのプロパティ

以下のプロパティは Worksheet() 関数で利用可能です:

プロパティ定義
nameワークブック内のシートの名前。
workbookシートが属するブック (Workbook オブジェクト)。読み取り専用です。

例:

シートが属するブック (Workbook オブジェクト)。読み取り専用です。
put mySheet is a worksheet --> True (mySheet is a worksheet object)
put mySheet's name --> "People"
put "Special" before mySheet's name
put the worksheetNames of myWorkbook --> ["People","Departments","Facilities"]

関連:

  • Workbook 関数: この関数を使用してExcelのワークブックファイルにアクセスします。
  • Cell 関数: この関数を使用して、個々のセルの値またはプロパティにアクセスします。
  • CellRange 関数: この関数を使用して、セル、行、または列の範囲にアクセスします。

Cell 関数

動作: この関数は、個々のセルの値またはプロパティにアクセスするために使用します。ワークシート参照の代わりにワークブック参照が使用される場合、関数はワークブックの最初のワークシートを使用します。2つのパラメータ(ワークシート参照とセル識別子)を渡して呼び出すことも、セル識別子をパラメータとしてワークシートまたはワークブックの関数として呼び出すこともできます。セル識別子は、伝統的なセル名(たとえば、"C6")でも、行と列を識別する数字のペア(たとえば、(6,3))でもよい。Cell関数が返す値は、スプレッドシートのセルに何が格納されているかにより、文字列、数値、ブーリアン、または日付になる場合があります。

Cell 関数によって返される値は、Cell オブジェクト (worksheeet 内の特定のセルへの参照) であり、その値はセルの内容です。セルオブジェクトの値は、スプレッドシートのセルに保存されている内容に応じて、文字列、数値、ブール値、または日付になります。セルオブジェクトもコンテナであり、変数のように値を変更できます。さらに、セルオブジェクトには、アクセス可能なプロパティが多数あります。

パラメータ: 以下のいずれかのアプローチを使用してパラメータを渡します:

  • ワークシート参照とセル識別子を渡します。
  • セル識別子をパラメータとして、ワークシートの関数として Cell 関数を呼び出します。

構文:
cell( worksheetReference, cellIdentifier )
cell( cellIdentifier ) of worksheetReference
worksheetReference .cell( cellIdentifier )

例: ワークシート参照とセル識別子を渡します:

put Cell(worksheet1, "A3") into cellValue1

例: セル識別子をパラメータとして、ワークシートの関数として Cell 関数を呼び出します:

put worksheet1.Cell(4,7) into workingBalance

Example: Using a Cell object as a container to update a cell value:

add 1 to worksheet1's Cell("E3") // 更新 worksheet1 のセル E3

例: Cellオブジェクトをコンテナとして使用して、セルの値を設定します。

put the date into Cell(worksheet1, [3,5]) // stores the date into row 3, column 5 of worksheet1

テキストプロパティ

以下のプロパティは Worksheet() 関数で利用可能です:

プロパティ定義
cellTypeCellType プロパティは、Number, String, Date, Boolean, Blank, Empty の値、または以下のエラー文字列をサポートします: #NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A
columnHiddenセルを含む列が非表示かどうかを示す真偽値(真または偽)。
fontColorセル内のテキストの色。
fontNameセル内に表示されるテキストのフォント名。
fontSizeセル内に表示されるテキストのフォントサイズ。
formulaセルに存在する式(セルが式を含む場合)。
rowHiddenセルを含む行が非表示かどうかを示す真偽値(真または偽)。
worksheetシートが属するブック (Workbook オブジェクト)。読み取り専用です。

**例:**セルの CellType の決定:

put "PartNum" into cell("D1") of myWorksheet
put the CellType of cell("D1") of myWorksheet --> "String"
put 50519 into cell("D2") of myWorksheet
put the CellType of cell("D1") of myWorksheet --> "String"

**例:**他のセルプロパティへのアクセス:

put the cellType of Cell("A3") of worksheet1— ワークシートの指定されたセルから cellType プロパティ値を表示

**例:**セル内のテキストのサイズを大きくする:

add 4 to the fontSize of Cell("A3") of worksheet1 // fontSize を 4 増やします

関連:

  • Workbook Function: この関数を使用して、Excelワークブックファイルにアクセスします。
  • Worksheet Function: この関数を使用して、ワークブック内の特定のワークシートにアクセスします。
  • CellRange Function: この関数を使用して、セル、行、または列の範囲にアクセスします。

CellRange Function

動作:CellRange 関数は、ワークシート セルの矩形範囲にアクセスするために使用されます。これは、1 つ、2 つ、または 3 つのパラメーター (ワークシート参照と 0、1、または 2 つのセル/行/列識別子) を渡すか、識別子をパラメーターとしてワークシートまたはブックの関数として呼び出すことによって呼び出すことができます。

cellRange 関数 __ は、範囲にセルが 1 つしか含まれていない場合でも、常にリストのリストを返します。外側のリストの各項目は、範囲内の 1 つの行の値を保持します。内側のリストの各項目は、その行内の列ごとに 1 つずつ、Cell オブジェクト (Cell 関数で説明) です

**パラメータ:**以下で説明するように、ワークシート オブジェクト (または最初のワークシートにアクセスする場合は workbook オブジェクト) と、最大 2 つのセル、行、または列の識別子。

構文:
cellRange( worksheet, firstIdentifier, secondIdentifier )
cellRange( worksheet {, singleIdentifier } )
cellRange( worksheet, firstIdentifier, secondIdentifier )
worksheet .cellRange( { singleIdentifier } )

セルの範囲は、さまざまな方法で指定できます。識別子が指定されていない場合、cellRange は、定義された値を含むワークシートのすべての行と列を含む範囲を返します。

2 つの識別子を指定する場合、オプションには次のものが含まれます。

  • firstIdentifier と _secondIdentifier は_どちらも、"C6""E8"、または [6,3] と [8,5``] などの特定のセルを識別します。返されるセルには、これら 2 つのセルを反対側の角とする四角形の範囲のセルが含まれます。
  • firstIdentifier と _secondIdentifier は_どちらも "B""D" などの列文字を指定します。返される範囲には、その範囲の列のすべてのセルが含まれます (たとえば、この例では列 B、C、D のすべてのセル)。
  • firstIdentifier と _secondIdentifier は_どちらも 912 などの行番号を指定します。返される範囲には、その行範囲のすべてのセルが含まれます (たとえば、この例では行 9、10、11、12 のすべてのセル)。

識別子が 1 つしか指定されていない場合、オプションには次のものが含まれます。

  • singleIdentifier は、"F9"[2,13] などの特定のセルを識別します。その 1 つのセルが返されます (CellRange は常にリストのリストを返すため、そのセルを含む別のリストを含むリストとして)。

  • singleIdentifier は、"G" などの 1 つの列の文字を指定します。その列のすべてのセルが返されます。

  • singleIdentifier は、42 などの 1 つの行番号を指定します。その行のすべてのセルが返されます。

  • singleIdentifier は、"A:H""16:42""E3:H7" など、":" 文字で区切られた 2 つの識別子を含む文字列です。その範囲の列、行、またはセル内のすべてのセルが返されます。

例:

put worksheet1.cellRange ("C6", "E8") into columnsBasic // セル範囲のリストを作成します

例:

put worksheet1.cellRange("C","E") into columnsBasic -- 列範囲のリストのリストを作成

例:

put cellRange(2, lastRowNum) of worksheet1 into columnsBasic // 2 から lastRowNum までのすべての行のリストのリストを作成します

例:

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 関数: この関数を使用して個々のセルの値またはプロパティにアクセスします。