方法 : Visual Basic または C# のコード エディターでマクロを使用してテキストを追加する

機能拡張オブジェクト モデルを使用して、Visual Basic または Visual C# のコード エディターにコードを追加できます。 この機能は、新しいプロシージャや新しい標準コメント ブロックを追加する場合などに使用できます。 このタスクは、マクロ開発環境にアクセスしてマクロ プロジェクトを作成する方法を知っていることを前提としています。 詳細については、「[マクロ プロジェクトの追加] ダイアログ ボックス」を参照してください。 次のサンプル マクロを実装するには、Visual Basic プロジェクトを開いておく必要があります。

次の手順では、Visual Basic コード エディターにテキストを追加します。 コードを Visual C# コード エディターに追加するには、手順 5. で prjKindCSharpProject 列挙値を使用します。

注意

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

アクティブな Visual Basic コード エディターの先頭にテキストを追加するには

  1. EditorMacros という名前の新しいマクロ モジュールを作成します。

  2. マクロ モジュールに次のコードを追加して、新しいマクロ AddSomeText を作成します。

    Public Sub AddSomeText()
       ' Will add code here to add text.
    End Sub
    
  3. 開いているコード エディターを参照する変数を宣言して初期化します。

    Dim doc As Document = DTE.ActiveDocument
    

    詳細については、Document オブジェクトおよび ActiveDocument プロパティに関するトピックを参照してください。

  4. Document オブジェクトには、TextDocument オブジェクトが含まれています。次に示すように、Object メソッドを使用して、このオブジェクトにアクセスできます。

    Dim textDoc As TextDocument = _
       CType(doc.Object("TextDocument"), TextDocument)
    
  5. コードの追加先が Visual Basic コード エディターであることを確認するために、ウィンドウを含むプロジェクトの Kind プロパティをテストできます。

    If doc.ProjectItem.ContainingProject.Kind = _
    VSLangProj.PrjKind.prjKindVBProject Then
       ' Add code here to insert text.
    End If
    
  6. TextDocument オブジェクトを使用して、エディターの先頭に編集ポイントを作成します。 次に、Selection プロパティの Insert メソッドを使用して、エディターにテキストを追加します。 詳細については、CreateEditPoint メソッドおよび Selection プロパティに関するトピックを参照してください。

    textDoc.StartPoint.CreateEditPoint()
    textDoc.Selection.Insert("' A comment")
    

    完成したマクロは次のようになります。

    Public Sub AddSomeText()
       Dim doc As Document = DTE.ActiveDocument
       Dim textDoc As TextDocument = _
          CType(doc.Object("TextDocument"), TextDocument)
       If doc.ProjectItem.ContainingProject.Kind = _
          VSLangProj.PrjKind.prjKindVBProject Then
          textDoc.StartPoint.CreateEditPoint()
          textDoc.Selection.Insert("' A comment")
       End If
    End Sub
    
  7. マクロを保存して、マクロ IDE を閉じ、マクロ エクスプローラーからマクロを実行します。

参照

参照

ActiveDocument

Document

TextDocument