CRIAR MACRO NO WORD VIA VB NET
Olá pessoal
preciso criar a seguinte Macro No Word Via Programação no VB NET, como faço?
[txt-color=#0000f0]Sub MesclarDados()
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
Application.WindowState = wdWindowStateMaximize
End Sub[/txt-color]
Chamar a Macro [Ô]MesclarDados[Ô] no VB net sem problema
eu até poderia executar diretamente a Macro no VBNET assim:
Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = [txt-color=#e80000]wdToggle[/txt-color]
Word.Application.WindowState = [txt-color=#e80000]wdWindowStateMaximize[/txt-color]
Só que o vbNet não reconhece o que está em vermelho, o VB6 reconhece
Também fiz assim:
Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = Word.wdToggle
Word.Application.WindowState = Word.wdWindowStateMaximize
Reconhece mas não executa
Como posso fazer, Chamo uma macro, mas preciso cria-la ou Como faço essa rotina acima funcionar direto no VB NET
Eu tb poderia criar a macro diretamente no Word, só que não é ideal pois possuo dezenas de clientes com outras dezenas de pcs
Grato
preciso criar a seguinte Macro No Word Via Programação no VB NET, como faço?
[txt-color=#0000f0]Sub MesclarDados()
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
Application.WindowState = wdWindowStateMaximize
End Sub[/txt-color]
Chamar a Macro [Ô]MesclarDados[Ô] no VB net sem problema
eu até poderia executar diretamente a Macro no VBNET assim:
Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = [txt-color=#e80000]wdToggle[/txt-color]
Word.Application.WindowState = [txt-color=#e80000]wdWindowStateMaximize[/txt-color]
Só que o vbNet não reconhece o que está em vermelho, o VB6 reconhece
Também fiz assim:
Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = Word.wdToggle
Word.Application.WindowState = Word.wdWindowStateMaximize
Reconhece mas não executa
Como posso fazer, Chamo uma macro, mas preciso cria-la ou Como faço essa rotina acima funcionar direto no VB NET
Eu tb poderia criar a macro diretamente no Word, só que não é ideal pois possuo dezenas de clientes com outras dezenas de pcs
Grato
Nenhuma dica?
Grato
Grato
JCM0867,
Copiei do seguinte exemplo:
http://www.java2s.com/Tutorial/VB/0440__Windows/EditWorddocument.htm
Estou testando aqui e funcionou destas formas (crie um arquivo [Ô]C:\Temp\Sample.doc[Ô]):
A minha Sub completa:
Agora sobre a [Ô]Propriedade MailMerge.ViewMailMergeFieldCodes (Word)[Ô]:
http://msdn.microsoft.com/pt-br/library/office/ff840472(v=office.15).aspx
Pelo que entendi, só funciona se for [Ô]Mala Direta[Ô].
[][ô]s,
Tunusat.
Copiei do seguinte exemplo:
http://www.java2s.com/Tutorial/VB/0440__Windows/EditWorddocument.htm
Estou testando aqui e funcionou destas formas (crie um arquivo [Ô]C:\Temp\Sample.doc[Ô]):
objWordApp.WindowState = Word.WdWindowState.wdWindowStateMaximize
objWordApp.Application.WindowState = Word.WdWindowState.wdWindowStateMaximize
A minha Sub completa:
Private Sub frmTeste_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim objWordApp As Word.Application
Dim objDoc As Word.Document
objWordApp = New Word.Application
[ô]Show the Word application window if checked.
objWordApp.Visible = True
[ô]objWordApp.WindowState = Word.WdWindowState.wdWindowStateMaximize
objWordApp.Application.WindowState = Word.WdWindowState.wdWindowStateMaximize
[ô]Open an existing document.
objWordApp.Documents.Open([Ô]C:\Temp\Sample.doc[Ô])
objDoc = objWordApp.ActiveDocument
objWordApp.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
objWordApp.Quit()
objWordApp = Nothing
End Sub
Agora sobre a [Ô]Propriedade MailMerge.ViewMailMergeFieldCodes (Word)[Ô]:
http://msdn.microsoft.com/pt-br/library/office/ff840472(v=office.15).aspx
Pelo que entendi, só funciona se for [Ô]Mala Direta[Ô].
[][ô]s,
Tunusat.
Sim, é mala direta, na verdade é um contrato que funciona da mesma maneira
Acontece o seguinte
ao abrir o docContrato ele não exibe os campos mesclados
aparecem: «NomeResponsavel», «EnderecoResponsavel», etc. ao inves de mostrar os dados dos respectivos campos,
Ai sempre tem que clicar no comando [txt-color=#0000f0]Visualizar resultados[/txt-color] do word, ele não fixa esse comando,
A cada abertura do contrato tem de clicar em [txt-color=#0000f0]Visualizar resultado[/txt-color] e sabe como é o cliente, quer tudo mastigadinho.
o comando VBA para executar a mesclagem é [txt-color=#e80000]Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle[/txt-color]
Funciona exatamente dessa maneira no VB6 e não funciona no VB net
Outra maneira que tb resolveria seiria fixar o [txt-color=#0000f0]Visualizar resultados[/txt-color] do word com habilitado, mas não descobri como fazer isso.
O Word insiste em deixa-lo Desabilitado
Acontece o seguinte
ao abrir o docContrato ele não exibe os campos mesclados
aparecem: «NomeResponsavel», «EnderecoResponsavel», etc. ao inves de mostrar os dados dos respectivos campos,
Ai sempre tem que clicar no comando [txt-color=#0000f0]Visualizar resultados[/txt-color] do word, ele não fixa esse comando,
A cada abertura do contrato tem de clicar em [txt-color=#0000f0]Visualizar resultado[/txt-color] e sabe como é o cliente, quer tudo mastigadinho.
o comando VBA para executar a mesclagem é [txt-color=#e80000]Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle[/txt-color]
Funciona exatamente dessa maneira no VB6 e não funciona no VB net
Outra maneira que tb resolveria seiria fixar o [txt-color=#0000f0]Visualizar resultados[/txt-color] do word com habilitado, mas não descobri como fazer isso.
O Word insiste em deixa-lo Desabilitado
Não consegui fazer funcionar o exemplo do MSDN
Mas dando mais uma pesquisada achei num forum alguem que tinha a mesma dúvida e responderam
[txt-color=#0000f0]ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False[/txt-color]
Coloquei no meu sistema:
Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False e funcionou 100%
agora ele mescla e abre o valor nos campos mesclados
Agora não é mais necessário criar uma macro no Word
Valeu
Mas dando mais uma pesquisada achei num forum alguem que tinha a mesma dúvida e responderam
[txt-color=#0000f0]ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False[/txt-color]
Coloquei no meu sistema:
Word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False e funcionou 100%
agora ele mescla e abre o valor nos campos mesclados
Agora não é mais necessário criar uma macro no Word
Valeu
Tópico encerrado , respostas não são mais permitidas