How to: Use Adicionar-ins para controle Macros
O Macros de objeto na Visual Studio o modelo de automação fornece uma medida de controle programático sobre macros que está sendo gravada no ambiente de desenvolvimento integrado (IDE). Usando ele, você pode:
Pausar ou reiniciar o gravador de macro.
Adicione uma ou mais linhas de código para a macro que está sendo gravada.
Determine se o gravador de macro está gravando uma macro.
Você também pode usar o ExecuteCommand método diretamente emitir um comando para o IDE, tal como criar um novo arquivo.
Observação |
---|
O Macros de objetos membros não são projetados para ser usado dentro de uma macro; eles só devem ser usados dentro de um suplemento. |
O Visual Basic exemplo a seguir demonstra como referência e usar os vários membros do modelo de automação de Macros.
Observação |
---|
As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritos na Ajuda, dependendo das configurações ativas ou configurações de edição. Esses procedimentos foram desenvolvidos com o General Development Settings ativo. Para alterar as configurações, escolha importação e Exportar configurações sobre o Ferramentas menu. Para obter mais informações, consulte Trabalhando com configurações. |
Exemplo
O exemplo a seguir verifica se uma macro está sendo gravada no momento. Se for, ele adiciona uma linha extra de código para ele.
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);
}
}
Se você gravar uma macro e abrir um arquivo de texto, este é o código de macro como seria:
Public Module RecordingModule
Sub TemporaryMacro()
DTE.ItemOperations.NewFile("General\Text File")
End Sub
End Module
Quando você executa o código de exemplo e fazer a mesma coisa, uma linha extra é emitida (adicionado) para o código de macro:
Public Module RecordingModule
Sub TemporaryMacro()
DTE.ItemOperations.NewFile("General\Text File")
MsgBox("This line was added by code.")
End Sub
End Module
Consulte também
Tarefas
How to: Alterar Características da janela
Walkthrough: Criando um assistente
Conceitos
Automatizar ações repetitivas usando Macros
Outros recursos
Criar e controlar o ambiente Windows