Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 306683
(http://support.microsoft.com/kb/306683/
)
.
Para uma versão deste artigo do Microsoft Visual C++, consulte 306686
(http://support.microsoft.com/kb/306686/
)
.
Este artigo passo a passo descreve como chamar Office macros de um cliente de automação do Visual Basic .NET.
Você pode usar a automação do Microsoft Office para abrir um documento ou criar um novo documento que contém uma macro do Visual Basic for Applications (VBA) e executar a macro em tempo de execução.
O cliente de automação de exemplo seguinte manipula um servidor de automação do Office (Access, Excel, PowerPoint ou Word) com base na sua seleção em um formulário. Depois que o cliente inicia o servidor de automação, ele abre um documento e, em seguida, chama duas macros. A primeira macro, DoKbTest, não tem parâmetros e a segunda macro, DoKbTestWithParameter, toma um único parâmetro do tipo String .
Criar documentos do office que contêm macros
Crie um documento do Word chamado C:\Doc1.doc. Para fazer isso, execute as seguintes etapas:
No Word, crie um novo documento.
Pressione ALT+F11 para abrir o Editor do Visual Basic.
No menu Inserir , clique em módulo .
Cole o código de macro a seguir no novo módulo:
'Display a message box that displays the application name.
Public Sub DoKbTest()
MsgBox "Hello from " & Application.Name
End Sub
'Display a message box with the string passed from the
'Automation client.
Public Sub DoKbTestWithParameter( sMsg As String )
MsgBox sMsg
End Sub
Feche o Editor do Visual Basic, salvar o documento do Word e feche o Word.
Crie uma pasta de trabalho Excel chamada C:\Book1.xls usando as etapas similares àquelas que você usou para criar o documento do Word.
Criar uma apresentação do PowerPoint chamada C:\Pres1.ppt usando as etapas similares àquelas que você usou para criar o Word documento.
Crie um banco de dados novo do Access chamado C:\Db1.mdb. Para fazer isso, execute as seguintes etapas:
No menu Inserir , clique em módulo .
Cole o código de macro no novo módulo.
Salve o módulo e sair do Access.
Criar o cliente de automação do Visual Basic .NET
Inicie o Microsoft Visual Studio NET.. No menu arquivo , clique em novo e, em seguida, clique em Project . Selecione Windows Application dos tipos de projetos do Visual Basic. O Form1 é criado por padrão.
Adicione uma referência a bibliotecas de objetos do Access, Excel, PowerPoint e Word. Para fazer isso, execute as seguintes etapas:
No menu Project , clique em Add Reference .
Na guia COM , localize Microsoft Word 10.0 Object Library ou Microsoft Word 11.0 Object Library e, em seguida, clique em Selecionar .
Observação Se você estiver usando o Microsoft Office XP e você ainda não fez isso, a Microsoft recomenda que você baixe e instale o Microsoft Office XP Primary Interop Assemblies (PIAs). Para obter mais informações sobre PIAs do Office XP, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
328912
(http://support.microsoft.com/kb/328912/
)
Microsoft Office XP módulos de interoperabilidade primários (PIAs) estão disponíveis para download
Repita a etapa anterior para bibliotecas de objetos do Access, Excel e PowerPoint.
Clique em OK na caixa de diálogo Add References para aceitar as seleções. Se você receber uma solicitação para gerar wrappers para as bibliotecas que você selecionou, clique em Sim .
Observação Se você receber uma mensagem de erro quando você faz referência o Access 10.0 objeto biblioteca, consulte a seção "Solução de problemas".
No menu Exibir , clique em caixa de ferramentas . Adicione uma caixa de combinação e um botão ao Form1.
Clique duas vezes em Button1 para gerar uma definição para Click do botão manipulador de eventos.
Cole o seguinte código no procedimento Button1_Click:
Select Case ComboBox1.SelectedItem
Case "Access"
Dim oAccess As Access.ApplicationClass
'Start Access and open the database.
oAccess = CreateObject("Access.Application")
oAccess.Visible = True
oAccess.OpenCurrentDatabase("c:\db1.mdb", False)
'Run the macros.
oAccess.Run ("DoKbTest")
oAccess.Run("DoKbTestWithParameter", "Hello from VB .NET Client")
'Clean-up: Quit Access without saving changes to the database.
oAccess.DoCmd().Quit (Access.AcQuitOption.acQuitSaveNone)
System.Runtime.InteropServices.Marshal.ReleaseComObject (oAccess)
oAccess = Nothing
Case "Excel"
Dim oExcel As Excel.ApplicationClass
Dim oBook As Excel.WorkbookClass
Dim oBooks As Excel.Workbooks
'Start Excel and open the workbook.
oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
oBooks = oExcel.Workbooks
oBook = oBooks.Open("c:\book1.xls")
'Run the macros.
oExcel.Run ("DoKbTest")
oExcel.Run("DoKbTestWithParameter", "Hello from VB .NET Client")
'Clean-up: Close the workbook and quit Excel.
oBook.Close (False)
System.Runtime.InteropServices.Marshal.ReleaseComObject (oBook)
oBook = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject (oBooks)
oBooks = Nothing
oExcel.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject (oExcel)
oExcel = Nothing
Case "PowerPoint"
Dim oPP As PowerPoint.ApplicationClass
Dim oPresSet As PowerPoint.Presentations
Dim oPres As PowerPoint.PresentationClass
'Start PowerPoint and open the presentation.
oPP = CreateObject("PowerPoint.Application")
oPP.Visible = True
oPresSet = oPP.Presentations
oPres = oPresSet.Open("c:\pres1.ppt", , , True)
'Run the macros.
oPP.Run ("'pres1.ppt'!DoKbTest")
oPP.Run("'pres1.ppt'!DoKbTestWithParameter", "Hello from VB .NET Client")
'Clean-up: Close the presentation and quit PowerPoint.
oPres.Close()
System.Runtime.InteropServices.Marshal.ReleaseComObject (oPres)
oPres = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject (oPresSet)
oPresSet = Nothing
oPP.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject (oPP)
oPP = Nothing
Case "Word"
Dim oWord As Word.ApplicationClass
'Start Word and open the document.
oWord = CreateObject("Word.Application")
oWord.Visible = True
oWord.Documents.Open ("C:\Doc1.doc")
'Run the macros.
oWord.Run ("DoKbTest")
oWord.Run("DoKbTestWithParameter", "Hello from VB .NET Client")
'Quit Word.
oWord.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject (oWord)
oWord = Nothing
End Select
GC.Collect()
No menu Exibir , clique em Designer e clique duas vezes em Form1 para gerar uma definição para o evento Load do formulário.
Cole o seguinte código no procedimento Form1_Load:
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
Dim a As String() = {"Access", "Excel", "PowerPoint", "Word"}
ComboBox1.Items.AddRange(a)
ComboBox1.SelectedIndex = 0
Adicione o seguinte código à parte superior do Form1.vb:
Selecione um aplicativo do Office do ComboBox1 e, em seguida, clique em Button1 . O aplicativo do Office que você selecionou é iniciado e as macros DoKBTest e DoKBTestWithParameter são executadas.
Quando você faz referência a biblioteca de objeto Access 10.0 em um projeto Visual Basic.NET, você receberá uma mensagem de erro informando que falha na conversão da biblioteca para um assembly .NET. Para obter mais informações sobre como resolver esse problema para que você com êxito pode fazer referência a biblioteca de objetos Access 10.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
317157
(http://support.microsoft.com/kb/317157/
)
PROBLEMA: Erros quando você faz referência a biblioteca de tipos 10.0 do Access com o Visual Studio .NET
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 306682
(http://support.microsoft.com/kb/306682/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhorar essa informação?
Para proteger sua privacidade, não inclua informações de contato em seus comentários.
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.