Excel 拡張子のサンプル: 要素クラス

この拡張機能は、UITechnologyElement から派生し、Microsoft Excel 内の Worksheet コントロールと Cell コントロールを表すクラスを使用します。

この拡張機能の基本要素は ExcelElement です。 ExcelWorksheetElement クラスおよび ExcelCellElement クラスは、この要素を継承します。

Element クラスと ElementInformation クラス

Element は、Excel 拡張機能のすべてのユーザー インターフェイス要素の基底クラスです。UITechnologyElement クラスから継承されます。 ElementInformation はサンプルの要素情報クラスの基底クラスであり、メンバーを持ちません。

単純なプロパティとメソッド

これらのメンバーは、Name プロパティの値や ClassName プロパティの値などの単純な値を返し、コードも明快で読みやすいものです。 一部の値は、Utility クラスを使用して返されます。これについては、後で説明します。 その他は、このサンプル拡張機能には関連しないので、null を返します。 QueryId プロパティという CacheProperties メソッドの 2 つは他のメンバーよりも興味深いメンバーです。

QueryId プロパティ

このプロパティは、再生中にコントロールを一意に識別する、プロパティ名と値のペアから成る条件を返します。 開発者は、各派生コントロール クラスのこのプロパティを上書きし、フレームワークが UI 内のコントロールを見つけるために使用できる IQueryElement オブジェクトを返すようにする必要があります。

CacheProperties メソッド

このメソッドは、記録処理中にテスト フレームワークによって呼び出され、重要なプロパティのスナップショットを保存するよう要素に指示します。 そうすることで、実際の UI コントロールが画面上に存在しなくなった場合でも、プロパティが使用可能な状態で維持されます。

WorksheetElement クラスと WorksheetInformation クラス

WorksheetElement クラスはテスト フレームワーク内の Excel ワークシートを表し、Element 基底クラスを継承します。 ClassNameControlTypeName、および Name の 3 つのプロパティはオーバーライドされ、Excel ワークシート オブジェクトに関する特定の情報が提供されます。

また、ComVisibleAttribute もこのクラスに適用され、COM から参照できるようになります。

WorksheetInformation クラスは Excel ワークシートに関する情報を表します。 SheetName プロパティという 1 つのメンバーしかありませんが、このサンプルの場合はそれで十分です。

CellElement クラスと CellInformation クラス

CellElement クラスは Excel のセルを表し、Element 基底クラスを継承します。 唯一のオーバーライドされるメンバーは QueryId です。これは、セルを識別する RowIndex および ColumnIndex プロパティを使用する IQueryElement を返します。

Utilities クラスと ExcelUtilities クラス

内部 ExcelUtilities クラスには、テクノロジ名などの定数値や、指定されたウィンドウ ハンドルが Excel ワークシートを表すかどうかを判断するメソッドなどが用意されています。

Utilities クラスには、UI に関するさまざまな情報を返すヘルパー メソッドがあります。 一部のメソッドは、USER32.DLLOLEACC.DLL などの外部システム DLL への直接呼び出しを使用して、UI のウィンドウ ハンドルを取得します

関連項目

ComVisibleAttribute
IQueryElement
コード化された UI テストと操作の記録を拡張して Microsoft Excel をサポート