COM - comunicacao com word

Top  Previous  Next

implementation

 

uses ComObj;

 

{$R *.DFM}

 

var  

   V: OleVariant;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

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

  V.ShowMe;  

  V.WordBasic.FileNew;

  V.WordBasic.Insert('test');  

  V.Run('mymac');  

  V.WordBasic.FileSave;

end;

 

------------------------------------------------------------------

// ESTE EXEMPLO FUNCIONA NO WIN2000/WORD 2000

uses COMObj;

 

var

  MSWord: Variant;

begin

  MSWord:= CreateOleObject ('Word.Basic');

  MSWord.AppShow;                           // mostra o word

  MSWord.FileNew;                           // inicia um novo documento

  MSWord.insert('Contrato de Locação');     // Escreve algo

  MSWord.insert(#13+'Contrato de Locação'); // Pula uma linha e escreve

  MSWord.FontSize(24);                      // muda o tamanho da fonte

  MSWord.italic;                            // coloca italico

  MSWord.bold;                              // coloca negrito

  MSWord.underline;                         // sublina

  MSWord.insert(#13+'Contrato de Locação'); // pula a linha e escreve novamente

  MSWord.FontSize(12);                      // muda o tamanho da fonte

  MSWord.Font('Arial');                     // muda a fonte usada

  MSWord.underline(false);                  // retira o sublinhado

  MSWord.italic(false);                     // retira o italico

  MSWord.bold(false);                       // retira o bold

  MSWord.insert(#13 +'teste');

  MSWord.insert(#13+#9 +'teste');           // nova linha e um TAB

  MSWord.insert(#13+'TESTE DE NOME');       // insere algo de uma tabela

  MSWord.LineUp(21);                      // seleciona uma parte do texto

  MSWord.TextToTable(ConvertFrom := 2, NumColumns := 1);// monta uma tabela com o texto selecionado

  MSWord.Filesaveas;                        // salva o arquivo

end;

 

-------------------------------------------------------------------

OUTRO EXEMPLO

 

// Consulte o Help - WordBasic Reference no Word

 

Uses ComObj;

 

var

   W:Variant;

begin

     W := CreateOleObject('Word.Basic');

     W.AppShow; // Chama o Word.

 

     W.FileOpen(ExtractFilePath(Application.ExeName)+'Contrato.doc'); 

     W.NextField; // Próximo campo (Não DEVE ESTAR PROTEGIDO!!!!!)

     W.Bold;

     W.Insert(Edit1.Text); // Inserir uma string

     W.FilePrint;

 

     // Salva o documento

     W.FileSaveAs(ExtractFilePath(Application.ExeName)+'Loco.doc'); 

     W.FileClose;  // Fecha o Arquivo

     W.FileExit;   // Fecha o Word

end;

--------------------------------------------------------------------

MAIS UM EXEMPLO

 

Inclua na seção uses: ComObj

 

{ - Coloque um botão no Form;

  - Altere o evento OnClick do botão conforme abaixo: }

 

procedure TForm1.Button1Click(Sender: TObject);

var

  Word: Variant;

begin

  { Abre o Word }

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

  try

  { Novo documento }

  Word.Documents.Add;

  try

  { Adiciona tabela de 2 linhas e 3 colunas }

  Word.ActiveDocument.Tables.Add(

  Range := Word.Selection.Range,

  NumRows := 2,

  NumColumns := 3);

  { Escreve na primeira célula }

  Word.Selection.TypeText(Text := 'Linha 1, Coluna 1');

  { Próxima célula }

  Word.Selection.MoveRight(12);

  { Escreve }

  Word.Selection.TypeText(Text := 'Linha 1, Coluna 2');

  Word.Selection.MoveRight(12);

  Word.Selection.TypeText(Text := 'Linha 1, Coluna 3');

  Word.Selection.MoveRight(12);

  Word.Selection.TypeText(Text := 'Linha 2, Coluna 1');

  Word.Selection.MoveRight(12);

  Word.Selection.TypeText(Text := 'Linha 2, Coluna 2');

  Word.Selection.MoveRight(12);

  Word.Selection.TypeText(Text := 'Linha 2, Coluna 3');

  { Auto-Formata }

  Word.Selection.Tables.Item(1).Select{ Seleciona a 1º tabela }

  Word.Selection.Cells.AutoFit; { auto-formata }

  { Imprime 1 cópia }

  Word.ActiveDocument.PrintOut(Copies := 1);

  ShowMessage('Aguarde o término da impressão...');

  { Para salvar... }

  Word.ActiveDocument.SaveAs(FileName := 'c:\Tabela.doc');

  finally

  { Fecha documento }

  Word.ActiveDocument.Close(SaveChanges := 0);

  end;

  finally

  { Fecha o Word }

  Word.Quit;

  end;

end;

Observações

Foram usados neste exemplo o Delphi4 e MS-Word97.