1. Reklam


    1. joysro
      ledas
      jungler
      keasro
      zeus
      karantina

Visual Basic 6 ve VB .NET ile VBA


  1. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Microsoft Visual Basic, Visual Basic .NET ve VBA
    Bu bölümde İnşaAllah bir yazı dizisi halinde Visual Basic ve Visual Basic .Net ile VBA kullanımını başlangıçtan ileri seviyelere kadar sürdürmeye çalışacağım.

    VBA (Visual Basic for Application) ofis uygulamalarını geliştirebilmek ve özelleştirebilmek için kullanılan bir ortak dildir. Bu sayede kullanıcılar VBA’ya destek veren ofis ürünleri (Word, Excel, Powerpoint,Access gibi), Microsoft Messenger, Autocad gibi bir çok programı özelleştirebilir ya da geliştirebilir. Ben bu bölümde bu programların içerisinden program yazmak yerine Visual Basic içerisinden program yazma yöntemini izleyeceğim.

    Visual Basic, Visual Basic .Net veya diğer .NET ailesi ile VBA(Visual Basic for Application) ile program yazmanın başlıca üç metodu vardır.

    Birinci yöntemde referans tanımlama yöntemi kullanılır. Bu yöntemde yazılan programlar versiyon bağımlı olacaktır. Dolayısıyla ofis 2000 için yazılan bir program ofis 2003 için çalışmayacaktır.
    İkinci yöntemde ise referans kullanmaya gerek yoktur. Dolayısıyla programlarımız versiyon bağımsız olarak çalışacaktır.
    3. yöntem ise yalnızca .NET ailesi ile kullanılan VTSO (Visual Studio Tools For Office ) isimli hazır bir ofis yazılımı geliştirme ortamıdır.

    Giriş olarak her üç yöntemle de basitçe bir word uygulaması yapalım.
    Öncelikle 1. yöntem olan referans tanımlama yöntemi kullanalım. Bu işlemi Visual Basic 6.0 ile nasıl yaparız. Project menüsünden References seçeneğini tıklayalım. Gelen pencereden kullandığımız ofis sürümüne uygun olarak Microsoft Word 11.0 Object Library seçeneğini seçip OK tuşuna basıyoruz. Daha sonra formumuzun kod penceresine şu kodları ekliyoruz:

    Private Sub Form_Load()
    Dim WordApp As Word.Application ‘word uygulaması
    Dim WordDoc As Document ‘word belgesi
    Set WordApp = CreateObject("Word.Application") ‘word nesnesi oluşturuyoruz
    WordApp.Visible = True ‘word uygulamamızı görünür yapıyoruz
    Set WordDoc = Documents.Add ’Yeni belge oluşturuyoruz
    End Sub

    Bu işlemi Visual Basic .NET ile nasıl yaparız. Bir de ona bakalım.Bir Windows application açıyoruz. Daha sonra 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çilip OK tuşuna basıyoruz. Elbette kullandığınız word programının sürümüne göre buradaki 11 rakamı değişecektir.

    Daha sonra form üzerine bir komut butonu ekleyerek text özelliğini ‘yeni belge oluştur’ şeklinde değiştiriyoruz. Formumuzun tanımlama kısmında WordApp ve WordDoc nesnelerimizi tanımlıyoruz. WordApp word uygulaması, WordDoc ise word belgesidir.
    Dim WordApp As New Word.Application()
    Dim WordDoc As New Word.Document()

    Daha sonra komut butonu içerisine şu kodu ekliyoruz;

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    WordApp = CreateObject("Word.Application")
    WordDoc = WordApp.Documents.Add
    WordApp.Visible = True
    End Sub

    WordApp = CreateObject("Word.Application") satırıyla word uygulamamızı açıyoruz..

    WordDoc = WordApp.Documents.Add satırıyla yeni bir word belgesi oluşturuyoruz.

    WordApp.Visible = True satırıyla oluşturduğumuz word belgesini görüntülüyoruz.
     
  2. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Gelelim 2. yöntemimize. Öncelikle yine Visual Basic 6.0 ile başlayalım.

    Private Sub Form_Load()
    Dim objWord As Object ‘word programı

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

    objWord.Documents.Add ‘yeni word belgesi açıyoruz.

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

    End Sub

    VB. NET de de aynı kod çalışmaktadır.
     
  3. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    3. yöntemimiz olan VSTO (Visual Studio Tools For Offıce ) ise yalnızca .NET altında kullanılabilmektedir.

    VSTO kurulumu için öncelikler şunlar gereklidir:

    Ofis 2003 service pack1 http://www.microsoft.com/downloads/deta ... laylang=tr adresinden yükleyebilirsiniz.

    En az .NET framework 1.1.
    http://www.microsoft.com/downloads/deta ... laylang=en adresinden yükleyebilirsiniz.

    VSTO yardım dosyalarının kurulabilmesi için MSDN Library

    VSTO’nun beta sürümünü ise http://www.microsoft.com/downloads/deta ... layLang=en adresinden yükleyebilirsiniz.

    VSTO kurulumundan sonra ofis şablonları otomatik olarak Visual Studio .Net içine eklenir. Visual Studio .Net ortamında New Project dediğiniz zaman Visual Basic .Net ve C# için kullanılabilir durumda olduğunu göreceksiniz.

    Kullanıcı seviyesine baktığımızda, oluşan ofis uygulamasının normal bir ofis uygulamasından farkı yoktur. Aynı şekilde ofis uygulamasını kullanır. Göreceğimiz tek farklı şey geliştirmeler olacaktır. Ancak arka tarafa baktığımızda ofis dökümanı (geliştirme yapılmış) açıldığında ofis common language runtime’ı başlatır ve ilgili assembly’i çağırır. Yazılan uygulamaya göre de ilgili kodlar çalıştırılır.

    VSTO öncesinde de ofis için uygulamalar geliştirebiliyorduk. Bu ortama VBA deniliyor. VBA’da ofis için uygulama geliştirme anlamında yardımcı bir ortam sağlamakta ancak VSTO’ya göre güvenlik ve dağıtım anlamında eksiklikleri olduğu görülmektedir. VBA halen desteklenmeye devam edilmektedir.

    VBA ile VSTO’yu şu şekilde karşılaştırabiliriz;

    VSTO VBA
    Geliştirmeler ofis dökümanı Geliştirmeler ofis dökümanı
    içinden ayrılmış durumdadır. içindedir.

    .Net Framework API’leri Sadece ofis obje modelleri ve
    kullanılabilir. VBA fonksiyonelliği kullanılır.

    Yüksek seviyede güvenlikde dizayn Limitli güvenlik vardır.
    edilmiştir.

    Birçok dağıtım opsiyonu vardır. Limitli dağıtım opsiyonu vardır.

    Visual Studio .Net’in tüm Makro kaydı, yazımı ile ya da
    özelliklerini kullanır. sınırlı komutlar yazımı ile
    kullanılabilen limitli bir
    geliştirme ortamı vardır.

    İstemci makinesinde .Net Framework İstemci makinesinde sadece ofis
    ve Ofis gereklidir. gereklidir.
     
  4. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Şimdilik projelerimizde ikinci yöntem olan dll kulanmadan proje yazma yöntemini kullanacağız. İlk projemizde word uygulamamızı yalnızca açmakla yetinmiştik. Şimdi bu örneğimizi biraz daha geliştirelim.

    Yeni bir proje açalım ve iki adet command buton ekleyelim.Birinci buton word belgemizi açmak ikincisi ise kapatmak için olsun ve şu kodları formumuza yazalım:

    Dim objWord As Object ’word programı
    Dim objDocument As Object

    ‘Üstteki iki tanımlamamızı formun general declerations bölümünde yapıyoruz ki formun bütününde geçerli olsun

    Private Sub Command1_Click() ‘word belgesi açmak için kullanacağımız buton

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

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

    End Sub

    Private Sub Command2_Click() ‘word belgesini kapatmak için kullanacağımız buton

    objDocument.Close ‘word belgemizi kapatıyoruz
    objWord.Quit ‘word uygulamamızı kapatıyoruz

    Set objDocument = Nothing ‘word belgemizi bellekten siliyoruz
    Set objWord = Nothing ‘word uygulamamızı bellekten siliyoruz
    End Sub

    Private Sub Form_Load()
    Set objWord = CreateObject("Word.Application") ’Form yüklenirken word uygulamasını oluşturuyoruz.
    End Sub

    Programımızı çalıştırdığımızda birinci butona tıkladığımızda yeni bir word belgesi açılacak, ikinci butona tıkladığımızda ise kapatılacaktır.
     
  5. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Bu örneğimize bir de kayıt olayını ve hata kontrolünü de ekleyelim. Çünkü eğer bir belge açılamadı ise kayıt ya da kapatma olayını yapmaya kalktığımızda hata verecektir.

    Kodu ise Visual Basic 6 ile şu şekilde olur:

    Kodu ise şu şekilde:
    Dim objword as Object
    Dim objDocument As Object
    Private Sub cmdbelgekapa_Click()
    On Local Error GoTo hata ‘oluşan yerel bir hata da hata alt programına git
    objDocument.Close ‘word belgesini kapat
    objWord.Quit ‘word uygulamasını kapat

    Set objDocument = Nothing ‘word belgesini bellekten sil
    Set objWord = Nothing ‘word uygulamasını bellekten sil

    hata:
    Select Case Err ‘oluşan hatanın koduna göre seçim yap
    Case 91: MsgBox "Önce belge açmanız gerekiyor"
    End Select
    Exit Sub ‘alt programdan çık
    End Sub

    Private Sub cmdyeniac_Click()
    Set objDocument = objWord.Documents.Add ’yeni word belgesi açıyoruz.

    objWord.Visible = True ’word programını görünür hale getiriyoruz.
    End Sub

    Private Sub Command3_Click()
    On Local Error GoTo hata

    objDocument.save ‘belgeyi kaydet

    hata:
    Select Case Err
    Case 91: MsgBox "Önce belge açmanız gerekiyor"
    End Select
    Exit Sub
    End Sub

    Private Sub Form_Load()
    Set objWord = CreateObject("Word.Application") ’yeni word uygulaması oluşturuyoruz.
    End Sub
     
  6. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Uygulamamıza bir de daha önceden kaydedilmiş olan belgeleri açma özelliği ekleyelim.

    Önce Visual Basic 6 ile nasıl oluyor onu yapalım.

    Öncelikle belge açma penceresini görüntüleyebilmemiz için common dialog nesnesini eklememiz gerekiyor. Bunun için projects menüsünden components seçeneği ile gelen pencereden Controls başlığı altındaki Microsoft Common Dialog control seçeneğini işaretlemek ya da Browse seçeneği ile comdlg32.ocx dosyasını elle seçerek tamam düğmesine basarak toolbox penceresine common dialog nesnesini ekleyebiliriz.

    Daha sonra nesnemizi projemize ekleyelim. Formumuza bir buton ekleyelim ve ismini cmdbelgeac verelim. Butonumuza şu kodları yazıyoruz:

    Private Sub cmdbelgeac_Click()
    CommonDialog1.DialogTitle = "Word belgesi Seçiniz"
    CommonDialog1.FileName = ""
    CommonDialog1.Filter = "Doc(*.doc)|*.doc|Rtf (*.rtf)|*.rtf"
    CommonDialog1.ShowOpen
    If CommonDialog1.FileName <> "" Then
    Set objDocument = objWord.Documents.Open(CommonDialog1.FileName)
    objWord.Visible = True
    End If
    End Sub

    VB.NET ile ise şu şekilde yapıyoruz:
    Öncelikle belge açma penceresini görüntüleyebilmemiz için OpenFileDialog nesnesini eklememiz gerekiyor. Daha sonra formumuza bir buton ekleyelim ve ismini cmdbelgeac verelim. Butonumuza şu kodları yazıyoruz:

    Private Sub cmdbelgeac_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbelgeac.Click
    OpenFileDialog1.Title = "Belge seçiniz..."
    OpenFileDialog1.Filter = "Word Belgeleri (*.doc)|*.doc|Zengin Metin Biçimi (*.rtf)|*.rtf"
    OpenFileDialog1.FilterIndex = 1

    If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    MsgBox("Dosya seçilmedi")
    Else
    objDocument = objWord.Documents.Open(OpenFileDialog1.FileName)
    objWord.Visible = True
    End If
    End Sub
     
  7. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Şimdiki örneğimizde ise bir word belgesi açarak önizleme yapalım
    Visual Basic 6 kodu şu şekilde olacak:
    Öncelikle common dialog nesnesini ekleyelim. Ve formumuza 3 adet buton ekleyelim. Biri belge açma, biri önizleme biri de kapatma için olsun. Kod ise şu şekilde olacak:

    Dim objWord As Object ’word programı
    Dim objDocument As Object
    Private Sub cmdbelgeac_Click()
    CommonDialog1.DialogTitle = "Word belgesi Seçiniz"
    CommonDialog1.FileName = ""
    CommonDialog1.Filter = "Doc(*.doc)|*.doc|Rtf (*.rtf)|*.rtf"
    CommonDialog1.ShowOpen
    If CommonDialog1.FileName <> "" Then
    Set objDocument = objWord.Documents.Open(CommonDialog1.FileName)
    objWord.Visible = True
    End If
    End Sub
    Private Sub cmdbelgekapa_Click()
    On Local Error GoTo hata
    objDocument.Close
    objWord.Quit

    Set objDocument = Nothing
    Set objWord = Nothing

    hata:
    Select Case Err
    Case 91: MsgBox "Önce belge açmanız gerekiyor"
    End Select
    Exit Sub
    End Sub

    Private Sub cmdonizleme_Click()
    objWord.WindowState = wdWindowStateMaximize ‘word penceresini tam ekran yapıyoruz
    objWord.Visible = True
    objWord.Activate
    objDocument.PrintPreview
    End Sub

    Private Sub Form_Load()
    Set objWord = CreateObject("Word.Application") ’yeni word uygulaması oluşturuyoruz.
    End Sub

    WindowState özelliği word penceremizin ekran boyutunu belirler ve şu değerleri alabilir:

    wdWindowStateNormal veya 0 değeri
    wdWindowStateMaximized veya 1 değeri
    wdWindowStateMinimize veya 2 değeri


    VB. NET ile ise şu şekilde olacak:
    Öncelikle OpenFileDialog nesnesini ekleyelim. Ve formumuza 3 adet buton ekleyelim. Biri belge açma, biri önizleme biri de kapatma için olsun. Kod ise şu şekilde olacak:

    Public Class Form1
    Dim objWord As Object ’word programı
    Dim objDocument As Object
    Private Sub cmdbelgekapa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbelgekapa.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 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

    Private Sub cmdbelgeac_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbelgeac.Click
    OpenFileDialog1.Title = "Belge seçiniz..."
    OpenFileDialog1.Filter = "Word Belgeleri (*.doc)|*.doc|Zengin Metin Biçimi (*.rtf)|*.rtf"
    OpenFileDialog1.FilterIndex = 1

    If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    MsgBox("Dosya seçilmedi")
    Else
    objDocument = objWord.Documents.Open(OpenFileDialog1.FileName)
    objWord.Visible = True
    End If
    End Sub

    Private Sub cmdonizleme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdonizleme.Click
    objWord.WindowState = 0
    ’word penceresini tam ekran yapıyoruz
    objWord.Visible = True
    objWord.Activate()
    objDocument.PrintPreview()
    End Sub
    End Class

    WindowState özelliği word penceremizin ekran boyutunu belirler ve şu değerleri alabilir:

    Normal pencere için 0 değeri
    Tam ekran yapmak için 1 değeri
    Simge durumuna küçültmek için 2 değeri

    görüldüğü gibi WindowState özelliği VB6 da aldığı string değerlerini alamıyor burada.
     
  8. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Şimdi de belgemize yazı eklemeye bakalım
    Formumuza bir text kutusu 2 adet de komut butonu ekleyelim. Bir komut düğmesine basarak text kutusuna girdiğimiz yazıyı word belgesine çeşitli formatlarda ekleyeceğiz. Diğer komut butonu ise belgeyi kapatacak. Ayrıca belgemizin dilini tespit ederek bunu da text kutusuna yazacağız.

    VB 6.0 ile kod şu şekilde olacak:

    Dim objWord As Object ’word programı
    Dim objDocument As Object
    Dim objselection As Object
    Const END_OF_STORY = 6
    Private Sub cmdbelgekapa_Click()
    On Local Error GoTo hata
    objDocument.Close
    objWord.Quit

    Set objDocument = Nothing
    Set objWord = Nothing

    hata:
    Select Case Err
    Case 91: MsgBox "Önce belge açmanız gerekiyor"
    End Select
    Exit Sub
    End Sub
    Private Sub cmdekle_Click()
    Dim dil

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

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

    Set objselection = objWord.Selection

    If Not Text1.Text = "" Then
    With objDocument.Paragraphs(1)
    .Alignment = wdAlignParagraphCenter
    End With
    With objselection.Font
    .Name = "Times New Roman" ’yazı tipini değiştiriyoruz
    .Size = 14 ’yazı boyutunu değiştiriyoruz
    .Underline = True ’yazıyı altı çizili yapıyoruz
    End With
    objselection.boldrun ’yazıyı kalın yapıyoruz
    objselection.TypeText Text1.Text ’Tablodan önce Tablo 1 yazısını ekliyoruz
    objselection.TypeParagraph ’paragrafı seçiyoruz
    objselection.boldrun ’yazının kalınlık özelliğini kaldırıyoruz
    objselection.TypeText Text1.Text ’Tablodan önce Tablo 1 yazısını ekliyoruz

    dil = objselection.languageID
    If dil = 1055 Then
    Text1.Text = Text1.Text & " dil Türkçe"
    Else
    If dil = 2057 Then
    Text1.Text = Text1.Text & " dil İngiltere İngilizcesi"
    Else
    If dil = 1033 Then
    Text1.Text = Text1.Text & " dil Amerikan İngilizcesi"
    End If
    End If
    End If

    End If
    End Sub

    Private Sub Form_Load()
    Set objWord = CreateObject("Word.Application") ’yeni word uygulaması oluşturuyoruz.
    End Sub


    VB.NET ile kodumuz şu şekilde olacak

    Public Class Form1
    Dim objWord As Object ’word programı
    Dim objDocument As Object
    Dim objselection 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 cmdyaziekle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdyaziekle.Click
    Dim dil

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

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

    objselection = objWord.Selection

    If Not TextBox1.Text = "" Then
    With objDocument.Paragraphs(1)
    .Alignment = 1
    End With
    With objselection.Font
    .Name = "Times New Roman" ’yazı tipini değiştiriyoruz
    .Size = 14 ’yazı boyutunu değiştiriyoruz
    .Underline = True ’yazıyı altı çizili yapıyoruz
    End With
    objselection.boldrun() ’yazıyı kalın yapıyoruz
    objselection.TypeText(TextBox1.Text) ’Tablodan önce Tablo 1 yazısını ekliyoruz
    objselection.TypeParagraph() ’paragrafı seçiyoruz
    objselection.boldrun() ’yazının kalınlık özelliğini kaldırıyoruz
    objselection.TypeText(TextBox1.Text) ’Tablodan önce Tablo 1 yazısını ekliyoruz

    dil = objselection.languageID
    If dil = 1055 Then
    TextBox1.Text = TextBox1.Text & " dil Türkçe"
    Else
    If dil = 2057 Then
    TextBox1.Text = TextBox1.Text & " dil İngiltere İngilizcesi"
    Else
    If dil = 1033 Then
    TextBox1.Text = TextBox1.Text & " dil Amerikan İngilizcesi"
    End If
    End If
    End If

    End If

    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

    VB 6 ile VB .NET ile yapılmış programlarımızı incelersek VB 6 ile kullandığımız bazı özellik isimlerini VB .NET ile kullanamayıp bunların yerine rakamsal ifadeler kullandığımızı görürürüz. Bunlara kısaca değinelim.

    Programımızda
    With objDocument.Paragraphs(1)
    .Alignment = wdAlignParagraphCenter
    End With
    İfadesi ile hizalama seçili olan paragrafı hizaladık.
    .Alignment ifadesi şu değerleri alabilir:
    1 değeri ortaya hizalama
    0 değeri sola hizalama
    2 değeri sağa hizalama

    Yazımızı kalın yapmak için iki ayrı yöntem kullanabiliriz..
    Birinci yöntem de objselection.boldrun ifadesini kullanabiliriz.
    Elbette öncelikle bir alanın seçilmesi gereklidir. Çünkü objselection ifadesi ile seçili olan alan üzerinde işlem yapılır.
    objselection.TypeParagraph ifadesi ile paragrafı seçiyoruz.
    objselection.boldrun ilk yazıldığında yazıyı kalın yapar tekrar yazıldığında ise yazının kalınlık özelliğini kaldırır.
    objselection.Font.bold=true yazarak da yazımızı kalın yapabiliriz.
    objselection.Font.bold=false yazarak yazının kalınlık özelliğini kullanabiliriz.

    Biz programımızda objselection.Font.Underline=true yazarak yazımızı altı çizili yaptık.
    objselection.Font.Italic=true yazılarak seçili olan yazı eğik hale getirilebilir.

    Ayrıca örneğimizde objselection.languageID ifadesi ile belgemizin dilini tespit ettik. Biz burada yalnızca birkaç adet dil tanımlaması kullandık.

    objselection.languageID ifadesinin aldığı bazı parametreler şunlardır:

    özellik ismi değer
    wdArabic 1025
    wdChineseHongKongSAR 3076
    wdChineseMacaoSAR 5124
    wdChineseSingapore 4100
    wdEnglishUK 2057
    wdEnglishUS 1033
    wdFarsi 1065
    wdFrench 1036
    wdGerman 1031
    wdHindi 1081
    wdJapanese 1041
    wdKorean 1042
    wdRussian 1049
    wdSpanish 1034
    wdTurkish 1055
    wdUrdu 1056

    Ben buraya yalnızca başlıca dilleri yazdım.
     
  9. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    objselection.languageID ifadesini kullanarak yazım denetimi ile ilgili bir örnek yapalım.

    Herhangi bir yazıdaki hataları word programının yazım denetimini kullanarak düzeltmek için şu işlemler yapılır. Örnek olarak formumuza bir komut butonu, bir de text kutusu ekleyelim. Komut butonuna tıklandığında text kutusuna girilen yazının yazım denetimi Türkçe’ye göre yapılsın ve düzeltilmiş hali tekrar text kutusuna aktarılsın.

    V.B. 6.0’ a göre kod şu şekilde olacak:

    Private Sub Command1_Click()
    Dim dil
    Dim ObjWord As Object, yazi$
    Dim objselection As Object
    On Error Resume Next
    Set ObjWord = CreateObject("Word.Basic") ’Word uygulamamızı oluşturuyoruz
    Set objselection = ObjWord.Selection

    ObjWord.AppShow ’word penceresini görüntülüyoruz
    ObjWord.FileNew ’yeni belge oluşturuyoruz

    ObjWord.Insert Text1.Text ’Düzeltilecek yazı word belgesine aktarıyoruz

    ObjWord.ToolsSpelling ’Yazım denetimini çalıştırıyoruz
    ObjWord.EditSelectAll

    ObjWord.Selection.WholeStory
    ObjWord.Selection.Text = Text1.Text
    objselection.languageID = 1055 ’Heceleme dili olarak Türkçe’yi seçtik

    yazi = ObjWord.Selection$()

    Text1 = Left$(yazi, Len(yazi) - 1) ’düzeltilecek karakterleri belirliyoruz

    Show ’formumuzu görüntülüyoruz

    Set ObjWord = Nothing ’word belgemizi hafızadan siliyoruz
    End Sub


    V.B. NET’e göre ise kod şu şekilde olacak:

    Public Class Form1

    Private Sub cmdyazimdenetimi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdyazimdenetimi.Click
    Dim dil
    Dim ObjWord As Object, yazi$
    Dim objselection As Object
    On Error Resume Next
    ObjWord = CreateObject("Word.Basic") ’Word uygulamamızı oluşturuyoruz
    objselection = ObjWord.Selection

    ObjWord.AppShow() ’word penceresini görüntülüyoruz
    ObjWord.FileNew() ’yeni belge oluşturuyoruz

    ObjWord.Insert(TextBox1.Text) ’Düzeltilecek yazı word belgesine aktarıyoruz

    ObjWord.ToolsSpelling() ’Yazım denetimini çalıştırıyoruz
    ObjWord.EditSelectAll()

    ObjWord.Selection.WholeStory()
    ObjWord.Selection.Text = TextBox1.Text
    objselection.languageID = 1055 ’Heceleme dili olarak Türkçe’yi seçtik

    yazi = ObjWord.Selection$()
    TextBox1.Text = yazi.Substring(0, Len(yazi) - 1) ’düzeltilecek karakterleri belirliyoruz

    Show() ’formumuzu görüntülüyoruz

    ObjWord = Nothing ’word belgemizi hafızadan siliyoruz

    End Sub
    End Class

    Substring(parametre1,parametre2) fonksiyonu yazıda belli sayıdaki karakteri bulmak için kullanılır. İlk parametresi kaçıncı karakterden başlanacağı, ikinci parametresi ise kaç karakter alınacağını belirler.

    Görüldüğü gibi objselection.languageID = 1055 ifadesi ile heceleme dilini Türkçe olarak belirledik