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 関数参照を Worksheet
、Cell
、または 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()
関数で利用可能です:
プロパティ | 定義 |
---|---|
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 オブジェクト)。読み取り専用です。 |
**例:**セルの 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 は_どちらも
9
や12
などの行番号を指定します。返される範囲には、その行範囲のすべてのセルが含まれます (たとえば、この例では行 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 までのすべての行のリストのリストを作成します