HOW TO:使用增益集控制巨集

Visual Studio Automation 模型中的 Macros 物件,可以讓您對於在整合式開發環境 (IDE) 中錄製的巨集具有相當的程式控制能力。 使用此物件,您可以:

  • 暫停或繼續巨集錄製器。

  • 在錄製的巨集中加入一或多行程式碼。

  • 決定巨集錄製器目前是否正在錄製巨集。

您也可以使用 ExecuteCommand 方法,直接向 IDE 發出命令,例如建立新檔案。

注意事項注意事項

Macros 物件的成員並不是設計為要在巨集中使用,只能在增益集 (Add-In) 中使用。

在下列 Visual Basic 範例中,會示範如何參考及使用巨集 Automation 模型的各個成員。

注意事項注意事項

根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。 使用 [一般開發設定] 開發了這些程序。 若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。 如需詳細資訊,請參閱 使用設定

範例

在下列範例中,會檢查巨集目前是否正在錄製中。 如果正在錄製中,會再加入另一行程式碼。

Public Sub OnConnection(ByVal application As Object, _
  ByVal connectMode As ext_ConnectMode, ByVal addInInst _
  As Object, ByRef custom As Array) Implements _
  IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    macroTest(_applicationObject)
End Sub

Public Sub macroTest(ByVal dte As DTE2)
    Try
        Dim objMac As Macros = dte.Macros
        ' Determine if a macro is recording. If it is, 
        ' add a line of code to it and then let it resume 
        ' recording.
        If objMac.IsRecording = True Then
            objMac.EmitMacroCode _
              ("MsgBox(""This was added by code."")")
        Else
            MsgBox("Macro is not recording.")
        End If
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    macroTest(_applicationObject);
}

public void macroTest(DTE2 dte)
{
    try
    {
        Macros objMac = dte.Macros;
        // Determine if a macro is recording. If it is, 
        // add a line of code to it and then let it resume 
        // recording.
        if (objMac.IsRecording == true)
        {
            objMac.EmitMacroCode(
              "MsgBox(\"This was added by code.\")");
        }
        else
        {
            System.Windows.Forms.MessageBox.Show(
              "Macro is not recording.");
        }
    }
    catch (Exception ex)
    {
        System.Windows.Forms.MessageBox.Show(ex.Message);
    }
}

如果您是要錄製巨集並開啟文字檔,則巨集程式碼應該像這樣:

Public Module RecordingModule
    Sub TemporaryMacro()
        DTE.ItemOperations.NewFile("General\Text File")
    End Sub
End Module

當您執行範例程式碼及相同作業時,巨集程式碼中會多出現 (加入) 一行:

Public Module RecordingModule
    Sub TemporaryMacro()
        DTE.ItemOperations.NewFile("General\Text File")
        MsgBox("This line was added by code.")
    End Sub
End Module

請參閱

工作

HOW TO:變更視窗特性

HOW TO:建立增益集

逐步解說:建立精靈

概念

使用巨集自動執行重複的動作

Automation 物件模型圖表

其他資源

建立和控制環境視窗

建立增益集和精靈

Automation 與擴充性參考