Arşiv

Örneğimizde programlarımızda msagent nesnesi ile ofis yardımcılarını kullanacağız. Bir Windows Application açıp ToolBox'ta sağ tıklayıp Choose Items seçeneğini tıklayalım. COM komponentlerinden Microsoft Agent Control komponentini ekleyelim.

Agent Load

1.Şekil: Microsoft Agent Control komponentinin eklenmesi

Biz örneğimizde genie isimli ofis yardımcısını kullandık bu ve daha fazla ofis yardımcısını http://www.microsoft.com/msagent/downloads/user.asp#character  adresinden seçerek indirebilirsiniz.

Daha sonra form üzerine bir text kutusu bir tane de komut butonu ekleyelim.

Agent Form

2.Şekil: Tasarım formu

ToolBox'ımıza Microsoft Agent Control komponenti eklenecektir. Sürükleyip formumuzun üzerine bırakalım. Yukarıdaki şekilde görülen şapkalı adam resmi Agent kontrolümüzdür.

Daha sonra kodumuzu aşağıdaki gibi yazalım;

Public Class Form1

    Dim Genie As AgentObjects.IAgentCtlCharacter

    Const DATAPATH = "genie.acs"

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Genie.Show()

        Genie.Speak(TextBox1.Text)

        Genie.Hide()

    End Sub

 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        AxAgent1.Characters.Load("Genie", DATAPATH)

        Genie = AxAgent1.Characters("Genie")

        Genie.LanguageID = &H409

        TextBox1.Text = "Hello World!"

    End Sub

End Class

 

Proje dosyasının linki:

http://www.volkanaktas.com/PrgDosya/vba/msagent.rar

 

Bu ve diğer karakterlerle ilgili kullanabileceğiniz diğer animasyon ve işlemler için

http://download.microsoft.com/download/2/1/8/2183fc41-9313-4624-9e9e-25d26d0f7e19/docs.zip linkindeki yardım dosyasını kullanabilirsiniz.

Kaynak:MSDN

 

Etiketler : VB.Net VBA
Kategoriler : VB.Net VBA
Yorumlar : 0 Yorum Yorum Yaz

Bir veri tabanından alınan verileri word’a aktarma işlemini yapacağız. Formumuza bir adet text kutusu, bir adet de komut butonu ekleyelim. Daha sonra text kutusunun özelliklerinden data bindings bölümündeki advanced seçeneğine tıklayalım. Açılan pencerede binding bölümünden Add Project Data Source seçeneğine tıklayalım.

Gelen pencerede Database seçeneğini seçip next düğmesine basalım.

 

New Connection düğmesini tıklayalım.

 

Gelen pencerede Microsoft Access Database seçeneğini seçip Continue düğmesine basalım.

 

Gelen pencereden veritabanımızı seçelim ve OK butonuna basalım.

 

Karşımıza ana pencere veri tabanımızın türü, ismi ve yolu yazılı olarak gelecektir. Burada next düğmesine tıklayalım.

Karşımıza veri tabanının projede local olarak yer almasını isteyip istemediğimizi soran bir pencere gelecektir. Bu soruya evet diyelim.

Karşımıza oluşturduğumuz connection string’i kaydetmek isteyip istemediğimizi soran bir pencere gelir.

Gerekli ismi verip Next düğmesine tıkladığımızda karşımıza dataset içerisinde hangi tablo ve alanların kullanılacağının seçildiği bir pencere gelir. Burada kullanmak istediğimiz tablo ve alanları seçerek finish düğmesine basarak veri tabanı bağlama işlemini bitirmiş oluruz.

Formumuzu açıp bir adet komut butonu ekleyelim. İlgili alanı formumuza eklemek için Data menüsünden Show Data Sources ile projemize eklediğimiz veri tabanındaki alanların görüntülendiği Data Sources penceresini görüntüleriz.

Buradan soru alanını fare ile formumuza sürükleyip bıraktığımızda bir label ve text kutusu otomatik olarak oluşturularak gerekli veri bağlantıları kurulacaktır. DataSource penceresinde ki her nesneyi, sağlanan seçenekleri kullanarak sürükle bırak yöntemi ile forma taşıyabilirsiniz.

 

Şimdi kod yazımına geçebiliriz.  

Öncelikle,"System.Data.OleDB" ad uzayını programımıza dahil etmemiz gerekmektedir bunun için kod editörümüzün en üst satırına(ilk satır) aşağıdaki kod satırını yazalım;

 

Imports System.Data.OleDb

 

Daha sonra butonumuzun Click olayına aşağıdaki kod ile "OleDbConnection" nesnesi oluşturalım;

 

 

Dim sorgulama As String = "SELECT DISTINCT soru FROM sorubank"

 

        Dim baglantim As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=D:\vba\vbdotnet\mdb2word\sorubank.mdb;")

 

 

         Bu işlemden sonra,"OleDbConnection" nesnesini kullanarak "yeninesne" isminde  bir "OleDbCommand" oluşturalım ve ikinci satırda veritabanı bağlantımızı aktif hale getirelim;

 

 

Dim yeninesne As New OleDbCommand(sorgulama, baglantim)

 

 baglantim.Open()

 

 

         Şimdi,"verioku" isimli bir "OleDataReader" tanımlayalım bir sonraki satırda "OleDbCommand" nesnesinin "ExecuteReader" metodunu kullanarak tablo yapısını oluşturalım.

 

 

Dim verioku As OleDbDataReader

 

verioku = yeninesne.ExecuteReader()

 

 

         Son olarak "OleDbDataReader" nesnesinin "Read" metodunu kullanarak veritabanımızın önceden belirtmiş olduğumuz tablosundaki veriyi alalım ve yine "OleDbDataReader" nesnesinin "GetString" metodunu kullanarak metin kutusu içerisine yerleştirelim ve veritabanı baglantımızı pasif hale getirerek işlemimizi sonlandıralım.

 

 

 

 While verioku.Read()

 

      TextBox1.Text = TextBox1.Text & verioku.GetString(0) _

 

         & ControlChars.CrLf

 

End While

verioku.close()

 

baglantim.close()

 

 

Sonuç olarak kodumuz şu şekilde olacak:

 

Imports System.Data.OleDb

Public Class Form1

 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim j As Byte

        Dim sorgulama As String = "SELECT DISTINCT soru FROM sorubank"

 

        Dim baglantim As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=D:\vba\vbdotnet\mdb2word\sorubank.mdb;")

 

        Dim yeninesne As New OleDbCommand(sorgulama, baglantim)

 

        baglantim.Open()

 

        Dim verioku As OleDbDataReader

 

        verioku = yeninesne.ExecuteReader()

        j = 0

        While verioku.Read()

            j = j + 1

            SoruTextBox.Text = SoruTextBox.Text & "S-" & j & ")" & verioku.GetString(0) & ControlChars.CrLf

 

        End While

 

        verioku.Close()

 

        baglantim.Close()

    End Sub

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim objWord As Object

        Dim objDocument As Object

        Dim yol As String

 

        objWord = CreateObject("Word.Application")

        objDocument = objWord.Documents.Add

 

        objWord.Visible = True

 

        objDocument.Range.InsertBefore(SoruTextBox.Text)

 

        yol = Application.LocalUserAppDataPath

        objDocument.SaveAs(yol & "\sorular" & ".doc")

 

        ChDir(yol)

 

        objDocument.Close()

        objWord.Quit()

 

        objDocument = Nothing

        objWord = Nothing

        MsgBox("Sorular WORD'a aktarıldı!")

 

    End Sub

End Class

Proje dosyasının linki (İçerisinde veri tabanı dosyası da mevcuttur):

http://www.volkanaktas.com/PrgDosya/vba/mdb2word.rar

Etiketler : VB.Net VBA
Kategoriler : VB.Net VBA
Yorumlar : 0 Yorum Yorum Yaz

Tüpler de listeler gibi bir sayı, yazı ya da nesneyi sabitler ya da değişkenler yolu ile belli bir sırada saklamak için kullanılır. Ancak tüplerin içeriği sabittir değiştirilemez. İçeriğin sadece görüntülenip sabit kalmasını isteyip değiştirilmesini istemiyorsak tüpleri kullanırız. Ayrıca tüplerin içerisinde nesneler de saklanabilir dediğimize göre tüplerin içerisinde herhangi bir listeyi kullanmamız da mümkündür. Listeler [ ] içerisinde saklanırken, tüpler ( ) içerisinde saklanır. 

Örneğin:

bolum=('Bilgisayar','Elektrik','Elektronik')

Bu örneğimize göre elemanlara erişim sağlayalım.

>>> bolum

('Bilgisayar', 'Elektrik', 'Elektronik')

>>> bolum[1]

'Elektrik'

>>> bolum[1:]

('Elektrik', 'Elektronik')

>>> bolum[-1]

'Elektronik'

 

Eleman sayısını bulmak için len komutunu kullanırız.

>>> len(bolum)

3

3 adet elemanımız olduğu için 3 değerini verdi. Eğer elaman sayısı bir olursa o elemanın karakter sayısını verir. Örneğin:

>>> cumle=('Güzel gören güzel düşünür. Güzel düşünen hayatından lezzet alır')

>>> len(cumle)

63

Görüldüğü gibi eleman sayısı bir olduğu için len komutu bize bu elemanın karakter sayısını verdi.

 

Oluşturduğumuz bu tüpten bir değer silemeyiz. Çünkü yukarıda da belirtmiştik. Tüplerin içeriği sabittir. Tüpün içeriğini boşaltmak için şu işlemi yapmalıyız:

>>> bolum=[]

>>> bolum

[]

Görüldüğü gibi içeriğini boşaltmış olduk.

 

Tüpler değişkenlere değer aktarmak için de kullanılabilir.

>>> (bolum,sınıf,numara)=('bilgisayar','11',324567)

>>> bolum

'bilgisayar'

>>> sınıf

'11'

>>> numara

324567

>>> 

Etiketler : Python
Kategoriler : Python
Yorumlar : 0 Yorum Yorum Yaz

Örneğimizde bir listbox'ın içeriğini bir text dosyaya kaydediyoruz. Proje açılışında ise eğer daha önceden oluşturulmuş bir text dosya varsa ve içerisinde değer varsa bu değerleri okuyup text dosya içerisine aktarıyoruz.

Bu örneğimiz için form üzerine bir adet listbox ve ekleme,temizleme ve kaydetme işlemleri için kullanılmak üzere 3 adet buton ekliyoruz.

Kodumuz şu şekilde olacak:

 Public Class Form1

    Private Sub cmdekle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdekle.Click
        Dim sayı As Integer
        sayı = InputBox("Bir Sayı Giriniz")
        ListBox1.Items.Add(sayı)
    End Sub

    Private Sub cmdtemizle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdtemizle.Click
        ListBox1.Items.Clear()
    End Sub
   

Private Sub cmdkaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkaydet.Click
        Dim i
        FileClose(1)
        FileOpen(1, Application.StartupPath & "\liste.txt", OpenMode.Append, OpenAccess.Write)
        For i = 0 To ListBox1.Items.Count - 1
            WriteLine(1, ListBox1.Items(i).ToString)
        Next i
        FileClose(1)
        MsgBox("Liste Kaydedilmiştir")
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            Dim deger
            FileOpen(1, Application.StartupPath & "\liste.txt", OpenMode.Input, OpenAccess.Read)
            Do While Not EOF(1)
                Input(1, deger)
                ListBox1.Items.Add(deger)
            Loop
            MsgBox("Kayıtlar okundu ve uygulandı")
            FileClose(1)
        Catch
            Exit Sub
        End Try
End Sub
End Class
  

Kodumuzu biraz açıklayalım. Önce kaydet düğmesinin kodlarını inceleyelim.

 

FileClose(1) 

satırı ile eğer dosya daha önceden açılmış ise kapatıyoruz.

FileOpen(1, Application.StartupPath & "\liste.txt", OpenMode.Append, OpenAccess.Write)

satırı ile ise dosya açma işlemi yapıyoruz. FileOpen komutunun kullanımı şu şekildedir.  

FileOpen(Dosya no,dosya adı ve yolu,dosya açma modu, dosya üzerinde yapılacak işlem)

Burada Application.StartupPath  komutunu görüyoruz. Bu fonksiyon bize projemizin çalıştığı klasörü verir. Dosyamızı Append yani ekleme modunda açıyoruz. Bu şekilde eğer dosyamız daha önceden oluşturulmamış ise oluşturmamız mümkündür. Dosyamıza kayıt yazmak içinde dosyamızı Write yani yazma modunda açıyoruz.

 

For i = 0 To ListBox1.Items.Count - 1

WriteLine(1, ListBox1.Items(i).ToString)

Next i

komut satırları ile öncelikle 0 dan liste kutusundaki elaman sayısının bir eksiğine kadar bir döngü kuruyoruz. Kayıt sayısının bir eksiği dememizin nedeni döngümüzü 0 dan başlatmış olmamızdır. Çünkü listboxlarda ilk elamanın indeks değeri 0 dır.

Daha sonra Writeline komutu ile 1 nolu dosyamıza listboxdaki sıradaki elamanın değerini ToString parametresi ile yazıya dönüştürerek aktarıyoruz.

Son olarak kaydetme işleminde yine FileClose(1) komutu ile dosyamızı kapatıyoruz.

 

Şimdide dosyadan kayıt okuma işlemine geçelim. Bu işlemi form_load olayında yani formumuzun yüklenme işleminde yapıyoruz.

Dim deger

FileOpen(1, Application.StartupPath & "\liste.txt", OpenMode.Input, OpenAccess.Read)

öncelikle deger adıyla liste kutusundan okuduğumuz değerleri aktarabileceğimiz bir değişken tanımlıyoruz. Daha sonra dosyamızı input modunda yani giriş modunda açarak Read işlemi yani okuma işlemi yapıyoruz.

Do While Not EOF(1)

Input(1, deger)

ListBox1.Items.Add(deger)

Loop

Burada dosya sonu değilken çalışacak bir döngü kuruyoruz. Döngü içerisinde input komutu ile dosyamızdaki satırları okuyup deger değişkenine aktarıyoruz. Daha sonra da bu değer değişkeninin içeriğini listbox'ımıza ekliyoruz.

FileClose(1)

komutu ile de dosyamızdan okuma işlemi bittiği için dosyamızı kapatıyoruz.

Son olarak proje dosyamızın linkini vereyim:

http://www.volkanaktas.com/PrgDosya/vbnet/dosyadanlistboxa.rar

Etiketler : VB.Net
Kategoriler : VB.Net
Yorumlar : 7 Yorum Yorum Yaz

"Söz uçar yazı kalır…"

Aslında “belgelemek” ifadesini kullanırken tereddütlüyüm biraz. Çünkü Türkçede “belgelemek” kavramı daha çok sertifikalamak, geçerliliğini ispat etmek anlamında kullanılıyor. Benim kastetmek istediğim anlamıysa bir şeyleri arşivleme amaçlı olarak belgelere kaydetmek, kayıt altına almak.

Tek başınıza çalışıyorsanız ya da küçük bir ekiple işi yapıyorsanız en çok sıkıntı duyulan bir başlık da dokümantasyon, yani belgelemedir. Normalinde müşteriyle ilk görüşmeden, ilk toplantıdan başlayarak, projenin teslimine kadar sürekli olarak devam edecek bir süreç olan belgeleme, maalesef ülkemizde yazılı iletişim kültürünün zayıf oluşu, söze itimadın ön planda kalışı gibi nedenlerle ikinci plana atılmaktadır. Aslında belki her iki tarafın da yazılı taahhütler, tutanaklar altına imza atmaktan çekinmesini de bu nedenler arasına ekleyebiliriz.
Yazılı çalışmak bir disiplin gerektirir ve hem zaman olarak hem de kaynak ayırmak gerekliliği nedeniyle bir maliyeti vardır. Ancak toplamda getiri ve götürülerine bakıldığında yazılı çalışmanın açık ara kazançlı olduğunu göreceksiniz.

Yazılı çalışmak sizin için, kendi açınızdan önemlidir. Birden çok projeyle çalıştığınızda, büyük projelerde, projenin üzerinde uzunca bir zaman geçtiğinde mutlaka proje hakkında, kod hakkında açıklamalara ihtiyaç duyarsınız. Verinin nasıl tutulacağıyla ilgili yapısal tasarım bilgilerine, kodlamada hangi algoritmaları hangi amaçla yaptığınıza ihtiyacınız olur. Hele ki bir ekiple çalışıyorsanız ya da başka birinin yazdığı kodun bakımını yapıyorsanız ve açıklama satırları/belgeleri yoksa düşünün halinizi.

Yazılı çalışmak müşteri için önemlidir, güven verir. Her ne kadar sizi taahhüt altına alsa da, yapacağınız işleri yazılı olarak verdiğinizde ve tarihlendirdiğinizde müşteriyi disiplin ve profesyonelliğinizle etkilersiniz. Proje boyunca raporlama ve proje tesliminde projenin tamamına ait detaylı bir belge teslimi, müşterinizi fazlasıyla memnun edecektir. Müşteri böylece projenin bakımı konusunda kendini güvende hisseder
Her iki taraf için de proje sözleşmesi de dahil olmak üzere toplantıları karşılıklı imzalarla tutanak altına almak, bilgi aktarımlarını yazılı ortamlar üzerinden mümkün olan en detaylı ve açık biçimde yapmak proje bitiminde mutlu bir sonun alt yapısını hazırlayacaktır.

“Ben size “şöyle şöyle” dedim ama kastettiğim “böyle böyle” bir şeydi.”
(Müşteri)
“Biz yazılımda böyle bir ekran istemiyordum ama!” (Müşteri)
“Yaa patron bu kodu çözemiyorum bir türlü, yeniden yazayım ben yaa.”
(Başkasının kodunda güncelleme yapan bahtsız yazılımcı.)
“Tabii ki uygulamayı aslında geçen hafta teslim etmemiz gerekiyordu fakat…”
(Proje yöneticisi)

Yukarıdaki diyalogları ya bizzat yaşamışsınızdır ya da mutlaka şahit olmuşsunuzdur. Peki bu tip diyalogları en aza indirmek için ne yapmak gerekir? Tabii ki mümkün olduğunca yazılı çalışmaya dikkat etmek, yapılanları belgelemek gerekir.

Peki neleri belgelemeliyiz?

En başta projeyi alışınızla birlikte ilk yapmanız gereken bir proje/ürün tanımı oluşturup, ardından proje ekibi ve kaynaklarını belirleyerek proje planını yapmaktır. Tabii bunların hepsinin yazılı olması en iyisidir.
İletişimi, bilgi alış verişini belgelemeliyiz. Müşteriden gelecek bilgiler belirli bir adrese, daha önceden belirlenmiş bir biçimde gelmeli ve düzenli olarak kayıt edilmeli.

Toplantılar mutlaka tutanakla belgelenmeli ve hatta tutanak herkese okutularak imza alınmalı ki sonradan itirazlar gelmesin.
Yazılım isterleri çözümleme aşaması, isterler, analiz; uygulama mimarisi ve tasarımı, veritabanı yapısı; kodlama ve arayüz taslakları; kod içindeki açıklamalar ve proje türünüze göre daha başka birçok şey…

Sonuçta yazacağınız her satır vaktinizi alacak ama sonrasında ihtiyacınız olduğunuzda kolayca ulaşılabilir olmasını sağlayacaktır. Neleri belgeleyeceğinizi belirlerken bir kıstas olarak en basitinden şunu uygulayabilirsiniz:

Kendinize sorun:
“Daha sonra ben bu projeyi birine devretsem ve bana hiçbir şekilde soru sormadan, sadece hazırladığım belgelerle iş yapacak olsa en az neleri belgelemem gerekir?”

Yeterince ikna olduysanız, her bir proje için bir proje dosyası açmanız gerektiğini farketmişsinizdir. Böylelikle projeyle ilgili tüm belgeler tek bir yerde toplanacak ve değişikliklerin takibi kolay olacaktır. Proje dosyasına proje başlatma belgesi, sözleşme, proje planı, diğer planlar (risk, satınalma vb.), sistem tanımı, tasarım belgeleri, kodlama vb. standartları, tutanaklar ve her türlü yazışmayı ekleyin.

“Söz uçar yazı kalır”

Kadir Çamoğlu

 

Etiketler : Yazılım
Kategoriler : Diğer Konular
Yorumlar : 0 Yorum Yorum Yaz

Programımız bir listbox’a 100 adet rastgele sayı aktarmakta ve bunları daha sonra küçükten büyüğe doğru sıralamaktadır.  Bunun için form üzerine bir adet listbox, iki adet de cmdekle, cmdsirala adlarıyla butonlar eklemeliyiz.

Kodumuz da şu şekilde olacak:

Public Class Form1

    Private Sub cmdekle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdekle.Click

        Dim lstrakamlar As New ArrayList

        Dim rastgele As New Random

        Dim i, j As Byte

 

        ListBox1.Items.Clear()

        lstrakamlar.Clear()

 

        For i = 0 To 99

            lstrakamlar.Add(i)

        Next i

 

     

        For j = 0 To 99

            Dim rakam As Byte = lstrakamlar.Item(rastgele.Next(99) + 1)

            ListBox1.Items.Add(lstrakamlar(rakam))

        Next j

 

    End Sub

 

    Private Sub cmdsirala_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsirala.Click

        Dim l, m, aradeger As Byte

        For l = 0 To 99

            For m = l + 1 To 99

                If ListBox1.Items(l) > ListBox1.Items(m) Then

                    aradeger = ListBox1.Items(l)

                    ListBox1.Items(l) = ListBox1.Items(m)

                    ListBox1.Items(m) = aradeger

                End If

            Next m

        Next l

    End Sub

End Class

 

Burada

Dim lstrakamlar As New ArrayList

Komut satırı ile lstrakamlar adlı yeni bir dizi oluşturduk.

For i = 0 To 99

    lstrakamlar.Add(i)

Next i

 

Komut satırları ile  0 dan 99’a kadar 100 adet sayıyı lstrakamlar adlı dizimize aktardık.

Dim rastgele As New Random

Satırıyla rastgele adıyla rastgele tipte bir değişken tanımladık. Daha sonra

Dim rakam As Byte = lstrakamlar.Item(rastgele.Next(99) + 1)

Komut satırıyla rakam adlı byte tipinde bir değişken tanımlayarak lstrakamlar adlı diziden rastgele şekilde 100 adet sayıyı seçtik ve bu değişkene aktardık.

Sıralama bölümünde ise

For l = 0 To 99

    For m = l + 1 To 99

       If ListBox1.Items(l) > ListBox1.Items(m) Then

         aradeger = ListBox1.Items(l)

         ListBox1.Items(l) = ListBox1.Items(m)

         ListBox1.Items(m) = aradeger

       End If

    Next m

 Next l

 

Komut satırlarında öncelikle iç içe 2 döngü kurulmakta. Bu döngülerden ikincisi birincisinden bir fazla değer almakta. Bunun nedeni önceki değerle sonraki değeri karşılaştırmak için.  Burada önceki değer sonraki değerden büyükse  yer değiştirme işlemi yapılmaktadır. Yer değiştirme işlemi sırasında aradeger isimli bir değişken vasıtası ile yer değiştirme işlemini yapmaktayız. Değerler yer değiştirilmeden önce aradeger değişkenine aktarılmaktadır.

Programımızı çalıştırıp ekle düğmesine bastığımızda aşağıdaki resimde görüldüğü gibi rastgele 100 adet sayı eklenmektedir.

Sırala düğmesine bastığımızda ise sayılar sıralanarak yine aynı listbox içerisine aktarılmaktadır.

Proje dosyamızın linki:

http://www.volkanaktas.com/PrgDosya/vbnet/rastgeledizi.rar

 

 

Etiketler : VB.Net
Kategoriler : VB.Net
Yorumlar : 4 Yorum Yorum Yaz

Örneğimizde üretilen rastgele bir sayıyı kullanıcı tahmin etmeye çalışmaktadır. Kullanıcının 5 defa tahmin hakkı bulunmaktadır. Kullanıcı bu 5 defa tahmin hakkı dolmadan önce yönlendirilmekte ve “küçük sayı giriniz”, “büyük sayı giriniz” şeklinde yönlendirilmektedir. Bu 5 hakkı dolunca “Hakkınız Doldu” şeklinde uyarılmaktadır. Hakkı dolmadan bildiğinde ise “Bravo. Bildiniz” şeklinde uyarılmaktadır.

Formumuzun üzerine cmdtahmin ve cmdyenile ismi ile iki buton, lblMessage adıyla da bir adet label nesnesi ekliyoruz.

Kodumuz ise şu şekilde olacak:

Public Class Form1

    Dim hak, tahmininiz, sayi As Byte

    Private Sub cmdtahmin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdtahmin.Click

        uret()

        If hak = 0 Then cmdtahmin.Enabled = False

        tahmininiz = Val(InputBox("Tahmininizi Giriniz"))

        If (Val(tahmininiz) <= 100) And (Val(tahmininiz) >= 0) Then

            If sayi < 100 Or sayi >= 0 Then

                If tahmininiz < sayi Then

                    lblMessage.Text = "Daha Büyük!" + Str(hak) + " hakkiniz kaldi"

                End If

                If tahmininiz > sayi Then

                    lblMessage.Text = "Daha Küçük!" + Str(hak) + " hakkiniz kaldi"

                End If

                If tahmininiz = sayi Then

                    lblMessage.Text = "Bravo! Bildiniz..."

                End If

                If hak > 0 Then

                    hak = hak - 1

                Else

                    lblMessage.Text = "Sayıyı Bulamadınız. Tutulan sayı= " & sayi

                End If

            End If

        End If

    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        hak = 5

    End Sub

    Private Sub cmdyenile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdyenile.Click

        hak = 5

        lblMessage.Text = "..."

        cmdtahmin.Enabled = True

        Dim rastgele As New Random

        Dim tutulansayi As Integer = rastgele.Next(1, 100)

    End Sub

    Private Sub uret()

        sayi = 0

        Dim rastgele As New Random

        Dim tutulansayi As Integer = rastgele.Next(1, 100)

        sayi = tutulansayi

    End Sub

 

End Class

Programımızda uret alt programı ile rastgele sayı üretme işlemi yapılmaktadır.

Dim rastgele As New Random

 

Satırında rastgele adında bir değişken random olarak yani rastgele değişken tipi olarak tanımlanmaktadır.

Dim tutulansayi As Integer = rastgele.Next(1, 100)

Tutulansayi değişkenine ise 1 ile 100 arasında üretilen rastgele tamsayı atanmaktadır.

Yenile düğmesine basıldığında yine aynı kod satırları ile programdan çıkmadan yeni bir rastgele sayı oluşturulması sağlanmaktadır.

Proje dosyamızın linki:

http://www.volkanaktas.com/PrgDosya/vbnet/sayitahminoyunu.rar 

Etiketler : VB.Net
Kategoriler : VB.Net
Yorumlar : 0 Yorum Yorum Yaz

Örneğimiz bir klasördeki word belgeleri içinde istediğimiz bir kelimeyi aratıp o kelime bulunduğunda belgeyi açarak bulunduğu yeri işaretliyor. Örneğimizi referans kullanma yöntemi ile yaptım. Dolayısı ile Project menüsünden Add Reference seçeneği ile gelen pencereden COM başlığı altından Microsoft Word 11.0 Object Library seçeneği seçip OK tuşuna basıyoruz.

 

Daha sonra formumuza bir adet drivelist nesnesi, bir adet dirlist kontrolü, bir adet filelist kontrolü, iki adet de komut butonu ekleyelim. Ekran tasarımı şu şekilde olacak:

 

Kod ise şu şekilde:

 

Public Class Form1

 

    Private Sub cmdiptal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdiptal.Click

        End

    End Sub

 

    Private Sub DirListBox1_Change(ByVal sender As Object, ByVal e As System.EventArgs) Handles DirListBox1.Change

        FileListBox1.Path = DirListBox1.Path

    End Sub

    Private Sub DriveListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DriveListBox1.SelectedIndexChanged

        DirListBox1.Path = DriveListBox1.Drive

    End Sub

 

    Private Sub cmdtamam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdtamam.Click

        Try

            Dim aranan, belge

            Dim WordApp As Microsoft.Office.Interop.Word.Application 'word uygulamasını tanımlıyoruz

            Dim WordDoc As Microsoft.Office.Interop.Word.Document 'word belgesini tanımlıyoruz

 

            aranan = InputBox("Aranan metni giriniz", "Arama")

            If aranan = "" Then Exit Sub

 

            Me.Hide()

 

            WordApp = CreateObject("Word.Application") 'Word uygulamasını oluşturuyoruz

            WordApp.Visible = True 'word belgesini görünür yapıyoruz

            belge = Dir(FileListBox1.Path & "\*.doc")  'seçilen klasördeki word belgelerini aratıyoruz

            While belge <> ""

                'Klasördeki word belgelerini sırayla açıyoruz

                WordDoc = WordApp.Documents.Open(FileListBox1.Path & "\" & belge)

 

                WordApp.Selection.HomeKey(Unit:=6) 'Belgemizi sonuna kadar seçiyoruz

                'Daha önceden tanımlanmış olan bulma parametrelerini temizliyoruz

                WordApp.Selection.Find.ClearFormatting()

 

                With WordApp.Selection.Find

                    'Bulma parametrelerini tanımlıyoruz

                    .Text = aranan

                    .Forward = True

                    .Wrap = 0

                    .Format = False

                    .MatchCase = False

                    .MatchWholeWord = False

                    .MatchWildcards = False

                    .MatchSoundsLike = False

                    .MatchAllWordForms = False

                End With

 

                'Bulma işlemini başlatıyoruz

                WordApp.Selection.Find.Execute()

                If WordApp.Selection.Find.Found = True Then

                    Exit Sub

                End If

                belge = Dir()

                'Eğer bulunamadı ise belgeyi kapatıyoruz

                If WordApp.Selection.Find.Found = False Then

                    WordDoc.Close() 'Word belgesini kapatıyoruz

                End If

            End While

            If WordApp.Selection.Find.Found = False Then

                WordDoc.Close() 'word belgesini kapatıyoruz

                MsgBox("Aranan metin bulunamadı")

            End If

            WordApp.Quit() 'Word uygulamasını kapatıyoruz

 

            WordDoc = Nothing 'Word belgesini bellekten siliyoruz

            WordApp = Nothing 'Word uygulamasını bellekten siliyoruz

        Catch

            MsgBox("Aranan yazı veya dosya bulunamadı")

            Exit Sub

        End Try

    End Sub

End Class

 

 

selection.HomeKey(Unit:=6, Extend:=0) ifadesi seçimi belgenin başına taşımak ya da genişletmek için kullanılır ve kullanımı şu şekildedir:

   ifade.HomeKey(Unit, Extend)

 

Şu değerler bu ifade içerisinde kullanılabilir.

Eğer   Extend yerine wdExtend ya da 1 yazılırsa seçim genişletilir, wdMove ya da  0 yazılırsa seçim taşınır.

 

Unit ise üzerinde işlem yapılacak birimi belirler ve şu değerleri alabilir:

wdUnits tipleri

Sabit                                            Değer

wdCell                                      12

wdCharacter                              1

wdCharacterFormatting               13

wdColumn                                 9

wdItem                                    16

wdLine                                     5

wdParagraph                             4

wdParagraphFormatting              14

wdRow                                     10

wdScreen                                  7

wdSection                                 8

wdSentence                              3

wdStory                                    6

wdTable                                   15

wdWindow                                11

wdWord                                    2

 

Biz örneğimizde wdStory ya da 6 rakamını kullandık

WdFindWrap işlemi ise aranan metin bulunamazsa ne yapılacağını belirler

 

WdFind tipleri

SAbit                                 Value                     Anlamı

wdFindAsk                   2                      Aramaya devam edilip edilmeyeceği kullanıcıya sorulur.

wdFindContinue          1                      Aramaya belgenin başından veya sonundan devam edilir.

wdFindStop                                   0                                     Arama işlemi bitirilir.

 

Son olarak proje dosyasının linkini vereyim:

http://www.volkanaktas.com/PrgDosya/vba/wordarama.rar

Etiketler : VB.Net VBA
Kategoriler : VB.Net VBA
Yorumlar : 1 Yorum Yorum Yaz

LİSTELER

Bir sayı, yazı ya da nesneyi sabitler ya da değişkenler yolu ile belli bir sırada saklamak için kullanılır. Listeler [ ] içerisinde saklanırlar.

Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']

Ad isimli liste değişkenimize Talha, Enes,Ahmet,Mehmet isimlerini aktardıktan sonra çalıştıralım.

>>Ad

['Talha','Enes']

Görüldüğü gibi liste içerisine aktardığımız elamanlar görüntülendi. Liste içerisindeki elamanlar arasına virgül konularak sıralanır. İndeks numaraları 0’dan itibaren başlar. Yani 0 indeks numaralı eleman listemizde ‘Talha’ adlı elemandır. Liste içerisinde bir elemana erişmek için liste[indeks] şeklinde bir kullanım ile liste içerisindeki elemanlara erişiriz. İndeks bir tam sayı olmalıdır. Tam sayı bir değişken de olabilir.

Ad[1]

'Enes'

Görüldüğü gibi listemizin ikinci elemanı olan ‘Osman’ görüntülendi.

Ad[-1]

'Mehmet'

Listenin sondan birinci elemanını görüntüler.

>>> Ad[-3]

'Enes'

Listenin sondan üçüncü elemanını görüntüler.

Ad[2:]

['Ahmet', 'Mehmet']

Eğer : işaretinden sonrası belirtilmezse listenin sonuna kadar olan kısmını alır.

Ad[:2]

['Talha', 'Enes']

Eğer : işaretinden öncesi belirtilmezse listenin başına kadar olan kısmı alır.

>>> Ad[2:] = ['Ali', 'Veli']

>>> Ad

['Talha', 'Enes', 'Ali', 'Veli']

Görüldüğü gibi istenildiği takdirse listenin elemanlarını başka elemanlarla değiştirmemiz mümkün. Yukarıdaki örnekte listenin 2. Elemanından sonrasını yani Ahmet ve Mehmet isimli elemanları Ali ve Veli isimli elemanlarla değiştirdik.

Listelerimizin öğelerinin her biri birer elemandan oluşacak şeklinde bir zorunluluk yok.  Birden fazla elamandan da oluşabilir. Örneğin

karisikliste = [['Ali','Veli'],['Ahmet','Mehmet']]

print karisikliste

Ekran çıktısı ise aşağıdaki gibidir:

[['Ali', 'Veli'], ['Ahmet', 'Mehmet']]

 

Yaptığımız örneklerdeki listeler hep tek boyutlu dizi şeklide idi. Şimdi örnek olarak üç boyutlu bir dizi şeklinde liste oluşturalım ve bu listenin elemanlarına nasıl erişim sağlanacağını görelim.

ucboyutludizi = [[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]

print ucboyutludizi

komutları ile lisyemizi oluşturduk ve listemizi görüntüleme komutunu verdik. Ekran çıktısı aşağıdaki şekilde olur:

[[[[1], [2]], [[3], [4]]], [[[5], [6]], [[7], [8]]]]

Listemizin elamanlarına sıra ile erişimi ise şu şekilde sağlarız:

print ucboyutludizi[0][0][0]

print ucboyutludizi[0][0][1]

print ucboyutludizi[0][1][0]

print ucboyutludizi[0][1][1]

print ucboyutludizi[1][0][0]

print ucboyutludizi[1][0][1]

print ucboyutludizi[1][1][0]

print ucboyutludizi[1][1][1]

ekran çıktısı aşağıdaki şekilde olacaktır:

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

 

Append Metodu:

Listeye eleman eklemek için kullanılır. Eklenen elemanlar listenin sonuna eklenecektir.

Örnek listemize bir eleman ekleyelim.

>>> Ad.append('Said')

>>> Ad

['Talha', 'Enes', 'Ahmet', 'Mehmet', 'Said']

Görüldüğü gibi Said ismini Ad listemize ekledik ve daha sonra da içeriğini görüntüledik.

 

Insert Metodu:

Listenin istenilen konumuna eleman eklemek için kullanılır.

Ad=['Talha', 'Enes']

print Ad

Ad.insert(1,'Ahmet')

print Ad

komutlarını yazdığımızda aşağıdaki çıktıyı alırız:

['Talha', 'Enes']

['Talha', 'Ahmet', 'Enes']

1 index numarası 2. elemanı temsil ettiği için listenin 2. Sırasına ‘Ahmet’ isimli eleman eklendi.

Ad.insert(-1,'Mehmet')

print Ad

komutlarını verdiğimizde ise şu çıktıyı alırız:

['Talha', 'Mehmet', 'Enes']

-1 index numarası listede sondan bir önceki elemanı temsil ettiği için listede sondan birinci eleman olarak ‘Mehmet’ eklendi.

Remove Metodu:

Listeden eleman silmek için kullanılır.

Eklediğimiz ‘Said’ elemanını listemizden silelim.

>>> Ad.remove('Said')

>>> Ad

['Talha', 'Enes', 'Ahmet', 'Mehmet']

Görüldüğü gibi Ad listemizin içeriğini görüntülediğimizde ‘Said’ isimli elemanın silindiğini görürüz.

Silme işlemini yapmanın diğer bir yöntemi de şu şekildedir:

>>> Ad[0:-1]=[]

>>> Ad

['Mehmet']

Görüldüğü gibi listenin sondan birinci elemana kadar olan elemanlarına boş değer atarak silinmiş oldu.

Listenin tümünü sıfırlamak için ise

>>> Ad=[]

Şeklinde bir metot uygulanabilir.

>>> Ad

[]

Görüldüğü gibi listemizi sıfırlamış olduk.

 

Pop Metodu:

Listenin son elemanını listeden çıkartır.

Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']

print Ad

Ad.pop()

print Ad

komutlarını çalıştırdığımızda aşağıdaki gibi çıktı verir:

['Talha', 'Enes', 'Ahmet', 'Mehmet']

['Talha', 'Enes', 'Ahmet']

Görüldüğü gibi pop komutunu çalıştırdıktan sonra ekran çıktısına baktığımızda  listenin son elemanı olan ‘Mehmet’  isimli elemanın listeden çıkartıldığını görürüz.

 

Count Metodu:

Listedeki bir elemanın tekrar sayısını verir.

Örneğin listedeki Talha isimli elemanın tekrarlanma sayısını bulalım.

>>> Ad.count('Talha')

1

 

Görüldüğü gibi 1 sonucunu döndürecektir. Talha isimli elaman listede 1 defa tekrarlanmıştır.

Belirttiğimiz elaman listede yok ise 0 sonucunu döndürecektir.

>>> Ad.count('Ali')

0

Örneğinde olduğu gibi.

 

Extend metodu:

İki listenin toplanması için kullanılır. Bu işlem için + aritmetiksel operatörünü de kullanabilirsiniz.

>>> Ad=['Talha', 'Enes']

>>> Ad.extend(['Ahmet','Mehmet'])

>>> Ad

['Talha', 'Enes', 'Ahmet', 'Mehmet']

Aynı işlemi

>>> Ad+['Ahmet','Mehmet']

['Talha', 'Enes', 'Ahmet', 'Mehmet']

Şeklinde de yapabiliriz.

 

Index metodu:

Belirtilen elemanın konumunu verir. Liste içindeki elemanların indeksinin 0’dan başladığı unutulmamalıdır. Eğer eleman birden fazla tekrarlanıyorsa ilk bulunulan yeri verir.

Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']

print Ad.index('Enes')

komutlarını çalıştırdığımızda ekran çıktısı olarak 1 değerini verdiğini görürüz. Çünkü Ad listesinin Enes elemanının index değeri 1 dir.

 

Reverse Metodu:

Listenin elemanlarını sondan başa doğru sıralamak için kullanılır.

Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']

print Ad

Ad.reverse()

print Ad

>>>

['Talha', 'Enes', 'Ahmet', 'Mehmet']

['Mehmet', 'Ahmet', 'Enes', 'Talha']

 

Sort Metodu:

Listenin elemanlarını sıralamak için kullanılır. Sıralamada öncelik rakamlarda, sonra harflerdedir.

liste=['Talha', 'Enes', 'Ahmet', 5,'Mehmet',10]

print liste

liste.sort()

print liste

>>>

['Talha', 'Enes', 'Ahmet', 5, 'Mehmet', 10]

[5, 10, 'Ahmet', 'Enes', 'Mehmet', 'Talha']

Örneğimizde görüldüğü gibi sıralama işlemi rakamlardan başlayarak, harflerde de ilk harfine göre sıralandı.

Ayrıca cmp,key ve reverse parametleri de sort fonksiyonunda isteğe bağlı olarak kullanılabilir. Kullanılmadığı takdirde cmp=None, key=None, reverse=None değerlerini alırlar.

 

Aşağıda cmp parametresinin kullanımına bir örnek verilmiştir.

liste=[('Talha',6),('Enes',6),('Ahmet',5),('Mehmet',10)]

print liste

liste.sort(lambda x, y: cmp(x[1],y[1]))

print liste

Örneğimizde  ad ve yaşlardan oluşan iki boyutlu bir dizi şeklinde bir liste tanımlanmıştır. Lambda yöntemi ve cmp parametresini birlikte kullanarak belirttiğimiz alana göre sıralama yaptık.

Ekran çıktısı aşağıdaki gibi olacaktır:

[('Talha', 6), ('Enes', 6), ('Ahmet', 5), ('Mehmet', 10)]

[('Ahmet', 5), ('Talha', 6), ('Enes', 6), ('Mehmet', 10)]

 

sort() metodu sıralamayı yaparken listenin içeriğini değiştirir; eğer listenin değişmemesini, yeni bir sıralı yeni bir listenin oluşmasını istiyorsak sorted fonksiyonunu kullanmalıyız. (Python 2.4 ve sonrası için). Şimdi buna göre son örneğimizi yeniden düzenleyelim:

liste=[('Talha',6),('Enes',6),('Ahmet',5),('Mehmet',10)]

print liste

yeniliste = sorted(liste, cmp=lambda x, y: cmp(x[1],y[1]))

print liste

print yeniliste

ekran çıktımız aşağıdaki şekildeki gibidir:

[('Talha', 6), ('Enes', 6), ('Ahmet', 5), ('Mehmet', 10)]

[('Talha', 6), ('Enes', 6), ('Ahmet', 5), ('Mehmet', 10)]

[('Ahmet', 5), ('Talha', 6), ('Enes', 6), ('Mehmet', 10)]

Görüldüğü gibi liste isimli listemizde bir değişiklik olmamış, yeniliste isimli listemizde ise sıralama işlemi yapılmıştır.

 

Şimdi de reverse parametresini kullanarak bir örnek yapalım:

liste=[('Talha',6),('Enes',6),('Ahmet',5),('Mehmet',10)]

liste.sort()

print liste

liste.sort(reverse=True)

print liste

>>>

[('Ahmet', 5), ('Enes', 6), ('Mehmet', 10), ('Talha', 6)]

[('Talha', 6), ('Mehmet', 10), ('Enes', 6), ('Ahmet', 5)]

İlk sıradaki çıktıda normal bir sıralama işlemi yapılmış, ikincisinde ise reverse parametresi kullanılarak sıralama işlemi yapılmış ve görüldüğü gibi sıralama tersine çevrilerek sondan başa doğru sıralama yapılmıştır.

 

Son parametremiz de key parametresi idi. Bununla ilgili örnekler yapalım:

cumle="Guzel goren guzel dusunur guzel dusunen hayatindan lezzet alir".split()

cumle.sort(key=str.lower)

print cumle

ekran çıktısı ise şu şekilde olacaktır:

['alir', 'dusunen', 'dusunur', 'goren', 'Guzel', 'guzel', 'guzel', 'hayatindan', 'lezzet']

Burada split fonksiyonu cümleyi parçalarına ayırmak için kullanılır.

 

Key parametresinin kullanımına bir başka örnek de şu şekilde:

import operator

liste=['Talha','Enes','Ahmet','Mehmet']

yeniliste = sorted(liste,key=operator.itemgetter(2))

print liste

print yeniliste

>>>

['Talha', 'Enes', 'Ahmet', 'Mehmet']

['Enes', 'Mehmet', 'Talha', 'Ahmet']

Görüldüğü gibi sıralama işlemi listede ikinci sırada olan Enes’den başlayarak yapılmıştır.

 

 Len Metodu:

Listenin eleman sayısını verir.

liste=['Talha','Enes','Ahmet','Mehmet']

print len(liste)

Örneğimiz bize 4 sonucunu verecektir.

Etiketler : Etiket Yok
Kategoriler : Python
Yorumlar : 0 Yorum Yorum Yaz

Belgemize tablo eklemek için aşağıdaki örneği inceleyelim. Formumuza tablo ekle ve kapat isimli iki adet komut butonu ekleyelim ve şu kodları yazalım:

 

Public Class Form1

    Dim objWord As Object 'word programı

    Dim objDocument As Object 'word belgesi

    Dim objselection As Object

    Dim objtable As Object

    Dim objrange As Object

    Const END_OF_STORY = 6

 

    Private Sub cmdkapat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkapat.Click

        Try

            objDocument.Close() 'word belgesini kapat

            objWord.Quit()  'word uygulamasını kapat

 

            objDocument = Nothing 'word belgesini bellekten sil

            objWord = Nothing 'word uygulamasını bellekten sil

 

        Catch

            MsgBox("Önce belge açmanız gerekiyor")

            Exit Sub

        End Try

 

    End Sub

 

    Private Sub cmdtabloekle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdtabloekle.Click

        objDocument = objWord.Documents.Add 'yeni word belgesi açıyoruz.

 

 

        objWord.Visible = True 'word programını görünür hale getiriyoruz.

 

        objselection = objWord.Selection

 

        objselection.TypeText("Tablo 1") 'Tablodan önce Tablo 1 yazısını ekliyoruz

        objselection.TypeParagraph() 'paragrafı seçiyoruz

 

        objRange = objselection.Range

        objDocument.Tables.Add(objRange, 6, 2) '6 satır 2 sütun genişliğinde tablo oluşturuyoruz

        objtable = objDocument.Tables(1) 'Tablomuzu tanımlıyoruz

 

        objselection.EndKey(END_OF_STORY) 'Belgeyi sonuna kadar seçiyoruz

        objselection.TypeParagraph() 'Seçim tipini paragraf olarak belirliyoruz

 

        With objDocument.Range.Tables(1)    ' Tablomuzun genişliğini ayarlıyoruz

            .Columns(1).SetWidth(120, 0)

            .Columns(2).SetWidth(170, 0)

 

            .Rows(1).Cells.Shading.BackgroundPatternColorIndex = 16 'Tablonun ilk satırını parlak gri yapıyoruz

 

            .Rows(1).Range.Bold = True 'İlk satırı koyu yapıyoruz.

 

            .Cell(1, 1).Range.Paragraphs.Alignment = 1 '(1,1) hücresini ortalıyoruz

 

            With objDocument.Range.Tables(1)    ' 'Satırları dolduruyoruz

                .Cell(1, 1).Range.InsertAfter("İl") '1. satır 1. sütun

                .Cell(1, 2).Range.InsertAfter("İlçe")

                .Cell(2, 1).Range.InsertAfter("Diyarbakır")

                .Cell(2, 2).Range.InsertAfter("Ergani")

                .Cell(3, 1).Range.InsertAfter("Mersin")

                .Cell(3, 2).Range.InsertAfter("Merkez")

                .Cell(4, 1).Range.InsertAfter("Ankara")

                .Cell(4, 2).Range.InsertAfter("Merkez")

                .Cell(5, 1).Range.InsertAfter("Şanlıurfa")

                .Cell(5, 2).Range.InsertAfter("Merkez")

                .Cell(6, 1).Range.InsertAfter("Van")

                .Cell(6, 2).Range.InsertAfter("Özalp")

            End With

 

        End With

 

    End Sub

 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        objWord = CreateObject("Word.Application") 'yeni word uygulaması oluşturuyoruz.

    End Sub

End Class

 

Program çalıştırılıp tablo ekle düğmesine basıldığında aşağıdaki gibi bir tablo oluşturulacaktır.

 

Tablo1

İl

İlçe

Diyarbakır

Ergani

Mersin

Merkez

Ankara

Merkez

Şanlıurfa

Merkez

Van

Özalp

 

SetWidth özelliği bir tablodaki sütun genişliklerini ayarlamak için kullanılan metoddur ve kullanımı şu şekildedir:

 

ifade.SetWidth(Sütun genişliği, sitil)

 

ifade ile belirtilen yerde Cell, Cells, Column, veya Columns nesneleri kullanılabilir

 

ColumnWidth : Bir ya da birden fazla sütunun genişliğini nokta cinsinden ayarlar.

Sitil olarak ise şu tanımlamalar kullanılabilir:

wdAdjustFirstColumn :Yalnızca ilk sütunun genişliği belirlenen değere göre ayarlanır.Eğer birden fazla sütun varsa bu sütun genişlikleri sağ kenara göre yeniden ayarlanır.

wdAdjustNone: Seçili olan bütün sütun veya hücrelerin genişlikleri belirlenen değere göre ayarlanır. Seçili olmayan sütunların genişlikleri sağa veya sola gerekli miktarda kaydırılarak otomatik olarak ayarlanır. Varsayılan değer budur.

wdAdjustProportional: Yalnızca ilk sütunun genişliği belirlenen değere göre ayarlanır.Eğer seçili olan birden fazla sütun varsa tablonun sağ kenarına göre ve seçili olmayan sütunlarla seçili olan sütunların genişliklerinin orantılı olarak ölçülendirilmesiyle genişlikleri yeniden düzenlenir. Eğer  yalnızca bir hücre ya da sütun seçili ise tablonun sağ kenarına göre diğer hücre ya da sütunlar orantılı olarak ölçülendirilir.

wdAdjustSameWidth : Bütün sütunlar eşit olacak şekilde ayarlanır.

 

 

Eğer istenirse bu parametreler yerine şu rakamsal ifadeler de kullanılabilir.

wdAdjustFirstColumn  = 2

wdAdjustNone = 0

wdAdjustProportional = 1

wdAdjustSameWidth = 3

 

.Rows(1).Cells.Shading.BackgroundPatternColorIndex satırı ise hücremizin zemin rengini değiştirmek için kullanılır ve şu renk değerlerini alır:

WdColorIndex

wdAuto                      0

wdBlack                     1

wdBlue                       2

wdBrightGreen          4

wdByAuthor             -1

wdDarkBlue               9

wdDarkRed               13

wdDarkYellow          14

wdGray25                  16

wdGray50                  15

wdGreen                    11

wdNoHighlight          0

wdPink                       5

wdRed                       6

wdTeal                       10

wdTurquoise              3

wdViolet                    12

wdWhite                    8

wdYellow                  7

 

.Cell(1, 1).Range.Paragraphs.Alignment satırı ile tablomuzdaki hücrelerin hizalama şeklini belirledik. Herhangi bir yazı ya da paraqrafı hizalamak için de Alignment ifadesi kullanılabilir. Bu ifade şu parametre ve değerleri alır:

 

wdAlignParagraphCenter                  1

wdAlignParagraphDistribute             4

wdAlignParagraphJustify                  3

wdAlignParagraphJustifyHi              7

wdAlignParagraphJustifyLow          8

wdAlignParagraphJustifyMed          5

wdAlignParagraphLeft                      0

wdAlignParagraphRight                    2

wdAlignParagraphThaiJustify           9

 

Proje dosyasının linki:

http://www.volkanaktas.com/PrgDosya/tabloekle.rar

Etiketler : Etiket Yok
Kategoriler : VBA
Yorumlar : 0 Yorum Yorum Yaz

Arama
  Ara
Takvim
<September 2010>
SMTWTFS
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
Tag Bulutu