Bir belge içeriğine bir tablo eklemek.
Belge içeriğindeki bir tablonun hücrelerine metin eklemek.
Bir Document nesnesinin Tables özelliği belgenin tablolar koleksiyonunu temsil eder.
Tables özelliği aslında Tables türü bir koleksiyon nesnesidir.
Tables koleksiyon nesnesine ait Add fonksiyonuyla belgeye yeni bir tablo ekleyebilirsiniz.
Tablo eklemek için kullanacağınız Add fonksiyonu argüman olarak tabloyu yerleştireceğiniz bölgeyi temsil eden Range türü bir nesne ister.
Tabloyu yerleştireceğiniz belli bir konum varsa, Range fonksiyonuyla sıfır uzunluklu bir bölge tanımlayabilirsiniz. Tek yapmanız gereken argüman olarak aynı başlangıç ve bitiş konumlarını vermenizdir.
Yeni tablonun satır ve sütun sayılarını da ikinci ve üçüncü argümanlar olarak verebilirsiniz. Fonksiyon sonucu yeni tabloyu temsil eden bir Table nesnesidir.
Tahmin edeceğiniz gibi, Add fonksiyonu sonucunu hemen kullanıma koymanızı önermiyoruz. Yeni tabloya sonraki bir komutta sıra numarasıyla erişmeniz daha doğru olacaktır.
Tables özelliğine sıra numarası vererek seçtiğiniz bir belge tablosuna erişebilirsiniz.
Alacağınız sonuç Table türü bir nesnedir.
Table nesnesinin Cell fonksiyonuyla seçtiğiniz bir tablo hücresine erişebilirsiniz. Argüman olarak
Row ile hücre satır numarasını,
Column ile de hücre sütun numarasını verirsiniz.
Eriştiğiniz hücre bir Cell nesnesidir.
Eriştiğiniz hücrenin içerik bölgesine Range özelliğinden erişirsiniz.
Hücrenin içerik bölgesine metin, paragraf sonu, vb. ekletmek için Range nesnesine ait özellik ve fonksiyonları kullanabilirsiniz.
Hücre içeriğindeki metni bir kerede belirlemek için de yine Range nesnesine ait Text özelliğini kullanabilirsiniz.
Hücre metinlerinde yazı biçimlendirmek için de Range nesnesinin Font özelliğini kullanırsınız.
Boş veya içeriği olan bir Word belgesi açın.
Bu belgeye ait “ThisDocument” VBA projesinde bir altyordam yaratın.
Tablo konumu belirlemek için Range türü bir nesne tanımı ekleyin:
Dim tabloKonum As Range
Bölgeyi Add fonksiyonuna argüman iletirken de oluşturabilirsiniz; o zaman böyle bir aracı nesneye gerek olmayacaktır.
Range fonksiyonuyla, diyelim belge içeriği sonunda başlayıp biten, sıfır uzunluklu bir bölge oluşturun:
Set tabloKonum = Me.Range(Me.Content.End - 1, Me.Content.End - 1)
Belge içerik bölgesini temsil eden Content özelliğine ait End özelliği içerik bölgesinin bitiş konumuna karşılık gelir, ama bu konum –tıpkı bir paragraf bölgesinin bitişindeki paragraf sonu karakteri gibi- metin ekleyebileceğiniz bölgenin dışında kalır. Bu nedenle belge içeriğine ekleme yapabileceğiniz son konum aslında End ile erişeceğiniz bitiş konumundan bir önceki konumdur. Bu Range fonksiyon çağrısı argümanlarındaki -1’lerin anlamı budur.
Yeni bir tablo ekleyen Add fonksiyonu çağrısında bu bölge referansını ilk argüman olarak kullanın:
Me.Tables.Add Range:=tabloKonum, NumRows:=8, NumColumns:=2
Tabloya erişmenizi sağlayacak bir Table nesnesi tanımlayın:
Dim tablo As Table
Bu nesneyle seçtiğiniz bir tabloya sıra numarasıyla erişin:
Set tablo = Me.Tables(1)
Tablonun seçtiğiniz bir hücresine erişmek için bir Cell nesnesi tanımlayın:
Dim hucre As Cell
Bu nesneyi kullanarak satır ve sütun numaralarını verdiğiniz bir hücreye erişin:
Set hucre = tablo.Cell(1, 1)
Bu hücre içeriğindeki metni belirleyecek bir komut ekleyin:
hucre.Range.Text = "1. Sütun Başlığı"
Dilerseniz, hücre içeriğinde yazı biçimlendirmesi yapın:
hucre.Range.Font.Bold = True
Bu son iki adımı içeriğine istediğiniz her hücre için tekrarlayın.
Kaynak Dosya: “TabloHucrelerineMetinEklemek.docm”
Unutmayın; kitap veya ekran satırına sığmayan komut satırları alta sarkmış olabilir. Siz onları tek satır olarak yazacaksınız!
Sub TabloHucrelerineMetinEkleme()
Dim tabloKonum As Range
Set tabloKonum = Me.Range(Me.Content.End - 1, Me.Content.End - 1)
Me.Tables.Add Range:=tabloKonum, NumRows:=8, NumColumns:=2
Dim tablo As Table
Set tablo = Me.Tables(1)
Dim hucre As Cell
Set hucre = tablo.Cell(1, 1)
hucre.Range.Text = "Gün"
hucre.Range.Font.Bold = True
Set hucre = tablo.Cell(1, 2)
hucre.Range.Text = "Satış"
hucre.Range.Font.Bold = True
Dim i As Integer
Dim satis As Currency
For i = 1 To 7
Set hucre = tablo.Cell(i + 1, 1)
hucre.Range.Text = WeekdayName(i)
Set hucre = tablo.Cell(i + 1, 2)
satis = 1000 + 4000 * Rnd()
hucre.Range.Text = FormatCurrency(Expression:=satis,
NumDigitsAfterDecimal:=2)
Next
End Sub
Satış gelirini para değeri şeklinde metne dönüştürmek için FormatCurrency fonksiyonunu kullandık. Bu fonksiyon metne dönüştüreceği değeri Expression argümanıyla, ve göstereceği ondalık rakam sayısını da –ki bu örnekte kuruş haneleri oluyor- NumDigitsAfterDecimal argümanıyla alır.