Neste artigo vamos recordar como criar um documento no Microsoft Word usando a linguagem VB .NET e o Visual Studio. |
Embora os tempos
glória do Microsoft Word tenham passado ele ainda é um dos mais populares
editores de texto usados até o momento.
Então se você possuir o Microsoft Word instalado e o Visual Studio pode gerar um documento Word através de um projeto Windows Forms usando a linguagem VB .NET.
Caso você ainda não saiba o Visual Studio permite criar projetos usando templates prontos para todas as ferramentas Office tanto para versão 2007 como para a versão 2010. Assim podemos criar documentos , Add-ins e templates para o Word, Excel, PowerPoint :
Abaixo vemos uma figura que mostra um documento Word 2007 criado em um projeto no Visual Studio 2010.
Aliado a este fato as aplicações Office possuem a linguagem VBA - Visual Basic for Applications que permite aos usuários mais avançados personalizar e automatizar diversas tarefas flexibilizando ainda mais as aplicações Office. (A criação de macros também pode ser usada para personalizar aplicações Office).
Os desenvolvedores de aplicações que usam a plataforma .NET podem também efetuar a integração com as aplicações Office usando a linguagem VBA e os objetos da aplicação Office de origem. Isso sempre foi possível desde a versões mais antigas do Visual Basic e se você consultar a seção VBA do site vai encontrar alguns exemplos de aplicações criadas com o Visual Basic que interagem com aplicativos Office.
Além disso temos o Visual Studio Tools for Office (VSTO), que se apresenta como uma ferramenta através da qual você vai poder desenvolver aplicações para o Office usando o Visual Studio e qualquer uma das linguagens que a plataforma suporta; dessa forma você poderá usar a plataforma .NET e a linguagem Visual Basic para criar aplicações Office sem a necessidade de usar o bom e velho VBA.
Com isso você vai poder criar aplicações dos tipos suportados pela plataforma .NET e usando as linguagens VB .NET e C# e os recursos do Visual Studio como LINQ, WPF, WCF, suporte ao ClickOnce, enfim, todos os recursos da .NET Framework 3.5 com código gerenciado, ou seja o VSTO pretende unir o útil (Visual Studio) ao agradável(a interface Office).
Obs: Naturalmente o desenvolvedor da plataforma .NET e do VSTO vai ter que conhecer o modelo de objetos do Office para desenvolver aplicações para essa plataforma e integrar as características das mesmas a sua solução .NET.
Apenas para você perceber as vantagens em usar o VSTO sobre o VBA veja abaixo uma comparação entre as duas ferramentas:
VBA - Visual Basic for Applications | VSTO |
---|---|
Usa o código que é conectado a um documento específico. | Usa o código que é armazenado separadamente do documento (para personalizações em nível de documento), ou em um assembly que é carregado pelo aplicativo (para o nível de aplicativo Add-ins). |
Funciona com os modelos de objeto do Office e as APIs do VBA | Funciona com os modelos de objeto do Office e as APIs do .NET Framework. |
Projetado para gravação de macro e uma experiência de desenvolvedor simplificada. | Desenvolvido para segurança, manutenção do código mais fácil e a capacidade de usar o ambiente de desenvolvimento integrado completo do Visual Studio (IDE). |
Funciona bem para soluções que se beneficiam de uma forte integração com aplicativos do Office (IDE, menus, botões da barra de ferramentas e assim por diante). | Funciona bem para soluções que se beneficiam dos recursos completos do Visual Studio e o .NET Framework. |
Nem tudo são flores no mundo VSTO : Se você for um desenvolvedor Office terá que adquirir a licença para o VSTO o que implica num custo a mais e o processo de deploy de uma solução VSTO é mais complexo que a feito pelo VBA.
Para desenvolver soluções VSTO , você deve instalar as Ferramentas do Visual Studio para o Office, que é instalado por padrão com várias versões do Visual Studio.
Mas nesse artigo eu não vou tratar o VSTO, vou mostrar como podemos criar um simples documento Word através de um projeto Windows Forms usando a linguagem VB .NET e os assemblies Microsoft.Office.Interop.Word, Microsoft.Office.Core e Microsoft.Vbe.Interop.
Recursos usados
Visual Studio 2010
Pacote Office
Criando o projeto Windows Forms
Abra o Visual Studio 2010 e clique em New Project;
Selecione a linguagem VB .NET, o template Windows Forms Application, informe o nome VBNET_DocumentoWord e clique em OK;
No formulário Form1.vb inclua os seguintes controles:
Label - Text = Título
TexBox - txtTitulo
Label - Text = Texto
TexBox - txtTexto
Button - btnGerar
Button - btnSair
Disponha os controles conforme o leiaute da figura abaixo:
Agora vamos incluir as seguintes referências no projeto:
Microsoft.Office.Core
Microsoft.Office.Interop.Word
Microsoft.Vbe.Interop
Clique no menu Project e a seguir em Add Reference;
Na guia .NET selecione os namespaces conforme indica a figura abaixo:
Repita o procedimento acima e na guia COM selecione o namespace conforme indica a figura a seguir:
A seguir defina a seguinte variável no início do formulário form1.vb:
Dim linhas() As StringNo evento Click do botão de comando - Gerar Documento Word - inclua o código abaixo :
Private Sub BtnGerar_Click(sender As System.Object, e As System.EventArgs) Handles BtnGerar.Click
linhas = Split(txtTexto.Text, vbCrLf)
GeraDocumentoWord()
End Sub
|
O código acima extrai cada linha do controle TextBox - txtTexto - e cria um array de strings contenho as linhas.
A rotina GeraDocumentoWord() é chamada em seguida para gerar o documento no Microsoft Word.
Abaixo temos o código desta rotina:
Private Sub GeraDocumentoWord() Dim tituloWord As String = txtTitulo.Text Dim wordApplication As Microsoft.Office.Interop.Word.Application wordApplication = New Microsoft.Office.Interop.Word.Application 'cria um novo domento Workd wordApplication.Selection.TypeParagraph() wordApplication.Selection.TypeText(vbNewLine) wordApplication.Selection.Font.Size = 12 wordApplication.Selection.Font.Size = 12 wordApplication.Selection.TypeText(vbNewLine) 'percorre o array de linhas e monta o documento End Sub |
Executando o projeto e clicando no botão para gerar o documento iremos obter:
Você pode parametrizar ainda mais a geração do documento Word permitindo que o usuário escolha o tipo de fonte, o tamanho, o alinhamento, etc.
Pegue o projeto completo aqui : VBNET_DocumentoWord.zip
Todo o que o Pai me dá virá a mim; e o que vem a mim de maneira nenhuma o lançarei fora.João 6:37
João 6:38
Porque eu desci do céu, não para fazer a minha vontade, mas a vontade daquele que me enviou.João 6:39
E a vontade do que me enviou é esta: Que eu não perca nenhum de todos aqueles que me deu, mas que eu o ressuscite no último dia.Referências: