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.