Substituir texto no Word dentro de uma Caixa de Texto.

Delphi

29/07/2010

Olá.
Tenho uma aplicação usando Delphi2007, onde tenho um modelo de proposta de venda feito no word, minha aplicação lê esse modelo e gera um novo doc substituindo algumas TAGS.
Este modelo o próprio usuário cria. Sendo que ele possui a lista de TAGS disponíveis.
Estava tudo funcionando muito bem, até que um determinado usuário resolveu incluir algumas TAGS dentro de uma caixa de texto para melhor posiciona-las.
Acontece que dentro desta caixa de texto, a TAG não é substituída.
Basicamente o código que estou usando é o seguinte:

procedure TfrmImpProposta.GerarDoc(ArquivoOriginal, ArquivoNovo: String);
var
  WinWord, docs : Variant;
begin
  WinWord  := CreateOleObject('Word.Application');
  Docs    := WinWord.Documents;
  Docs    := WinWord.Documents.Open(ArquivoOriginal);
  Docs.Content.Find.Execute(FindText    := '',
                            ReplaceWith := 'Claudia');
  Docs.SaveAs(ArquivoNovo);
  WinWord.Visible:= true;
end;

Se alguém puder me ajudar ficaria muito grata.

Cláudia
Claudia Oliveira

Claudia Oliveira

Curtidas 0

Melhor post

Claudia Oliveira

Claudia Oliveira

29/07/2010

Resolvido :
  for i := 1 to WinWord.ActiveDocument.Shapes.Count do  begin    WinWord.ActiveDocument.Shapes.Item(i).TextFrame.TextRange.find.Execute(FindText := '<NOME-CLIENTE>',                                                                                                                             ReplaceWith := 'Claudia');  end;

Obrigada
GOSTEI 1

Mais Respostas

Marcos Iwazaki

Marcos Iwazaki

29/07/2010

Oi...bom eu faço assim
     wordapp.selection.find.replacement.text := Seu_Texto;     wordapp.selection.find.execute(replace  := wdreplaceall);
qq dúvida é so perguntar

Olá.

Tenho uma aplicação usando Delphi2007, onde tenho um modelo de proposta de venda feito no word, minha aplicação lê esse modelo e gera um novo doc substituindo algumas TAGS.

Este modelo o próprio usuário cria. Sendo que ele possui a lista de TAGS disponíveis.

Estava tudo funcionando muito bem, até que um determinado usuário resolveu incluir algumas TAGS dentro de uma caixa de texto para melhor posiciona-las.

Acontece que dentro desta caixa de texto, a TAG não é substituída.

Basicamente o código que estou usando é o seguinte:



procedure TfrmImpProposta.GerarDoc(ArquivoOriginal, ArquivoNovo: String);

var

  WinWord, docs : Variant;

begin

  WinWord  := CreateOleObject('Word.Application');

  Docs     := WinWord.Documents;

  Docs     := WinWord.Documents.Open(ArquivoOriginal);

  Docs.Content.Find.Execute(FindText    := '',

                            ReplaceWith := 'Claudia');

  Docs.SaveAs(ArquivoNovo);

  WinWord.Visible:= true;

end;



Se alguém puder me ajudar ficaria muito grata.



Cláudia
 
GOSTEI 0
Claudia Oliveira

Claudia Oliveira

29/07/2010

Certo..Mas onde defino qual tag quero substituir pelo texto ?
GOSTEI 0
Marcos Iwazaki

Marcos Iwazaki

29/07/2010

disfarça.... esqueci de postar outro codigo
wordapp.selection.find.text             := Seu_Texto;     wordapp.selection.find.replacement.text := Seu_Texto_Para_Substituir;     wordapp.selection.find.execute(replace  := wdreplaceall);

GOSTEI 0
Claudia Oliveira

Claudia Oliveira

29/07/2010

Entendi .. vou testar .. por enquanto.. obrigada
GOSTEI 0
POSTAR