Mengcopy baris tertentu dari MS Word memakai Delphi

September 30, 2007

Suatu saat ketika menggunakan Delphi, kita ingin mengcopy baris tertentu dari dokumen MS Word ke dokumen yang lain, berikut adalah kode untuk proses tersebut, dimisalkan area yang akan dicopy adalah baris 5 sampai baris 14 :

uses ClipBrd, ComObj, Word2000;{$R *.dfm}
procedure TForm1.prosesCopy;
var FileName1,FileName2 : OleVariant;
Range : Variant;
WordApp: Variant;
NumPars,i : integer;
begin
Clipboard.Clear;
FileName1:=ExtractFilePath(Application.ExeName)+'First.doc';
FileName2:=ExtractFilePath(Application.ExeName)+'Second.doc';
try
WordApp := CreateOleObject('Word.Application');
WordApp.Visible := False;
WordApp.Documents.Open(
FileName1,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam);
Range := WordApp.Documents.Item(1).Range(
WordApp.Documents.Item(1).Paragraphs.Item(5).Range.Start,
WordApp.Documents.Item(1).Paragraphs.Item(14).Range.End);
Range.Copy; WordApp.Documents.Open(
FileName2,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam);
NumPars := WordApp.Documents.Item(1).Paragraphs.Count;
WordApp.Documents.Add;
Range := WordApp.Documents.Item(1).Range(
WordApp.Documents.Item(1).Paragraphs.Item(1).Range.Start,
WordApp.Documents.Item(1).Paragraphs.Item(1).Range.End);
for i := 1 to 2 do WordApp.Documents.Item(1).Paragraphs.Add;
Range.Paste;
WordApp.Documents.Item(1).SaveAs(
ExtractFilePath(Application.ExeName)+'Third.doc');
except
end;
Clipboard.Clear;
WordApp.Documents.Item(1).Close(wdDoNotSaveChanges);
WordApp.Quit;
ShowMessage('Proses Selesai');
end;

2 Responses to “Mengcopy baris tertentu dari MS Word memakai Delphi”

  1. gamal febri Says:

    nanya nech mas, cuma beda kasus
    misalnya saya punya 2 buah memo dan 1 buah button
    jadi ketika button saya klik
    misalnya isi dari memo1 baris ke 2 – 7 pindah ke momo2,
    setelah diklik lagi baris 8-15 yang pindah tanpa menghapus
    baris 2-7, gimana skripnya ya mas ???

  2. ctrlf9 Says:

    baris dari memo1 bisa diakses dengan semisal s:=Memo1.Lines.Strings[0]; trus ditambahkan ke memo2 seperti Memo2.Lines.Add(s);


Leave a Reply