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

このクラスは UITechnologyManager クラスを拡張します。また、Microsoft Excel 拡張機能用のコア サービスを提供する役割があります。 基底クラスには多くのメソッドがありますが、このサンプルではそのサブセットのみを使用します。

一部のメソッドは単にプロパティ値を返します。 多くのメソッドは、コード化された UI テスト エンジンに組み込まれている既定のアルゴリズムを開発者が上書きできるように用意されています。 これらのメソッドは、NotSupportedException をスローするか、null を返して、既定のアルゴリズムを使用するようフレームワークに指示します。

基になるテクノロジの複雑さに応じて、テクノロジ マネージャー コードの開発には数週間から数か月かかる場合があります。 Excel を使用すると、非常に広範なテクノロジ マネージャーを作成することが可能になります。 この例では、意図的に Excel のワークシートとセルだけに限定し、使用する書式設定も制限しています。

可能であれば、テクノロジ マネージャー コードは Communicator クラスによって開かれた .NET リモート処理チャネルを使用し、Excel プロセスで実行されているアドインから情報を抽出します。

COM の参照範囲

このクラスと、UITechnologyElement クラスを拡張する各要素クラスにはいずれも値が trueComVisibleAttribute があるため、COM からクラスを参照できます。

TechnologyName プロパティ

UITechnologyManager.TechnologyName プロパティのこのオーバーライドでは、拡張機能の他のコンポーネントについて基礎となるテクノロジを識別できる一意でわかりやすい名前を指定する必要があります。 この拡張機能では、値は "Excel" です。

GetControlSupportLevel メソッド

UITechnologyManager.GetControlSupportLevel メソッドのこのオーバーライドは、指定されたハンドルで表されているコントロールにテクノロジ マネージャーが提供できるサポートのレベルを示す数値を返します。 戻り値が大きくなるほど、コントロールに対するテクノロジ マネージャーのサポート レベルは高くなります。 この場合、メソッドはコントロールが含まれているウィンドウを確認し、それが Excel ワークシートであれば、最も高い値を返します。それ以外の場合はゼロが返され、サポートされないことを表します。

要素を取得するメソッド

テクノロジに固有の要素を取得するために、コード化された UI テスト フレームワークによって使用される、いくつかの重要なメソッドがあります。要素を取得するには、ハンドル、画面上のポイント、または別のテクノロジの要素を指定します。 これらのメソッドのコードは、自己記述的です。 基本メソッドは次のとおりです。

ParseQueryId メソッド

コード化された UI テストの作成時に、ユーザーはテストの一部またはすべてのコントロールのプロパティ値を指定できます。 これらのプロパティ値は、テスト フレームワークによって、検索プロパティ (テスト中に特定の UI コントロールを見つけるために使用される、名前と値の組) を作成するために使用されます。 すべての検索プロパティは、各コントロールを含め、テクノロジ内の各要素の UITechnologyElement.QueryId プロパティの値を表しています。 テストの実行中にコントロールを数回検索しなければならない場合があるため、このメソッドはテクノロジ マネージャーによる特定のコントロールの検索プロパティの解析を最適化できるようにします。 またこのメソッドは、フレームワークがそのコントロールを後で検索するときに使用できるクッキーも返します。 メソッドのこの実装では、AndCondition.Match メソッドを使用して検索プロパティを解析します。

MatchElement メソッド

テクノロジ マネージャーでコントロール検索を実行するには、UITechnologyManager.Search メソッドを実装して、一致する候補の配列を返すか、NotSupportedException をスローすることができます。この場合、フレームワークが独自の検索アルゴリズムを使用していることがわかります。 いずれの方法でも、この実装が AndCondition.Match メソッドを使用する場所に MatchElement メソッドを実装する必要があります。

これらのメソッドは、指定された要素の親、子、兄弟などを UI 階層から取得します。 コードは単純で、わかりやすいコメントが付けられています。

GetExcelElement 内部メソッド

この内部メソッドは、ウィンドウ ハンドルと Excel 要素についての情報を受け取り、要求された Excel 要素を返します。

関連項目

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