チュートリアル : ウィザードの作成

更新 : 2007 年 11 月

アドイン ウィザードなどのウィザードは、ユーザーに一連の操作を実行させ、複雑なタスク、繰り返し行うタスク、または難しいタスクを完了できるようにするプログラムです。たとえば、Windows では、ウィザードを使用して、ネットワーク リソースやプリンタなどに接続できます。

Visual Studio のウィザードでは、通常、ユーザーの入力を伴うような一連の質問を行い、入力結果を使用してコードを生成します。ただし、ウィザードには、必ずしもユーザー インターフェイス (UI: User Interface) が表示されるとは限りません。ウィザードは、背後 (ユーザーからは見えない部分) でコードを生成するようにプログラミングできます。

ウィザードには、次の 3 種類があります。

  • 新しいプロジェクト ウィザード - その名前のとおり、特定の種類のプロジェクト用の新しいコードを作成する場合に使用します。このコードにより、ユーザーがどこから独自のコードを追加すればいいのかを示す開始点が提供されます。この種類のウィザードが最も一般的に使用されます。

  • 新しい項目の追加ウィザード - Web フォーム、テキスト ファイル、HTML ページ、XML ページなどの新しい項目をプロジェクトに追加する場合に使用します。

  • カスタム ウィザード - ダイアログ ボックスから呼び出されません。代わりに、アドイン、マクロ、または他の種類のコードから直接呼び出されます。UI は表示される場合もあれば、表示されない場合もあります。どちらの場合にも、コードが生成されます。この種のウィザードは、最も使用頻度の低いウィザードです。

ウィザードの種類に関係なく、すべてのウィザードには共通する特徴があります。

  • ウィザードは、IDTWizard インターフェイスを実装し、関連付けられた Execute メソッドを含む .NET オブジェクトです。このメソッドには、ウィザードで実行されるコードが含まれています。

  • すべてのウィザードは、.vsz ファイルを使用して Visual Studio に表示されます。

  • すべてのウィザードは、コードを生成するか、何か他のタスクを実行します。

作成するウィザードの要素の外観をカスタマイズできます。ほとんどの場合、ウィザードは、1 つ以上のウィンドウ、つまり、ページで構成されています。ページには、説明的なイメージ (ページの上部や左側など)、ラベルの説明、および指示があり、[次へ] や [戻る] などのナビゲーション コントロールを配置できる領域があります。

Visual C++ のウィザードを作成するプロセスは、標準の Visual Studio ウィザードを作成するプロセスとは少し異なります。Visual C++ を対象としたウィザードの作成方法の詳細については、「ウィザードのデザイン」および「カスタム ウィザードの作成」を参照してください。

7k3w6w59.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

基本的なウィザードの例

Visual Studio アドイン ウィザード

この画像は、アドイン ウィザードのパネル、つまりユーザーが一連の手順を実行してアドインを作成できる新しいプロジェクトという種類のウィザードを示しています。ウィザードの外観はカスタマイズできますが、アドイン ウィザードは、標準的な種類のウィザードのスタイルを示す例として適しています。完成したウィザードは、[新しいプロジェクト] ダイアログ ボックスまたは [新しい項目の追加] ダイアログ ボックスで使用できるテンプレートになります。

基本的なウィザードを作成し、必要に応じてカスタム アイコンを追加する方法を次に示します。

Visual Basic および Visual C# で基本的なウィザードを作成するには

  1. MyNewWizard という名前の新しいクラス ライブラリ プロジェクトを作成します。

  2. EnvDTE および EnvDTE80 への参照をプロジェクトに追加します。

    これを行うには、プロジェクトを右クリックし、[参照の追加] をクリックします。[参照の追加] ダイアログの [.NET] タブで、[EnvDTE] および [EnvDTE80] をクリックし、[OK] をクリックします。

  3. クラス モジュールでは、EnvDTE および EnvDTE80 への参照を使用し、IDTWizard インターフェイスを実装します。この Visual C# の例では、System.Windows.Forms への参照も追加する必要があります。

    Imports EnvDTEImports EnvDTE80
    Public Class Class1
        Implements IDTWizard
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using EnvDTE;using EnvDTE80;using Windows.System.Forms;
    
    namespace MyNewWizard
    {
        public class Class1 : IDTWizard
        {
        }
    }
    

    Implements ステートメントを Visual Basic に追加すると、カーソルを行末に配置して Enter キーを押したときに、Execute メソッドのプロシージャが自動的に作成されます。ただし、Visual C# の場合、手動で Execute プロシージャを追加する必要があります。

    public class Class1 : IDTWizard
        {
        public void Execute(object Application,         int hwndOwner, ref object[] contextParams,         ref object[] customParams,         ref EnvDTE.wizardResult retval)
    
  4. ウィザードで実行するコードを Execute プロシージャに追加します。この例では、単に単純なメッセージ ボックスを追加します。

    次のようなコードになります。

    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Class1
        Implements IDTWizard
    
        Public Sub Execute(ByVal Application As Object, ByVal _
        hwndOwner As Integer, ByRef ContextParams() As Object, ByRef _
        CustomParams() As Object, ByRef retval As EnvDTE.wizardResult) _
        Implements EnvDTE.IDTWizard.Execute
            MsgBox("The wizard is now running.")
        End Sub
    End Class 
    
    using System.Text;
    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    
    namespace MyNewWizardCS
    {
        public class Class1 : IDTWizard
        {
    
        public void Execute(object Application, 
            int hwndOwner, ref object[] contextParams, 
            ref object[] customParams, 
            ref EnvDTE.wizardResult retval)
        {
            MessageBox.Show("The wizard is now running.");
        }
    }
    
    }
    

    Execute プロシージャは、ウィザードの起動時に呼び出されます。

  5. Visual Basic では、ソリューション エクスプローラでプロジェクトを右クリックし、[プロパティ] をクリックして [プロジェクトのプロパティ] ページを開きます。[コンパイル] タブをクリックし、ページ下部にある [COM 相互運用機能の登録] チェック ボックスをオンにします。

    Visual C# の場合は、この手順を実行する必要はありません。

  6. [ビルド] メニューの [ソリューションのビルド] をクリックすることにより、プロジェクトをビルドしてクラス ライブラリを作成します。

  7. ウィザードの .vsz テキスト ファイルを MyNewWizard.vsz という名前で作成します。

    これを行うには、[ファイル] メニューの [新規作成] をポイントし、[ファイル] をクリックします。

    .vsz ファイルは、Visual Studio がウィザードを認識して、[新しいプロジェクト] ダイアログ ボックスまたは [新しい項目の追加] ダイアログ ボックスにそのウィザードを表示できるようにするテキスト ファイルです。Wizard パラメータは、プロジェクトの progID (Project.Classname) または GUID に設定する必要があります。詳細については、「ウィザードを起動する .vsz ファイルの構成」を参照してください。

    7k3w6w59.alert_note(ja-jp,VS.90).gifメモ :

    オプションとして、ウィザード用に VSDir ファイルを作成することもできます。このファイルには、[新しいプロジェクトの追加] ダイアログ ボックスまたは [新しいファイル] ダイアログ ボックスでウィザードの説明として表示される情報が含まれています。また、このファイルを使用すると、アイコンを指定し、その位置を一覧内で変更することもできます。詳細については、「.vsdir ファイルを使用した [項目の追加] ダイアログ ボックスおよび [新しいプロジェクト] ダイアログ ボックスへのウィザードの追加」を参照してください。

  8. MyNewWizard.vsz に以下の行を追加します。

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  9. 新しい .vsz ファイルを、ウィザードを表示するディレクトリに保存します。

    この例では、ウィザードが Visual Basic プロジェクトの [新しい項目の追加] ダイアログ ボックスに表示されるようにします。そのため、.vsz ファイルを、<drive>:\Program Files\Microsoft Visual Studio 8\VB\VBProjectItems というディレクトリに保存します。

  10. Visual Studio を終了し、再起動します。

    これにより、Visual Studio では新しい .vsz ファイルが読み取られます。

  11. Windows アプリケーション プロジェクトなど、新しい Visual Basic プロジェクトを作成します。

  12. プロジェクトを右クリックし、[項目の追加] をポイントして、[新しい項目] をクリックします。

    [新しい項目の追加] ダイアログ ボックスに新しいウィザード (MyNewWizard) が表示されます。

  13. ウィザードをクリックし、[追加] ボタンをクリックします。

    "ウィザードは現在実行中です" というメッセージが表示されます。

新しいウィザードのカスタム アイコンを表示するには

  • 基本のファイル名が .dll ファイルと同じで .ico 拡張子の付いたアイコン ファイルを、ウィザード ファイルと同じディレクトリに配置します。

    たとえば、ウィザード名が MyNewWizard.dll の場合、.ico ファイルの名前は MyNewWizard.ico となります。

    または

  • VSDir ファイルを作成した場合は、アイコン (.ico) ファイルへのパスを指定します。

参照

処理手順

方法 : アドインを作成する

概念

オートメーション オブジェクト モデルの階層図

.vsdir ファイルを使用した [項目の追加] ダイアログ ボックスおよび [新しいプロジェクト] ダイアログ ボックスへのウィザードの追加

ウィザードを起動する .vsz ファイルの構成

参照

IDTWizard

Visual Studio のコマンドおよびスイッチ

その他の技術情報

アドインおよびウィザードの作成