Procedura: utilizzare componenti aggiuntivi per controllare le macro
Aggiornamento: novembre 2007
L'oggetto Macros nel modello di automazione di Visual Studio costituisce una misura di controllo a livello di codice delle macro registrate nell'ambiente di sviluppo integrato (IDE, Integrated Development Environment). Mediante il suo utilizzo è possibile:
Sospendere o riprendere il registratore di macro.
Aggiungere una o più righe di codice alla macro registrata.
Determinare se il registratore di macro sta registrando una macro.
È inoltre possibile utilizzare il metodo ExecuteCommand per inviare direttamente un comando all'IDE, ad esempio un comando di creazione di un nuovo file.
Nota: |
---|
I membri dell'oggetto Macros non sono stati progettati per essere utilizzati all'interno di una macro, ma esclusivamente all'interno di un componente aggiuntivo. |
Nell'esempio di Visual Basic riportato di seguito viene illustrato come fare riferimento ai diversi membri del modello di automazione delle macro e come utilizzarli.
Nota: |
---|
Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni attive. Queste routine sono state sviluppate con le Impostazioni generali per lo sviluppo attive. Per modificare le impostazioni, scegliere Importa/EsportaImpostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio. |
Esempio
Nell'esempio riportato di seguito viene verificato se è attualmente in corso la registrazione di una macro. In caso affermativo, viene aggiunta una riga di codice supplementare alla macro.
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 fosse necessario registrare una macro e aprire un file di testo, il codice della macro sarebbe analogo a quello riportato di seguito:
Public Module RecordingModule
Sub TemporaryMacro()
DTE.ItemOperations.NewFile("General\Text File")
End Sub
End Module
Quando viene eseguito il codice di esempio e viene effettuata la stessa operazione, al codice della macro viene aggiunta una riga supplementare:
Public Module RecordingModule
Sub TemporaryMacro()
DTE.ItemOperations.NewFile("General\Text File")
MsgBox("This line was added by code.")
End Sub
End Module
Vedere anche
Attività
Procedura: modificare le caratteristiche delle finestre
Procedura: creare un componente aggiuntivo
Procedura dettagliata: creazione di una procedura guidata
Concetti
Automazione di operazioni ripetitive tramite macro
Grafico del modello oggetto di automazione
Altre risorse
Creazione e controllo delle finestre di ambiente