Procedura dettagliata: creazione di un nuovo progetto Office utilizzando l'automazione del progetto di Visual Studio
In questa procedura dettagliata viene illustrato come creare una macro in cui viene utilizzato il modello a oggetti di Visual Studio per automatizzare la creazione di un progetto di Office. Nel progetto vengono impiegate le impostazioni personalizzate della Creazione guidata progetto Visual Studio Tools per Office invece dei valori predefiniti del progetto.
Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento per Excel 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.
Nel codice viene creato un nuovo progetto con impostazioni personalizzate per la procedura guidata, in modo che il progetto automatizzato venga creato utilizzando una cartella di lavoro di Microsoft Office Excel esistente anziché una nuova.
Per ulteriori informazioni sulle macro, vedere Automazione di operazioni ripetitive tramite macro.
In questa procedura dettagliata vengono illustrate le attività seguenti:
Creazione di una nuova macro di Visual Studio.
Creazione di un file di modello temporaneo (con estensione vstemplate) con impostazioni personalizzate.
Impostazione di parametri per una procedura guidata e avvio della procedura guidata.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
-
Una versione di Visual Studio 2010 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.100\).md).
- Excel 2010.
Creazione della cartella di lavoro di Excel
È necessario creare una cartella di lavoro di Excel che verrà utilizzata come cartella di lavoro esistente nel nuovo progetto.
Per creare la cartella di lavoro di Excel
Creare una cartella denominata CreateNewFile nell'unità C del computer.
All'interno di CreateNewFile, creare una sottocartella denominata Test: C:\CreateNewFile\Test.
Aprire Excel 2010.
Digitare This is the CreateNewFile workbook nella cella A1.
Salvare la cartella di lavoro come CreateNewFile.xls nel percorso C:\CreateNewFile.
Chiudere Excel.
La sottocartella Test verrà utilizzata per inserirvi il progetto completo.
Creazione di una nuova macro
In questo passaggio verrà creata una nuova macro di Visual Studio vuota.
Per creare una nuova macro
Aprire Visual Studio e chiudere eventuali progetti aperti.
Scegliere Macro dal menu Strumenti, quindi fare clic su IDE macro.
Verrà visualizzato l'ambiente di sviluppo integrato (IDE) Microsoft Visual Studio Macro.
Espandere il nodo MyMacros, se non è ancora espanso.
Scegliere Aggiungi modulo dal menu Progetto.
Assegnare il nome CreateNewProject al modulo, quindi scegliere Aggiungi.
Il nuovo modulo viene aperto nell'IDE macro. A questo punto è possibile aggiungere il codice per la creazione di un nuovo progetto.
Creazione di un file modello (VSTEMPLATE)
Per creare un nuovo progetto con le impostazioni predefinite della procedura guidata, utilizzare uno dei file modello predefiniti. Per impostazione predefinita, in Visual Studio viene creato un nuovo documento o una nuova cartella di lavoro da utilizzare nel progetto. Per utilizzare una cartella di lavoro già presente nel progetto è necessario generare un file VSTEMPLATE personalizzato temporaneo con le impostazioni corrette.
Per ulteriori informazioni sui file VSTEMPLATE, vedere Modelli di Visual Studio.
Per utilizzare un documento esistente, aggiungere il parametro personalizzato VSTOExistingDocumentPath al file VSTEMPLATE.
Per generare un file VSZ temporaneo
Scegliere Aggiungi riferimento dal menu Progetto.
Selezionare System.Xml.dll, fare clic su Aggiungi, quindi su OK.
Aggiungere le seguenti istruzioni Imports all'inizio del file di codice:
Imports System.Xml Imports System.IO
Nel modulo CreateNewProject, aggiungere il metodo seguente per definire i contenuti della cartella dei modelli temporanea:
Sub CreateVstemplateFile(ByVal defaultTemplateFilePath As String, _ ByVal templateFilePath As String, ByVal docFilePath As String) ' Copy the default template in the temporary location. Dim defaultTemplateDirectory = _ Path.GetDirectoryName(defaultTemplateFilePath) Dim templateDirectory = Path.GetDirectoryName(templateFilePath) If Not Directory.Exists(templateDirectory) Then Directory.CreateDirectory(templateDirectory) End If For Each fileToCopy As String In Directory. _ GetFiles(defaultTemplateDirectory) File.Copy(fileToCopy, Path.Combine(templateDirectory, _ Path.GetFileName(fileToCopy)), True) Next ' Create the vstemplate namespace. Dim vstemplateNamespace As String = _ "https://schemas.microsoft.com/developer/vstemplate/2005" ' Load the XML document. Dim doc As XmlDocument = New XmlDocument() doc.Load(templateFilePath) Dim xmlNsManager As XmlNamespaceManager = _ New XmlNamespaceManager(doc.NameTable) xmlNsManager.AddNamespace("vstemplns", vstemplateNamespace) ' Get 'CustomParameters' XML node. Dim customParametersNode As XmlNode = doc.SelectSingleNode( _ "/vstemplns:VSTemplate/vstemplns:TemplateContent/" _ & "vstemplns:CustomParameters", xmlNsManager) ' Create a new XML CustomParameter node with ' the existing document data. ' <CustomParameter Name="VSTOExistingDocumentPath" _ ' Value="C:\CreateNewFile\CreateNewFile.xls" /> Dim newNode As XmlNode newNode = doc.CreateElement("CustomParameter", _ vstemplateNamespace) Dim nameAttribute As XmlAttribute nameAttribute = doc.CreateAttribute("Name") Dim valueAttribute As XmlAttribute valueAttribute = doc.CreateAttribute("Value") nameAttribute.Value = "VSTOExistingDocumentPath" valueAttribute.Value = docFilePath newNode.Attributes.Append(nameAttribute) newNode.Attributes.Append(valueAttribute) customParametersNode.AppendChild(newNode) doc.Save(templateFilePath) End Sub
Il metodo successivo consente di definire parametri e di chiamare il metodo LaunchWizard.
Avvio della procedura guidata
Per creare un nuovo progetto, utilizzare il metodo LaunchWizard dell'oggetto DTE.
Per avviare la procedura guidata
Aggiungere il metodo seguente al modulo CreateNewProject per riempire la matrice di parametri e avviare la procedura guidata:
Sub LaunchWizard(ByVal projectName As String, _ ByVal projectFolder As String, _ ByVal templateFilePath As String) Dim params(6) As Object ' New project. params(0) = "{0F90E1D0-4999-11D1-B6D1-00A0C90F2744}" ' Project name. params(1) = projectName ' Project location. params(2) = projectFolder ' Install location. params(3) = "" ' Close solution. params(4) = False ' Solution name. params(5) = "" ' Silent - do not display any user interface. params(6) = False DTE.LaunchWizard(templateFilePath, params) End Sub
Aggiungere infine un metodo per chiamare i due metodi appena creati e passare i parametri appropriati.
Creazione del progetto
Il metodo riportato di seguito consente di definire e passare i parametri corretti per i metodi CreateVstemplateFile e LaunchWizard.
Per creare il progetto
Aggiungere il seguente metodo al modulo CreateNewProject:
Sub CreateProject() Dim sol As Solution2 = DTE.Solution ' Get the path of the default .vstemplate file using ' the name of the template zip file and the language. ' The zip files are "VSTOExcelWorkbook.zip", ' "VSTOExcelTemplate.zip", ' "VSTOWordDocument.zip", ' or "VSTOWordTemplate.zip". ' The languages are "VisualBasic" and "CSharp". Dim defaultTemplateFilePath As String = _ sol.GetProjectTemplate("VSTOExcel2010WorkbookV4.zip", _ "VisualBasic") ' Get the temporary .vstemplate file containing ' the specification. Dim templateDirectory As String = "C:\CreateNewFile\template" Dim templateFilePath = Path.Combine(templateDirectory, _ Path.GetFileName(defaultTemplateFilePath)) ' Get an existing document to use in project creation. Dim docFilePath As String = "C:\CreateNewFile\CreateNewFile.xls" ' Create a temporary template with the wizard specification. CreateVstemplateFile(defaultTemplateFilePath, _ templateFilePath, docFilePath) ' Launch the CreateProject wizard. Dim projectName As String = "CreateNewFile" Dim projectFolder As String = "c:\CreateNewFile\test" LaunchWizard(projectName, projectFolder, templateFilePath) End Sub
Salvare la macro.
Chiudere l'IDE macro.
Test della macro
A questo punto, è possibile eseguire il test della macro per verificare che consenta la creazione di un nuovo progetto.
Per verificare la macro
Scegliere Macro dal menu Strumenti, quindi fare clic su Esplora macro.
In Esplora macro, espandere la macro CreateNewProject nel nodo MyMacros.
Fare doppio clic su CreateProject in CreateNewProject.
Verrà avviata la Creazione guidata progetto Visual Studio Tools per Office.
Nella pagina Selezionare un documento per l'applicazione, fare clic su OK.
Verificare che la nuova macro sia stata creata nella sottocartella Test.
Vedere anche
Attività
Procedura: modificare le proprietà di Excel mediante l'automazione di progetto di Visual Studio
Concetti
Esempi di estensibilità di progetto in Visual Basic e Visual C#