Jump to content

Vb.net Ile Word'e HÜkmedİn


wmismail

Recommended Posts

WORD içinde Arama Yapma

Word içince arama işlemi Find objesi tarafından yapılmaktadır. Find objesi ise hem Selection hem de Range objesinin bir elemanıdır. Böylelikle iki farklı şekilde arama yapma imkânı verir.

Selection Objesi ile arama yapmak için;

Public Sub SelectionArama (ByVal AranacakDeger As String)

WordApp.Documents.Open("c:\test.doc")

' Dokümanın en basına gidiliyor.

WordApp.Selection.HomeKey(Word.WdUnits.wdStory, Word.WdMovementType.wdMove)

Dim Arama As String = AranacakDeger

Dim buldum As Word.Find = WordUygumama.Selection.Find

buldum.ClearFormatting() 'Önceden yapılmış aramayla oluşan formatları temizler.

buldum.Text = buldum

'Execute() komutu AranacakDeger string ifadesini arar. Ve True veya False olarak döner.

If buldum.Execute() Then

MessageBox.Show(AranacakDeger & " Sonuç Bulundu!")

Else

MessageBox.Show(AranacakDeger & " Aradığınız Kriterde Sonuç Bulunamadı!")

End If

End Sub

Peki simdi aynı işlemi birde Range objesiyle yapalım;

Public Sub Range Arama(ByVal AranacakDeger As String)

Dim uygulamam As Word.Document

uygulamam = WordApp.Documents.Open("c:\deneme.doc")

Dim range As Word.Range = uygulamam.Paragraphs.Item(3).Range

Dim buldum As Word.Find = range.Find

buldum.ClearFormatting()

buldum.Text = Text

If buldum.Execute() Then

MessageBox.Show(AranacakDeger & " Sonuç Bulundu!")

Else

MessageBox.Show(AranacakDeger & " Aradığınız Kriterde Sonuç Bulunamadı!")

End If

End Sub

Yazdıkça aklıma bir sürü şey geliyor.

Şimdide bir örnekle Varolan bir tabloyu sayfanın sonuna kopyalayalım:

WordApp.ActiveDocument.Tables(2).Range.Copy() ‘Word belgemdeki 2. tablomu kopyalıyorum

dokuman.Bookmarks("\endofdoc").Select() ‘ Sayfanın sonuna range objesi ile gidiyorum

WordApp.Selection.Paste() ‘ Ve kopyaladığım tabloyu sayfanın sonuna yapıştırıyorum

Son örnek ve bundan sonrası size kalmış:

Bu örnekde sayfamızda bulunan ;

Tarih

Date

##Tarih##

Subject

Konu

Fiyat Teklifi

Teklif No.

Proposal Nr.

##TeklifNo##

Kimden

From

##Kimden##

Firma

Firm

##Kime##

Kime

To

##Yetkili##

Faks

Fax Nr.

##Faks##

Telefon

Phone Nr.

##Telefon##

Sayfa Sayısı

Nr. Of Pages

##Sayfa##

Tablodaki verileri veritabanında çektiğimiz değerler ile doldurma.

Sub tablodoldurma()

sqlstr = "Buraya sorgunuzu yazın"

clsCon.Open()

cmd = New SqlCommand(sqlstr, clsCon)

dr = cmd.ExecuteReader

While dr.Read

AraVeDegistir("##Kime##", IIf(IsDBNull(dr.Item(1)), String.Empty, dr.Item(1)))

AraVeDegistir("##Faks##", IIf(IsDBNull(dr.Item(2)), String.Empty, dr.Item(2)))

AraVeDegistir("##Telefon##", IIf(IsDBNull(dr.Item(3)), String.Empty, dr.Item(3)))

AraVeDegistir("##Yetkili##", IIf(IsDBNull(dr.Item(4)), String.Empty, dr.Item(4)))

AraVeDegistir("##Kimden##", IIf(IsDBNull(dr.Item(5)), String.Empty, dr.Item(5)))

End While

dr.Close()

clsCon.Close()

End Sub

Friend Sub AraVeDegistir(ByVal srcText As String, ByVal rpcText As String)

With WordApp.Selection.Find

.ClearFormatting()

.Text = srcText

With .Replacement

.ClearFormatting()

.Text = rpcText

End With

.Execute(Replace:=Word.WdReplace.wdReplaceAll)

End With

End Sub

Bundan sonrası size kalmış. Hayal edin, sıkılmayın ve yapın.

Hoşça kalın, Sağlıkla kalın.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...