Localizar variaveis iguais e alterar no word com vb 2008
18/03/2011
0
Olá pessoal,
Estou criando um programa em vb 2008, onde eu digito alguns dados como nome, RG, etc... e ele abre um documento do word onde ele altera esses dados atraves de uma variavel, porém essas variaveis se repetem varias vezes no documento mas nem todas elas se alteram, alguem poderia me dar uma ajuda?
Meu codigo:
Private Sub btnGeraAviso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGeraAviso.Click
Try
'Instancia a Aplicação Word.
objWord = CreateObject("Word.Application")
'Abre o documento .doc do Microsoft Word.
objWord.Documents.Open("C:\Documents and Settings\...\Documento.doc")
'Procura pela palavra "@Nome" e substitui pelo conteúdo indicado
SubstituiVariavel("@Nome1", NomeTextBox1.Text)
SubstituiVariavel("@RG1", RGTextBox1.Text)
SubstituiVariavel("@Dia1", cmbDia1.Text)
SubstituiVariavel("@Mes1", cmbMes1.Text)
SubstituiVariavel("@Ano1", cmbAno1.Text)
SubstituiVariavel("@Nome2", NomeTextBox2.Text)
SubstituiVariavel("@RG2", RGTextBox2.Text)
SubstituiVariavel("@Dia2", cmbDia2.Text)
SubstituiVariavel("@Mes2", cmbMes2.Text)
SubstituiVariavel("@Ano2", cmbAno2.Text)
If MsgBox("Confirma abertura do documento?", MsgBoxStyle.YesNo, "Microsoft Word - teste.txt") = MsgBoxResult.Yes Then
'torna o Word visivel
objWord.visible = True
'habilita o botão para fechar o word sem salvar
btnFechaWord.Enabled = True
Else
fechaWord()
End If
Catch ex As Exception
objWord.ActiveDocument.Close(False)
objWord.Quit()
objWord = Nothing
MsgBox(ex.Message)
End Try
End Sub
________________________________________________
Private Sub SubstituiVariavel(ByVal Achar As String, ByVal Substituir As String)
objWord.Selection.Find.ClearFormatting()
objWord.Selection.Find.Replacement.ClearFormatting ()
'procura a variável e substitui o valor
With objWord.Selection.Find
.Text = Achar.ToString
.Replacement.Text = Substituir.ToString
.Forward = True
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
While .Execute = True
objWord.Selection.Select()
System.Windows.Forms.Clipboard.SetDataObject(Subst ituir)
objWord.Selection.Paste()
End While
End With
End Sub
Estou criando um programa em vb 2008, onde eu digito alguns dados como nome, RG, etc... e ele abre um documento do word onde ele altera esses dados atraves de uma variavel, porém essas variaveis se repetem varias vezes no documento mas nem todas elas se alteram, alguem poderia me dar uma ajuda?
Meu codigo:
Private Sub btnGeraAviso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGeraAviso.Click
Try
'Instancia a Aplicação Word.
objWord = CreateObject("Word.Application")
'Abre o documento .doc do Microsoft Word.
objWord.Documents.Open("C:\Documents and Settings\...\Documento.doc")
'Procura pela palavra "@Nome" e substitui pelo conteúdo indicado
SubstituiVariavel("@Nome1", NomeTextBox1.Text)
SubstituiVariavel("@RG1", RGTextBox1.Text)
SubstituiVariavel("@Dia1", cmbDia1.Text)
SubstituiVariavel("@Mes1", cmbMes1.Text)
SubstituiVariavel("@Ano1", cmbAno1.Text)
SubstituiVariavel("@Nome2", NomeTextBox2.Text)
SubstituiVariavel("@RG2", RGTextBox2.Text)
SubstituiVariavel("@Dia2", cmbDia2.Text)
SubstituiVariavel("@Mes2", cmbMes2.Text)
SubstituiVariavel("@Ano2", cmbAno2.Text)
If MsgBox("Confirma abertura do documento?", MsgBoxStyle.YesNo, "Microsoft Word - teste.txt") = MsgBoxResult.Yes Then
'torna o Word visivel
objWord.visible = True
'habilita o botão para fechar o word sem salvar
btnFechaWord.Enabled = True
Else
fechaWord()
End If
Catch ex As Exception
objWord.ActiveDocument.Close(False)
objWord.Quit()
objWord = Nothing
MsgBox(ex.Message)
End Try
End Sub
________________________________________________
Private Sub SubstituiVariavel(ByVal Achar As String, ByVal Substituir As String)
objWord.Selection.Find.ClearFormatting()
objWord.Selection.Find.Replacement.ClearFormatting ()
'procura a variável e substitui o valor
With objWord.Selection.Find
.Text = Achar.ToString
.Replacement.Text = Substituir.ToString
.Forward = True
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
While .Execute = True
objWord.Selection.Select()
System.Windows.Forms.Clipboard.SetDataObject(Subst ituir)
objWord.Selection.Paste()
End While
End With
End Sub
Marcos Barea
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)