Compartilhar via


Demonstra Passo a passo: Criando um novo projeto de Office usando o Visual Studio Automation de projeto

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de documento

Versão do Microsoft Office

  • O Excel 2003

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Esta explicação passo a passo demonstra como criar uma macro que usa o modelo de objeto do Visual Studio para automatizar a criação de um projeto Ferramentas do Visual Studio para o Office.O projeto usa configurações Personalizars em Visual Studio Tools para Office Project Assistente, em vez de confiar nos padrões de projeto.

O código cria um novo projeto com configurações do assistente Personalizar para que o projeto automatizado seja criado usando uma pasta de trabalho do Microsoft Office Excel existente em vez de criar uma nova pasta de trabalho.

Para obter mais informações sobre as macros, consulte Automatizando Repetitive Actions by Using Macros.

Essa explicação passo a passo ilustra as seguintes tarefas:

  • Criando uma Novo macro do Visual Studio.

  • Criar um arquivo de modelo temporário (.vstemplate) com configurações Personalizars.

  • Configuração parâmetros para um assistente e iniciar o assistente.

Pré-requisitos

Para completar este passo a passo, são necessários os seguintes componentes:

  • O Visual Studio.

  • Ferramentas do Visual Studio para o Office (um componente opcional do O Visual Studio 2008 Professional e Visual Studio Team System).

  • Microsoft Office Excel 2003.

Criar a pasta de trabalho do Excel

Você deve criar uma pasta de trabalho do Excel que é usada como a pasta de trabalho existente no novo projeto.

Para criar a pasta de trabalho do Excel

  1. Crie uma pasta na unidade C do computador chamada CreateNewFile.

  2. Crie uma subpasta CreateNewFile chamada Test: C:\CreateNewFile\Test.

  3. Abrir Microsoft Office Excel 2003.

  4. Tipo esta é a pasta de trabalho CreateNewFile na célula A1.

  5. Salvar a pasta de trabalho como CreateNewFile.xls no local C:\CreateNewFile.

  6. Excel Fechar.

A subpasta de teste é usada como o local para o projeto concluído.

Criando um Novo macro

Nesta etapa, você criará uma Novo Vazio Visual Studio macro.

Para criar um Novo macro

  1. Abra o Visual Studio e Fechar qualquer abrir projetos.

  2. No menu Ferramentas, aponte para Macrose, em seguida, clique em IDE de macros.

    Abre o ambiente de desenvolvimento integrado do Do macros do Microsoft Visual Studio (IDE).

  3. Expanda o nó de De MyMacros, se ele não estiver expandido.

  4. No menu Projeto, clique em Adicionar módulo.

  5. Nomeie o módulo CreateNewProject e clique em Adicionar.

O novo módulo é aberto no IDE de macros.Agora você pode adicionar código para criar um novo projeto.

Criando um arquivo de modelo (.vstemplate)

Para criar um novo projeto usando configurações do assistente padrão, você use um dos arquivos de modelo predefinido.Em Ferramentas do Visual Studio para o Office, o padrão de projeto é criar um novo documento ou pasta de trabalho para uso no projeto.Para usar uma pasta de trabalho existente no seu projeto, é necessário gerar um arquivo .vstemplate temporário Personalizar com as configurações corretas.

Para obter mais informações sobre arquivos .vstemplate, consulte Modelos Visual Studio.

Para usar um documento existente, Adicionar o parâmetro Personalizar VSTOExistingDocumentPath para o arquivo .vstemplate.

Para gerar um arquivo temporário .vsz

  1. No menu Project, escolha Add Reference.

  2. Selecionar Sistema.Xml.dll, clique em Adicionare clique em OK de .

  3. Adicionar as instruções Imports a seguir na parte superior do arquivo de código.

    Imports System.Xml
    Imports System.IO
    
  4. No módulo CreateNewProject, Adicionar o seguinte método para definir o conteúdo da pasta temporária do modelo.

    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
    

O Avançar método define os parâmetros e chama o método LaunchWizard.

Iniciando o Assistente

Para criar um novo projeto, use o método LaunchWizard do objeto DTE.

Para iniciar o Assistente

  • Adicionar o seguinte método ao módulo CreateNewProject para preencher a matriz de parâmetro e iniciar o assistente:

    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
    

Finalmente, Adicionar um método para chamar os dois métodos que você acabou de criar e passar os parâmetros apropriados.

Criando o projeto

O método a seguir define e passa os parâmetros corretos para os métodos de CreateVstemplateFile e LaunchWizard.

Para criar o projeto

  1. Adicionar o seguinte método para o módulo de 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("VSTOExcel2003Workbook.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
    
  2. Salvar a macro.

  3. Fechar as macros IDE.

Testando a macro

Agora você pode testar sua macro para certificar-se que ele cria um novo projeto.

Para testar a macro

  1. No menu Ferramentas, aponte para Macrose, em seguida, clique em Macro Explorer.

  2. No Macro Explorer, em MyMacros, Expandirir a macro de CreateNewProject.

  3. Em CreateNewProject, clique Duplo em CreateProject.

    Abre o Visual Studio Tools para Office Projeto Assistente.

  4. No Selecionar uma página de documento para O aplicativo, clique em OK.

  5. Verifique se o novo projeto é criado na subpasta Test.

Consulte também

Tarefas

Como: Adicionar planilhas a pastas de trabalho usando o Visual Studio Automation de projeto

Como: Alterar propriedades de Excel usando o Visual Studio Automation de projeto

Conceitos

O Visual Studio Tools for Office Visão geral de extensibilidade do projeto

Visual Basic e Visual C# Projeto Extensibility exemplos

Outros recursos

Extensibilidade do Projeto em Ferramentas do Visual Studio do Office