Loading
|
@IT > Visual Studio 2008快適活用ガイド 第3回 |
あなたが構築しているシステムでは、利用者が本当に使いやすいユーザー・インターフェイス(以降、UI)を提供できているだろうか。 例えば、ある営業部で担当者ごとの売り上げを入力/集計/グラフ化する業務アプリケーション(以降、業務アプリ)を開発する場合を考えてみよう。その営業部では、これまでは表計算ソフトのMicrosoft Excelを使っていたが、より高度な集計などの先進の機能を搭載した新しい業務アプリを導入しようということになった。その開発依頼を受けて、斬新かつ操作性にも優れた業務アプリを新しく構築した。しかしである。それを使ってみた営業担当者はあまりうれしそうな顔をしない。「使いづらい」「いままでとやり方が変わって面倒」「前の方がもっと速く入力できた」……さんざんないわれようである。開発者から見れば「確実にExcelよりも速く入力できるようになっている」はずなのだが、何が間違っていたのか。 このようなケースでは、実は業務アプリの性能やUIデザインそのものが原因なのではなく、新しいUIを見た利用者が、Excelとの違いに困惑して拒絶反応を示しているだけということが少なくない。つまりこの業務アプリは、確かに素晴らしい機能性を提供しているのかもしれないが、利用者が「ストレスなく簡単に使える」という点で失敗しているわけだ。ソフトウェアを利用するのは開発者ではなく、あくまで利用者である。開発者が良かれかれと思って手間暇かけても、利用者が容易に使えなかったり、ストレスを感じて結局使わなくなったりするのでは意味がない。 例えばこのケースのように、利用者がすでにExcel/Wordなどを使い慣れているのであれば、それ自体を業務アプリのUIとして活用することも検討すべきだ。業務アプリの利用者は、コンピュータの操作を主たる業務とする人たちばかりではない。例えば小売りチェーンの店長は、コンピュータの操作は業務のごく一部で、在庫管理や売り上げ管理で使っているExcelなら使えるが、それ以外となるとさっぱり使えない、ということもある。 またUIだけでなく、高度なOfficeの機能を活用できれば、利用者の求める業務アプリを短時間で効率的に開発できる場合もあるだろう。マイクロソフトは、こうしたOfficeベースのカスタム・アプリケーションを開発するための環境として、「Microsoft Visual Studio 2008 Tools for Office」略して「VSTO」を提供している。
VSTOは「the Microsoft 2007 Office system(以降、Office 2007)やthe Microsoft Office System 2003(以降、Office 2003)を活用したクライアント・ソリューション」(以降、VSTOソリューション)、および「Office 2007/2003用のアドイン」(以降、VSTOアドイン)を構築するためのテクノロジで、Visual Studio 2008(以降、VS 2008)のProfessional Edition以上に搭載されている。 VSTOソリューション(別名「ドキュメント・レベルのソリューション」)とは、(冒頭の営業部の例で紹介したような)業務アプリのフロントエンドUIとしてExcelワークブックやWordドキュメントを活用するための技術である。これにより業務アプリのUIを、Officeユーザーにとって親しみやすく、自由度の高いものにできる。
もう一方のVSTOアドイン(別名「アプリケーション・レベルのアドイン」)とは、Word、Excel、PowerPointといったOfficeアプリケーション自体を拡張して、独自の機能を追加(=アドイン)する技術だ。これによりOfficeアプリケーションの利便性や利用者の生産性を高められる。 VSTOアドインはOffice 2007/2003に対応しており、Office 2003以降で搭載された「作業ウィンドウ」や、Office 2007の新機能である「リボン」も実装できる。なお、作業ウィンドウとは、ExcelやWordアプリケーションの端(基本的には右端)にドッキングして表示される小さなウィンドウのこと。リボンとは、ExcelやWordアプリケーションなどの上部に表示される一種のツールバーのことである。
以下では、VSTOソリューションとVSTOアドイン、それぞれの簡単な実装例について見ていくことにしよう。紙面の都合でコードの説明は割愛。以下では実装方法を詳しく学ぶというよりも、VSTO開発の雰囲気を感じ取っていただきたい。
まずはVSTOソリューションを構築する方法について紹介する。 最初にプロジェクトの新規作成を行う。これには、VS 2008のIDEのメニュー・バーから[ファイル]−[新規作成]−[プロジェクト]を実行し、表示される[新しいプロジェクト]ダイアログで[Visual C#](もしくは[Visual Basic])−[Office]というカテゴリを選択し、適切なプロジェクト・テンプレートを選択する。VSTOソリューションを構築できるテンプレートは主に次の4つだ*1。
プロジェクト・テンプレートを選んでプロジェクトを作成すると、VS 2008の[ソリューション エクスプローラ]内に、「.xls/.xlsx/.xlsm/.xlsb」などの拡張子のExcelワークブック、もしくは「.doc/.docx/.docm」などの拡張子のWordドキュメントが作成される*2。
ここでは「Excel 2007 ブック」テンプレート(.xlsxファイル)を選択して新規プロジェクトを作成してみよう。 プロジェクトを新規作成すると、Excelファイル(ExcelWorkbook1.xlsx)が生成される。これを開くと、VS 2008の編集領域にExcelシート・デザイナが表示される。Excelシート・デザイナでは、通常の開発と同じように[ツールボックス]ウィンドウからコントロールやコンポーネントをドラッグ&ドロップしてExcelシート上に配置できる。 ●コントロール/コンポーネントの追加 それでは[ツールボックス]ウィンドウの[Excel コンポーネント]タブ内の「ListObject」コントロールを、Excelシート・デザイナ上に配置してみよう。 ListObjectコントロールはデータベースなどと連携してデータの一覧をExcelシート上に表示するためのもの。そこでここでは、ListObjectコントロールと、「NorthWind」というデータベース内にある「Products by Category」ビューを連携させてみよう。これを行っているのが次の画面だ。
以上でデータベースとの連携は完了だ。これを実行すると冒頭で示した画面「ExcelワークブックによるVSTOソリューション」と同じ動作になる。 ●操作ウィンドウについて VSTOソリューションでは、「操作ウィンドウ」が利用できる。操作ウィンドウ(ActionsPane、正式名称「[ドキュメント アクション]作業ウィンドウ」)は、後述する「作業ウィンドウ」の一種で、Officeドキュメントに対して独自の操作を実行するために用意されているウィンドウである。操作ウィンドウの実装方法は、後述の作業ウィンドウの実装とあまり変わらないので、説明を割愛する。なおVSTOソリューションでは、操作ウィンドウ(=[ドキュメント アクション]作業ウィンドウ)以外の独自の作業ウィンドウは実装できないので注意してほしい。 ●リボンについて VSTOソリューションでは、独自の「リボン」も利用できる。実装方法はVSTOアドインの場合と同じなので、後述の説明を参考にしてほしい。
次にVSTOアドイン開発の方法について紹介する。 最初にVSTOアドインのプロジェクトを作成する。VS 2008で利用できるプロジェクト・テンプレートは以下のとおり。
このうち、本稿では「Excel 2007 アドイン」テンプレートを選択した。 ●独自の作業ウィンドウの作成 プロジェクトが新規作成されたら、[ソリューション エクスプローラ]のプロジェクト項目を右クリックして、表示されるコンテキスト・メニューから[追加]−[ユーザー コントロール]を選択し、ユーザー・コントロールのソース・ファイル(UserControl1.cs)を追加する。これが作業ウィンドウのUIとなる。 次に「Excel」アドイン項目の配下に用意されている「ThisAddIn.cs」ファイルを編集する。ここでは、Excelアドインの起動時に、先ほど追加したユーザー・コントロールと、Excelアプリケーションの作業ウィンドウを結び付けて、表示する処理を記述する。次の画面はそのコーディング例である。
以上で独自の作業ウィンドウが表示されるようになったので、後はユーザー・コントロール(UserControl1.csファイル)に機能を追加していくだけだ。ここではカレンダーを配置してみよう。
そして、次の画面のようにユーザー・コントロール(UserControl1.csファイル)のコードを編集して、このカレンダーで日付が選択されたときに、Excelシート内の現在選択されているセルにその日付を入力する処理を実装する。
以上で完成だ。これを実行すると冒頭で示した「ExcelアプリケーションのVSTOアドイン」という画面の「独自の[カレンダー]作業ウィンドウ」と同じ動作を行う。 ●独自のリボンの作成 続いて、独自のリボンを作成する。なおリボンが利用できるのは、次の4つのアプリケーションのみである。
ここでは、先ほど実装した作業ウィンドウの表示/非表示を切り替えるトグル・ボタンを持つリボンを作成してみよう。 まず、[ソリューション エクスプローラ]のプロジェクト項目を右クリックして、表示されるコンテキスト・メニューから[追加]−[新しい項目]を選択。[新しい項目の追加]ダイアログで「Office」カテゴリにある「リボン (ビジュアル デザイナ)」テンプレートを選択して、リボンのソース・ファイル(Ribbon1.cs)を追加する。 これにより、VS 2008の編集領域にリボン・デザイナが表示される。ここでも、[ツールボックス]ウィンドウからのドラッグ&ドロップで、コントロールやコンポーネントをリボン・フォーム上に配置できる。次の画面は、オンとオフを表現する「ToggleButton」コントロールを配置して、絵やテキストなどのプロパティ設定を行っているところだ。
次に、リボン(Ribbon1.csファイル)のコードを編集する。ここでは、次の画面のように、ToggleButtonコントロールがクリックされたときに、[カレンダー]作業ウィンドウの表示/非表示を切り替える処理を記述する。
以上でリボンも完成した。これを実行すると冒頭の画面「ExcelアプリケーションのVSTOアドイン」の「独自のリボン」と同じ動作を行う。 ■ 以上、VSTOの機能と実装例を概観してきた。紙面の都合ですべてを紹介しきれなかったが、VSTOにはもっと多くの機能が搭載されている。例えば、企業の情報共有ポータル・サイトを構築できるOffice SharePoint Server 2007のカスタム機能の実装に対応している。この機能をうまく活用すれば、企業内で部署を超えた情報共有が実現でき、業務のコラボレーションが向上するだろう。また、イントラネットやインターネット経由でセキュリティを保ったままプログラムを配布/更新するテクノロジであるClickOnceによるソリューションやアドインの配布にも対応している。VS 2008よりも前のVSTOではプログラムの配布の大変さが問題となることがあったが、この問題は解消されている。 VSTOの良さは何といっても.NET Frameworkのパワーを存分に生かせることだ。強力な.NETのクラス・ライブラリはもちろん、これまでの.NET開発で築き上げてきた資産を.DLLファイル経由などで利用することも可能だ。.NET開発に慣れた開発者であれば、そのスキルを生かせるのも魅力の1つである。これらは、従来のVBA(Visual Basic for Applications)マクロやOffice COM(Component Object Model)アドインでは得られない、VSTOならではのメリットである。業務アプリにおけるVSTO活用は、.NET開発者であれば現実的かつ有力な選択肢の1つとなり得るだろう。
提供:マイクロソフト株式会社 企画:アイティメディア 営業局 制作:デジタル・アドバンテージ 掲載内容有効期限:2008年5月31日 |
|