Skip to content

Pratik 10 Temel Makro Kodu

Pratik 10 Temel Makro Kodu

Merhaba,

Bu makalemizde Excel’de işinize yaracak en temel 10 Makro kodunun ne işe yaradıklarını ele alacağız.

Excel de makro kullanarak çok zor ve zaman işlemlerinizi çok kısa sürelerde yapabilirsiniz. Bu süreler o kadar kısadır ki bir örnek vermek gerekirse 3-5 günlük bir iş 3-5 dk’ya kadar düşebilir diyebiliriz. Hal böyle olunca makroların önemi daha da artıyor. Karmaşık, düzensiz verilerinizi normalleştirirken ya da farklı tablo yapıları oluştururken makrolar olmazsa olmazımızdır.

Makrolar geliştirilirken bazen benzer mantıkta işlemler çok fazla karşımıza çıkar her defasında bu kodları yazmak yerine bu kodları arşivleyerek gerektiği yerlerde birkaç ufak değişiklikle kolaylıkla uygulayabilirsiniz.

Bu makalemizde 1o Temel makro kodunu sizlere ne iş yaptıklarını açıklayarak sunuyoruz. Çalışmanızda daha üretken olmanıza yardımcı olacak bu örnekler oldukça basit ve kullanışlıdırlar. Bu hayat kurtaran temel kodları uygulamak da oldukça basittir. Bundan önce VBA kullanmamış olsanız bile bu kodları kullanabilirsiniz. Tek yapmanız gereken bu kodları VBA editörünüze yapıştırmak.

Bu kodları kullanmadan önce, VB editörüne erişmek için Excel şeridinizde geliştirici sekmenize sahip olmamız gerekiyor veya tüm Office paketlerinde Alt+F11 kısayol tuşu ile (Excel, Word, PowerPoint vb.) ulaşabilirsiniz.

  • Geliştirici sekmenize gidin ve “Visual Basic” üzerine tıklayın.

  • “Proje Penceresi” n de sol tarafta, çalışma kitabınızın adını sağ tıklayın ve yeni bir modül ekleyin.

  • Sadece kodlarınızı modüle yapıştırın ve kapatın. Dilerseniz F5 kısa yolu ile de kodlarınızı çalıştırabilirsiniz.

  • Şimdi geliştirici sekmenize gidin ve makro düğmesine tıklayın.

  • Dosyanızda bulunan makroların listesini içeren bir pencere gösterecektir ve bu listeden seçtiğiniz bir makroyu çalıştırabilirsiniz.

Şimdi kodlarımızı inceleyelim.

  • Seçtiğiniz hücreden itibaren istediğiniz kadar sayıda sağa doğru boş sütun ekler ve diğer sütunları da öteler.

    Sub CokluSutunEkle()

    Dim i As Integer

    Dim j As Integer

    ActiveCell.EntireColumn.Select

    On Error GoTo Son

    i = InputBox(“Eklemek istediğiniz sütun sayısını giriniz”, “Sütun Ekle”)

    For j = 1 To i

    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightorAbove

    Next j

    Son: Exit Sub

    End Sub

  • Seçtiğiniz hücreden itibaren istediğiniz kadar sayıda aşağı doğru boş sütun ekler ve diğer satırları da öteler.

    Sub CokluSatirEkle()

    Dim i As Integer

    Dim j As Integer

    ActiveCell.EntireRow.Select

    On Error GoTo Son

    i = InputBox(“Eklemek istediğiniz satır sayısını giriniz “, “Satır Ekle”)

    For j = 1 To i

    Selection.Insert Shift:=xlToDown, CopyOrigin:=xlFormatFromRightorAbove

    Next j

    Son: Exit Sub

    End Sub

  • Seçtiğiniz hücreden itibaren girdiğimiz sayı kadar otomatik doldurma yapar. Örneğin F7 hücresi seçili iken çalıştırdığımızda açılan giriş kutusuna 5 yazarsak F7 hücresinden aşağı doğru 1’den 5’e kadar sayı birer artan sayıları yazdırır.

Sub OtomatikSeriDoldurma()

Dim i As Integer

On Error GoTo Son

i = InputBox(“Değer giriniz”)

For i = 1 To i

ActiveCell.Value = i

ActiveCell.Offset(1, 0).Activate

Next i

Son: Exit Sub

End Sub

  • Seçtiğiniz hücrelerin sütun genişliklerini sütunun içindeki en uzun metne göre otomatik olarak ayarlar.

Sub SutunlariOtomatikAyarla()

Cells.Select

Cells.EntireColumn.AutoFit

End Sub

  • Seçtiğiniz hücrelerin satır genişliklerini satırın içindeki metne göre otomatik olarak ayarlar.

Sub AutoFitRows()

Cells.Select

Cells.EntireRow.AutoFit

End Sub

  • Excel’in tüm hücrelerini çözdükten sonra metni kaydır özelliğini çözer ve satır, sütun genişliklerini otomatik olarak ayarlar.

Sub MetniKaydirTemizle()

Cells.Select

Selection.WrapText = False

Cells.EntireRow.AutoFit

Cells.EntireColumn.AutoFit

End Sub

  • Birleştirilmiş seçili hücreleri eski haline geri döndürür.

Sub UnmergeCells ()

Selection.UnMerge

End Sub

  • Durum çubuğunda makro kodunun işlenmesi sırasındaki ilerlemenin yüzdesini görmek için aşağıdaki kodu kullanabiliriz.

    Sub DurumCubugundaIlerleme()

    Application.StatusBar = “İşlem başlıyor”

    For k= 1 To 5000

    Cells(k, 1) = k

    Application.StatusBar = ” İşlemin bitmesi için lütfen bekleyin ” & Round((k / 5000 * 100), 0) & “%”

    Next

    Application.StatusBar = “”

    End Sub

  • İlgili sayfanın sağ üst köşesine o günün tarihini yazdırır. Üst ortada Satış Raporu ve üst solda ise ABC şirketi yazar.

    Sub UstBilgiyeTarihEkleme()

    With ActiveSheet.PageSetup

    .LeftHeader = “ABC Şirketi”

    .CenterHeader = “Satış Raporu”

    .RightHeader = “&D”

    .LeftFooter = “”

    .CenterFooter = “”

    .RightFooter = “”

    End With

    ActiveWindow.View = xlNormalView

    End Sub

  • Makro ile Excel dosyasında çalışırken PowerPoint programını açmak için aşağıdaki kodu kullanabiliriz. Index değerini 0 yazarsak Hesap Makinası, 1 yazarsak Word, 3 yazarsak Outlook açılır.

Sub PowerPointAc()

Application.ActivateMicrosoftApp Index:=2

End Sub

Yukardaki kod blokları tek başlarına doğrudan bir anlam ifade etmeyebilir. Bizler yazdığımız kodlarda bu pratik kod bloklarını kullanarak daha hızlı uygulama geliştirebiliyoruz. En azından bir kere çalıştırıp sonucunu gördüğünüz zaman kafanızda yer edecek ve böyle bir durum ile karşılaşırsanız uygulamanız kolay olacaktır.

Bir başka makalede görüşmek dileğiyle,

Hoşçakalın.