方法 : 機能拡張を使用して新しい Windows アプリケーションを作成する
新しいプロジェクトを作成して現在のソリューションに追加するには、汎用機能拡張の DTE.Solution オブジェクトの AddFromTemplate メソッドを使用します。このタスクは、マクロ統合開発環境 (IDE: Integrated Development Environment) にアクセスしてマクロ プロジェクトを作成する方法を知っていることを前提としています。詳細については、「Automating Repetitive Actions by Using Macros」を参照してください。
次の手順では、Visual Basic プロジェクトを作成します。Visual C# プロジェクトを作成するには、手順 4. で "CSharp" という文字列を使用します。
[!メモ]
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。
ソリューションに新しいプロジェクトを追加するには
新しいマクロ モジュールを作成し、NewProject という名前を付けます。
このモジュールに、NewWindowsProject という新しいマクロを追加します。
Sub NewWindowsProject() ' Add code here to create new project. End Sub
このマクロにより、新しい Visual Basic Windows アプリケーションが追加されます。
コンソール プロジェクトに必要なテンプレートを選択します。次の表に示すように、いくつかの異なる種類のプロジェクトを作成できます。Windows アプリケーションの場合は、WindowsApplication.zip テンプレートを使用します。
テンプレート名
プロジェクトの種類
ClassLibrary.zip
クラス ライブラリ
ConsoleApplication.zip
[コンソール アプリケーション]
EmptyProject.zip
[空のプロジェクト]
WebApplication.zip
Web アプリケーション
WebControl.zip
Web コントロール
WebService.zip
Web サービス
WindowsApplication.zip
[Windows アプリケーション]
WindowsControl.zip
Windows コントロール
WindowsService.zip
Windows サービス
テンプレートを使用するための構文は GetProjectTemplate("WindowsApplication.zip", "VisualBasic") です。アプリケーション固有のテンプレートにアクセスすることもできます。たとえば、GetProjectTemplate("PocketPC2003-ClassLibrary.zip", "CSharp") は、Pocket PC 2003 プロジェクト用の Visual C# クラス ライブラリのテンプレートを返します。すべての言語のプロジェクト テンプレートは、<drive>:\Program Files\Microsoft Visual Studio 10\Common7\IDE\ProjectTemplates\Language に格納されています。
また、独自のカスタム プロジェクト テンプレートおよびカスタム プロジェクト項目テンプレートも作成できます。テンプレートを格納するディレクトリを指定するには、[ツール] メニューの [オプション] をクリックします。[オプション] ダイアログ ボックスの左ペインで、[プロジェクトおよびソリューション] をクリックします。[Visual Studio ユーザー プロジェクト テンプレートの場所] ボックスおよび [Visual Studio ユーザー項目テンプレートの場所] ボックスに、テンプレートのパスを入力します。または、既定の場所を使用できます。
カスタム テンプレートには、次の場所で定義されたファイル名と競合しない一意のファイル名が必要です。
- <drive>:\Program Files\Microsoft Visual Studio 10\Common7\IDE\ProjectTemplates\Language
および
- <drive>:\Program Files\Microsoft Visual Studio 10\Common7\IDE\ItemTemplates\Language
8dot3 形式ではなく長いファイル名を使用するようにします。詳細については、「Creating Project and Item Templates」を参照してください。
GetProjectTemplate メソッドを使用し、プロジェクト テンプレートを指定します。テンプレートのパスは言語によって異なるため、Visual Basic テンプレートを取得するには、次に示すように、"Visual Basic" という文字列を使用します。Visual C# のテンプレートの場合は、"CSharp" という文字列を使用します。
Dim vbTemplatePath As String Dim vbProjectPath As String vbProjectPath = "C:\UserFiles\MyFiles\MyProject" vbTemplatePath = soln.GetProjectTemplate( _ "WindowsApplication.zip", "VisualBasic")
AddFromTemplate メソッドを呼び出します。
' Create a new solution. ' Make sure the filepath below exists ' on your computer. soln.Create("C:\UserFiles\MyFiles\MyProject", "MySolution") ' Create a new VB console project using the template ' obtained above. soln.AddFromTemplate(vbTemplatePath, vbProjectPath, _ "VB Console Project", False)
完成したマクロは次のようになります。
Sub NewWindowsProject () 'This function creates a solution and adds a Visual Basic Console 'project to it. Dim soln As Solution2 = CType(DTE.Solution, Solution2) 'Dim proj As Project Dim msg As String Dim vbTemplatePath As String Dim vbProjectPath As String vbProjectPath = "C:\UserFiles\MyFiles\MyProject" vbTemplatePath = soln.GetProjectTemplate _ ("WindowsApplication.zip", "VisualBasic") ' Create a new solution. ' Make sure the filepath below exists ' on your computer. soln.Create("C:\UserFiles\MyFiles\MyProject", "MySolution") ' Create a new VB console project using the template ' obtained above. soln.AddFromTemplate(vbTemplatePath, vbProjectPath, _ "VB Windows Project", False) msg = "Created new solution: " & soln.FullName & vbCrLf msg = msg & "Created new project: " & soln.Projects.Kind() MsgBox(msg) End Sub
マクロを保存して、マクロ IDE を閉じ、マクロ エクスプローラーからマクロを実行します。
ソリューション エクスプローラーで、"MySolution" という新しいソリューションと "VB Windows Project" という Windows アプリケーションを表示します。