MS-ExcelのVBAには,ワークブックやワークシートなどExcelの構成要素に1対1対応するオブジェクトが含まれ,これらのモジュールにイベントハンドラを追加することでセルの変更といったユーザーの操作に応じた動作を規定することができます。クラスやインスタンスといった概念を知らなくても,手軽にアプリケーションを作ることができる優れた仕組みです。ところが,本格的な業務アプリケーションを同じ考え方で構築しようとすると,逆にこの仕組みが足枷となってしまうことがあるのです。

Excelをプラットフォームとする業務アプリケーションを構築するのは,Excelの便利な機能やユーザーインターフェイスをそのまま使うためですが,だからといってオブジェクトの管理までExcel任せにしてよいというわけではありません。他のプラットフォームで開発するのと同じレベルでアプリケーションの構成要素を管理することが要求されます。そのためには,Excelが標準で提供するオブジェクト管理の仕組みを盲目的に受け入れるのではなく,アプリケーションにとって望ましい管理スキームにいかにしてあてはめていくかを考える必要があります。

このトピックは,Excelが標準で提供するオブジェクト(Excelオブジェクト)とは何かをクラスやオブジェクト指向の観点から見直すことから始めます(1. Excelオブジェクト再考)。これを踏まえて,業務アプリケーションがExcelオブジェクトを効率よく管理するためのスキームを考えます(2. Excelオブジェクトをどう管理するか(上))。結論から言えば,既存のExcelオブジェクトの構造と望ましいスキームは必ずしも一致しないというのがここでの主張です。そこで,Excelオブジェクトを望ましいスキームに当てはめるための方法について考察します(3. Excelオブジェクトをどう管理するか(下))。さらに,同じ考え方をユーザーフォームや,ワークシートに配置されたコントロールに適用し(4. フォームとコントロールの管理),最後により複雑な応用例として,VBAではサポートされていないコントロール配列をユーザー定義クラスで実現できることを紹介します(5. コントロール配列(上)6. コントロール配列(下))。
web拍手 by FC2
inserted by FC2 system