Belge Açma ve Düzenleme


Word 2003 de Belgeler Nasıl Açılır ve Düzenlenir?
Arkadaşlar sizinle birlikte bu makalemizde sistemimizin her hangi bir yerinde bulunan word belgelerini açarak onlar üzerinde istediğimiz değişiklikleri yaparak nasıl kaydedeceğimizi öğreneceğiz. Aslında bu bir tür basit belge otomasyonu olacaktır. Misal elinizde .sub ya da .str uzantılı sonuçta metin içerikli dosyalar var bunlar üzerinde bir takım standart değişiklikler yapmak istiyorsunuz mesala ekranda iğrenç görüntülenen özel karakterlerden kurtulmak istiyorsunuz ve diyelim ki yüzlerce filmden oluşan bir arşiviniz var ki bu da yüzlerce altyazı demektir, bu durumda tüm altyazılar ile uğraşmak can sıkıcı olurdu herhalde. Ancak burada anlatılanları kendinize uyarlarsanız eminim ki çok işinize yarayacaktır. Şimdiden faydalı olması dileği ile isterseniz işimize geri dönelim....
Öncelikle her zaman olduğu gibi kendinize boş bir belge oluşturun, sonra gerekli makro güvenlik ayarlarını yapın ki burada anlatmak istediğimiz güvenlik düzeyini düşük olarak ayarlanmasıdır. Sonra Visual Basic Araç Çubuğunu kullanarak önce tasarım modunu etkinleştirin ve Tools düğmesi yardımıyla belgenize iki adet CommandButton nesnesi ekleyin. Sonrasında bu nesnelerin özelliklerini aşağıdaki gibi ayarlayın
1. Düğme  name: btnDosyaSec Caption: DOSYA SEÇ
2. Düğme  name: btnCikis Caption: ÇIKIŞ
Daha sonra ister Visual Basic Araç çubuğu üzerindeki Visual Basic Düzenleyicisi düğmesine basın isterseniz de Alt+F11 tuşlarına basın farketmez, kod görünümüne geçin ve aşağıda verilen kodları yazın. Sonraında test amaçlı olarak masaüstüne ya da her nereye isterseniz 5-6 adet word belgesi kaydedin. Bu belgeleri kobay olarak kullanacağız bu nedenle içlerinde herhangi bir bilgi olması gerekmiyor. Sonrasında dosya seç düğmesi ile bu belgeleri seçin ve aç tuşuna basın. Tüm işlemler bittikten sonra her bir dosyayı açın ve sonuçlarını görün. Kod üzerinde size gerekli açıklamaları yazdığım için gereksiz teferruat bilgi vermeyeyim. Haydi rastgele...


'Tanimlanmayan degiskenlerin kullanilmasina izin verme
Option Explicit
Dim belge As New Document
Private Sub btnCikis_Click()
'1. Acik belgeyi kaydetmeden cik
    Application.Quit wdDoNotSaveChanges
'2. Acik belgeyi kaydet ve  cik
'    Application.Quit wdSaveChanges
End Sub
Private Sub btnDosyaSec_Click()
Dim dosyaPenceresi As FileDialog
Dim secilen As Variant
Dim aralik As Range
'2. paragraftan son paragrafa kadar tum paragraflar siliniyor
With ThisDocument
   Set aralik = .Range(.Paragraphs(2).Range.Start, .Paragraphs(.Paragraphs.Count).Range.End)
End With
aralik.Delete
'2. paragraf ekleniyor
ThisDocument.Paragraphs.Add
If ThisDocument.Paragraphs.Count > 1 Then
    Set dosyaPenceresi = Application.FileDialog(msoFileDialogOpen)
    ' -1 tamam dugmesine basildi
    ' 0 İptal dugmesine basildi
    '-2 Pencere kapat dugmesine basildi demektir.
    With dosyaPenceresi
    .Filters.Delete
    .Filters.Add "Word Belgeleri", "*.doc", 1
    .Filters.Add "Tüm dosyalar", "*.*", 2
    If .Show = -1 Then
        'secilen her eleman icin tekrar et
        For Each secilen In .SelectedItems
            duzenle secilen
        Next
    End If 'sonuc
    End With
End If 'Paragraphs.Count
End Sub
Private Sub duzenle(ByRef dosya As Variant)
'***********************************************************************************************
'Kodlayan                   : Bilal SERT
'Tarih/Saat                : 25.12.2012 / 10:50
'Amaç                        : Word belgesi uzerinde degisiklik yapmak
'Giriş/Çıkış                 : dosya adı ve tam yolunu gösterir (dosya) / yok
'Düzenleyen                :
'Tarih/Saat                 :
'Amaç                        :
'***********************************************************************************************
If Not IsNull(dosya) Then
    On Error GoTo hata
    Set belge = Documents.Open(dosya)
    With belge
        .Content.Font.ColorIndex = wdRed
        .Content.InsertAfter "Bu belge bir kod parçacığı tarafından düzenlenmiştir." & vbCrLf
        .Content.InsertAfter " Kod parçacığını kodlayan" & vbTab & ": Bilal SERT" & vbCrLf
        .Content.InsertAfter " İletişim Adresi" & vbTab & ": http://www.bilalsert.net" & vbCrLf
        .Content.InsertAfter " Düzenleme zamani" & vbTab & Format(Now, "dd/mm/yyyy-hh:mm:ss")
        'Kendi yapmak istediğiniz islemleri buraya kodlayabilirsiniz ****************************
         
        '*****************************************************************************************************
        'degisiklikler kaydediliyor
        '.Close wdSaveChanges
        'ya da
        .Save
        .Close 'sayet win7 de hata alirsaniz bu satiri aciklama satirina donusturun
    End With
    Set belge = Nothing
End If
Exit Sub
hata:
    MsgBox Err.Description, vbOKOnly + vbInformation, "Hata olustu"
End Sub


Yardımcı olması dileğiyle. Güç sizinle olsun...