İleri Düzey
Kurs Tanıtımı
İleri Düzey Excel Derslerine hoş geldiniz! İlk dersimiz olan bu derste kurs tanıtımı yapacağız. Ders başlarındaki çalışma kitaplarını yukarıdaki bağlantıdan indirebilirsiniz. Derste anlatılan VB kodlarını yukarıdaki kod bloğunda görebilirsiniz. Her dersin sonunda makro içerebilen Microsoft Excel çalışma kitabını yukarıdaki bağlantıdan indirebilirsiniz. Bir sonraki derste programlamanın 10 altın kuralına değineceğiz.
Programlamanın 10 Altın Kuralı
Bu derste programlamanın ve programlama öğrenirken bilmemiz gereken önemli kurallara değineceğiz. Kural 1 - Her Zaman Yedek Alın. Excel makroları uyguladığımız zaman CTRL + Z ile geri alamayız. Bu sebeple dosyalarımızın her zaman yedekleri olmalıdır. Kural 2 - Test Edin. Yazdığınız kodları her zaman test edin ve ne işe yaradığını öğrenin. Kural 3 - Kişisel Makro Çalışma Kitabı Kullanın. Makroların diğer çalışma kitaplarında da çalışmabilmesi için daima kişisel makro çalışma kitabı kullanın.
Excel Macro ve VBA Nedir?
Bu derste Excel'de macro'nun (makronun) ve VBA'in ne anlama geldiğini öğreneceğiz. Excel'de Macro Nedir? Excel’de sürekli tekrarladığımız görevler varsa bu görevleri otomatikleştirmek için makro kaydedebiliriz. Makro bizim istediğimiz sıklıkla çalışabilen bir eylem ya da eylemler kümesidir. Örneğin; her ay bir rapor oluşturduğumuzu ve bu raporda belirli değişkenlere ait toplamları bulduğumuzu varsayalım. Her ay bunları tek tek manuel yapmak yerine tek bir makro kaydı ile her seferinde otomatik olarak yapabiliriz.
Geliştirici Sekmesinin Kullanımı
Bu derste Excel'de Geliştirici sekmesini nasıl aktif hâle getirebileceğimizi ve kullanabileceğimizi öğreneceğiz. Geliştirici sekmesini dilersek herhangi bir sekme adına sağ tıklayıp Şeridi Özelleştir... komutuna tıklayarak menüden Dosya'yı seçtikten sonra Seçenekler bağlantısına tıklayabilir açılan Excel Seçenekleri penceresinin sol konsolunda bulunan Şeridi Özelleştir'e tıkladıktan sonra Ana Sekmeler'den Geliştirici kutucuğunu seçebiliriz.
Makro Güvenliği
Bu derste Excel'de makro güvenliği konusuna değineceğiz. Makro güvenliği ayarlarını açmak için Geliştirici sekmesindeki Makro Güvenliği öğesine tıklayabilirsiniz. Bildirimde Bulunmadan Tüm Makroları Devre Dışı Bırakma. Bu seçeneği seçtiğiniz takdirde makro içeren bir Excel dosyasını indirip çalıştırdığınızda makro içerdiğine dair bir bildirim almayacaksınız ve makrolar da çalışmayacak. Bir bilgisayarda hiçbir şekilde makro çalıştırılması istenmiyorsa en güvenli seçenek budur. Bildirimde Bulunarak Tüm Makroları Devre Dışı Bırakma. Varsayılan olarak gelen seçenek budur. Bu şekilde makro içeren bir Excel çalışma kitabını açtığınızda önce makroların olduğuna dair bir bildirim alacaksınız. Bu bildirimi onaylamadığınız sürece makrolar çalışmayacaktır.
Makro Kayıt Yöntemleri
Bu derste Excel'de nasıl makro kaydı yapabileceğimizi öğreneceğiz. Durum Çubuğundan Makro Kaydı. En basit yöntem olan bu yöntemde durum çubuğundaki Makro Kaydı komutuna tıklamalıyız. Geliştirici Sekmesinden Makro Kaydı. Dilersek Geliştirici sekmesinde Makro Kaydet komutuna tıklayabilir ve makro kaydına başlayabiliriz. Görünüm Sekmesinden Makro Kaydı. Bir başka seçenek ise Görünüm sekmesinde Makrolar komutuna tıklamak ve açılan listeden Makro Kaydet'i seçmektir.
İlk Makro Kaydımız
Bu derste Excel'de ilk makro kaydımızı yapacağız. İlk Makro Kaydını Başlatma. Makroları kaydetmek oldukça basittir. İlk olarak boş bir çalışma kitabı açınız ve ardından durum çubuğundaki Makro Kaydı komutuna tıklayınız. Bir sonraki dersimizde kaydettiğimiz makroları nasıl çalıştırabileceğimizi öğreneceğiz.
Makro İçerebilen Excel Çalışma Kitabı Kaydı
Bu derste Excel'de ilk makro kaydımızı çalışma kitabı olarak nasıl kaydedebileceğimizi öğreneceğiz. Kayıt sırasında dosya formatının xlsm olduğuna yani formatın makro içerebilen excel çalışma kitabı olduğuna dikkat ediniz. Bu derse ait makro içerebilen Excel çalışma kitabını yukarıdaki bağlantıdan indirebilirsiniz. Bir sonraki dersimizde kaydettiğimiz makroları nasıl çalıştırabileceğimizi öğreneceğiz.
Makro Çalıştırma Yöntemleri
Bu derste Excel'de kaydettiğimiz makroları nasıl çalıştırabileceğimizi öğreneceğiz. Geliştirici Sekmesinden Makro Çalıştırma. İlk yöntemimizde Geliştirici sekmesinde Makrolar'a tıklayabilir ve kaydettiğimiz makroyu çalıştırabiliriz. Görünüm Sekmesinden Makro Çalıştırma. Dilersek Görünüm sekmesinde de aynı yolu izleyebiliriz. Hızlı Erişim Araç Çubuğundan Makro Çalıştırma. Az bilinen bir yöntem olarak hızlı erişim araç çubuğuna kaydettiğimiz makroyu ekleyebilir ve çalıştırabiliriz.
Visual Basic Editor ve Kullanımı
Bu derste Excel'de Visual Basic Editor'ü ve bu derleyiciyi nasıl kullanabileceğimizi öğreneceğiz. Visual Basic Editor'ü Çalıştırma. Visual Basic Editor'ü başlatmak için Geliştirici sekmesinde Visual Basic'e tıklayabilir ya da kısaca ALT + F11 kısayolunu kullanabilirsiniz. Visual Basic Editor. Visual Basic Editor (VBA Editor) görseldeki gibi açılacaktır.
Kesin ve Göreceli Makro Kaydı
Bu derste Excel'de kesin ve göreceli makro kaydını nasıl yapabileceğimizi ve bunların arasındaki farka değineceğiz. Kesin Makro Kaydı. Kesin makro kaydında verilerin bir altındaki hücreye geçtiğimizde A12 hücresinin doğrudan referanslandığını görebilirsiniz. Göreceli Makro Kaydı. Göreceli ya da göreli makro kaydında ise A12 hücresi yerine verilerin sonundaki hücre otomatik olarak belirlenecek bir alt satırındaki ilk hücreye yapıştırma yapılabilecektir.
VBA Kodları ve Kısayolları
Bu derste Excel'de VBA kodlarına ve kısayollarına değineceğiz. İlk olarak sekizinci derste kaydettiğimiz ilkMakroKaydimiz adlı makro içerebilen çalışma kitabını masaüstünüze indirin ve açın. Kodlarımızı düzenlemeden ve kısaltmadan önceki hâli yukarıdaki gibi görüntülenecektir. Kodlarımızı düzenleyip kısalttıktan sonra daha hızlı çalışacaktır.
Excel VBA Object Model Nedir?
Bu derste Excel'de VBA Object Model konusuna yani nesne modeli konusuna değineceğiz. Excel Object Oriented yani Nesne Tabanlı bir programlama dilidir. Bir metodu çalıştırmadan önce hangi nesnenin seçili olduğu Excel'e belirtilmelidir. Nesne modelinde daima önce nesne tanımlanır ve ardından aksiyonu yazılır. Object model yani nesne modeli Excel'de şu hiyerarşiye bağlı kalarak çalışır: Application > Workbooks > (Workbook) > Worksheets > (Worksheet) > Range, Chart gibi nesneler
Property ve Method Kavramları
Bu derste Excel VBA'de property ve method kavramlarının ne anlama geldiğini öğreneceğiz. Property Nedir? Property yani Özellik bir nesnenin neye sahip olduğunu gösterir. Örneğin; bir nesnenin rengi (color), büyüklüğü (size) ya da tipi (type) olabilir. Bunlar o nesnenin özelliğini belirtir. Özellikler daima nesne döndürür. Bu örnekte A1 hücresinin metin rengini belirttik. Method Nedir? Method yani Metod ya da Yöntem ise bir nesnenin ne yapması gerektiğini belirtir.
Immediate Penceresinin Kullanımı
Bu derste Excel Visual Basic Editor'de Immediate penceresinin nasıl kullanıldığını öğreneceğiz. Immediate dilimizde hemen anlamına gelmektedir. Bu pencereyi menüden View > Immediate Window yolu ile etkinleştirebilirsin. Immediate Window kod yazımında kodların hangi değerlere sahip olduğunu ya da ne yaptığını hemen test etmek için kullanılır.
Modül Ekleme ve Silme
Bu derste Excel VBA'de nasıl modül (module) ekleyip silebileceğimizi öğreneceğiz. Modül Ekleme ve Silme çalışma kitabını yukarıdaki bağlantıdan indirebilirsiniz. Modül eklemek için ilk olarak Microsoft Excel Objects klasörüne sağ tıklıyoruz ve açılan listeden Insert > Module yolunu izliyoruz. Derste öğretilenlerin makro içerebilen Excel çalışma kitabını yukarıdaki bağlantıdan indirebilirsiniz.
With ve End With Özellikleri
Bu derste With ... End With özelliğini VBA'de nasıl kullanabileceğimizi öğreneceğiz. İlk olarak 12nci derste kaydettiğimiz ilkMakroKaydimiz (Son) adlı makro içerebilen Excel çalışma kitabını masaüstünüze kaydediniz ve çalıştırınız. With ... End With özelliğini kullandığımızda kodlarımız yukarıdaki gibi görüntülenecektir. Eğer With ... End With özelliğini kullanmasaydık Selection.Interior kodlarını her seferinde yazmak zorunda kalırdık.
Debug Hata Ayıklayıcısı Kullanımı
Bu derste VBA'de Debug yani hata ayıklayıcısını nasıl kullanabileceğimizi öğreneceğiz. Debug'ı (hata ayıklayıcısını) kullanabilmek için öncelikle kodumuzda herhangi bir yere tıklıyoruz ve ardından menüden Debug'a tıkladıktan sonra Step Into'yu seçiyoruz ya da doğrudan F8'e basıyoruz.
Range ve Cells Nesneleri
Bu derste VBA'de Range ve Cells nesnelerini öğreneceğiz. Range Nesnesi. Belirli hücreleri seçmek ya da bunları değiştirmek için Range nesnesini kullanıyoruz. Cells Nesnesi. Range nesnesi gibi belirli hücreleri seçmek ya da bunları değiştirmek için Cells nesnesini kullanıyoruz.
ActiveCell ve Offset Özellikleri
Bu derste VBA'de ActiveCell ve Offset özelliklerini öğreneceğiz. ActiveCell Özelliği. Excel'de etkin olan hücrenin niteliğini değiştirmek için ActiveCell özelliğini kullanıyoruz. Offset Özelliği. Belirli bir hücreden uzaktaki nesnelerin niteliğini değiştirmek için Offset özelliğini kullanıyoruz.
End Özelliği
Bu derste VBA'de End özelliğini öğreneceğiz. İlk olarak End Özelliği adlı makro içerebilen Excel çalışma kitabını masaüstünüze kaydediniz ve çalıştırınız. Excel'de belirli bir aralığın sonundaki, başındaki, sağındaki ya da solundaki hücreleri seçmek için End özelliğini kullanıyoruz. Bu örnekte A3 hücresinin altında sıralı hücrelerin sonuncusunu seçtik.
Dynamic Range Seçimi
Bu derste VBA'de dinamik aralık seçiminin nasıl yapıldığını öğreneceğiz. Excel'de belirli bir aralığı seçmek için dynamic range seçimini yapıyoruz. Bu örnekte A3 hücresinin altında tüm hücreleri seçtik. Bu örnekte ise etkin hücrenin altındaki tüm hücreleri seçtik. Bir sonraki dersimizde CurrentRegion Özelliği konusuna değineceğiz.
CurrentRegion Özelliği
Bu derste VBA'de CurrentRegion özelliğinin nasıl kullanıldığını öğreneceğiz. Excel'de belirli bir veri aralığını seçmek için currentRegion özelliğini kullanıyoruz. Klavyemiz ile kullandığımız CTRL + A ile aynı işleve sahiptir. Bu örnekte B5 hücresinin etrafındaki tüm hücreleri seçtik.
Select ve Activate Metodları
Bu derste VBA'de Select ve Activate metodlarını öğreneceğiz. Select Metodu. Excel'de belirli bir hücreyi ya da aralığı seçmek için Select metodunu kullanıyoruz. Activate Metodu. Bu örnekte A3:A10 aralığını Activate metodu ile etkinleştirdik. Select ve Activate Metodu Arasındaki Fark. Select metodu ile belirli bir aralığı seçtikten sonra Activate ile bu aralıktaki herhangi bir hücreyi etkinleştirebiliriz.
Sayfaları Seçme
Bu derste VBA'de sayfaları nasıl seçebileceğimizi öğreneceğiz. Sayfa Adlarına Göre Seçme. ActiveSheet.Next.Select. Bir sonraki sayfayı seçmek için etkin sayfada iken yukarıdaki kodun yazılması yeterlidir. ActiveSheet.Previous.Select. Bir önceki sayfanın seçilmesi için etkin sayfada iken yukarıdaki kodun yazılması yeterlidir. Sheets("Sayfa4").Select. Doğrudan sayfa adı yazılarak da sayfalar seçilebilir.
Sheets ve Worksheets Farkı
Bu derste VBA'de Sheets ve Worksheets arasındaki farkı öğreneceğiz. İlk olarak Sheets ve Worksheets adlı makro içerebilen Excel çalışma kitabını masaüstünüze kaydediniz ve çalıştırınız. Sheets ve Worksheets aynı işlevlere sahip olsa da Worksheets sadece sayfalar için kullanılır. Grafik sayfalarında çalışmayacaktır.
Workbooks Nesnesi
Bu derste VBA'de Workbooks nesnesinin ne işe yaradığını öğreneceğiz. workbooks(" Kitap1 ").Activate. Bu örnekte Kitap1'i etkinleştirdik. workbooks(" Workbooks Nesnesi ").Activate. Bu örnekte ise Workbooks Nesnesi çalışma kitabını etkinleştirdik. workbooks(" Kitap1 ").Activate. Sheets(" Sayfa2 ").Activate. Dilersek Kitap1'in ikinci sayfasını da etkinleştirebiliriz.
Value Özelliği
Bu derste VBA'de Value özelliğinin nasıl kullanıldığını öğreneceğiz. Range("A1").Value = "deneme". Bu örnekte A1 hücresine deneme yazdırdık. Range("A1").Value = 1234. Sayısal verilerde tırnak işareti kullanılmasına gerek yoktur. Dim ilkDegiskenim As String. ilkDegiskenim = "İlk Değişkenim". Range(" A2 ").Value = ilkDegiskenim. Dilersek bir değişken tanımlaması yaparak değerleri buna göre atayabiliriz.
Copy Metodu
Bu derste VBA'de Copy metodunun nasıl kullanıldığını öğreneceğiz. Range("A1").Copy Range("B1"). Bu örnekte A1 hücresini B1 hücresine kopyaladık. Range("A2").Copy Range("B2"). Bu örnekte A2 hücresini B2 hücresine kopyaladık. Range(" C4:D8 ").Copy Sheets(" Sayfa2 ").Range("A1"). Bu örnekte ise C4:D8 aralığını Sayfa2'deki A1 hücresine kopyaladık.
Font ve Interior Özellikleri
Bu derste VBA'de Font ve Interior özelliklerini öğreneceğiz. Range("A1").Font.Bold = True. Bu örnekte A1 hücresindeki veriyi kalın yazdık. Range(" A1 ").Font.Color = vbRed. Bu örnekte A1 hücresinin metin rengini kırmızı yaptık. Range(" A1 ").Interior.Color = vbBlue. Bu örnekte ise A1 hücresinin iç rengini mavi yaptık.
Address Özelliği
Bu derste VBA'de Address özelliğini öğreneceğiz. a1Adres = Range(" A1 ").Address. Range(" D1 ").Value = a1Adres. Bu örnekte A1 hücresinin adresini a1Adres adlı değişkene atadık ve D1 hücresinde bu adresi yazdırdık. a3a10Adres = Range("A3:A10").Address. Range("D2").Value = a3a10Adres. Bu örnekte A3:A10 aralığının adresini D2 hücresinde gösterdik.
Row ve Column Özellikleri
Bu derste VBA'de Row ve Column özelliklerini öğreneceğiz. ?ActiveCell.Row Immediate penceresinde yukarıdaki kodu yazdığımızda etkin hücrenin satır numarasını öğrenebiliriz. ?ActiveCell.Column Immediate penceresinde yukarıdaki kodu yazdığımızda ise etkin hücrenin sütun numarasını öğrenebiliriz.
Name ve Path Özellikleri
Bu derste VBA'de Name ve Path özelliklerini öğreneceğiz. Aşağıdaki kodları Immediate penceresinde kullanıyoruz. ?ThisWorkbook.Name Bu kod bize şu an üzerinde çalıştığımız çalışma kitabının tam adını verecektir. ?ThisWorkbook.Path Bu kod ise çalışma kitabının dosya yolunu gösterecektir. ?ThisWorkbook.Fullname Fullname kodu ise çalışma kitabının yolunu ve adını verecektir.
Count ve Index Özellikleri
Bu derste VBA'de Count ve Index özelliklerini öğreneceğiz. Aşağıdaki kodları Immediate penceresinde kullanıyoruz. ?ThisWorkbook. Sheets. Count Bu kod bize çalışma kitabında kaç sayfa olduğunu verecektir. ?ActiveSheet.Index Bu kod ise etkin sayfanın kaçıncı sırada yer aldığını gösterecektir.
Open Metodu
Bu derste VBA'de Open metodunun nasıl kullanıldığını öğreneceğiz. İlk olarak Open Metodu adlı makro içerebilen Excel çalışma kitabını ve Kitap1 adlı çalışma kitabını masaüstünüze kaydediniz ve çalıştırınız. Workbooks.Open Filename:="C:\Users\yilma\OneDrive\Desktop\Kitap1.xlsx" Bu kod ile masaüstündeki Kitap1 adlı çalışma kitabını açabiliriz.
Close Metodu
Bu derste VBA'de Close metodunun nasıl kullanıldığını öğreneceğiz. İlk olarak Close Metodu adlı makro içerebilen Excel çalışma kitabını ve Kitap1 adlı çalışma kitabını masaüstünüze kaydediniz ve çalıştırınız. ActiveWorkbook.Close Bu kod ile etkin olan çalışma kitabını kapatabiliriz. Workbooks("Kitap1").Close Açık olan diğer çalışma kitaplarını kapatmak için yukarıdaki kodu yazmamız yeterlidir.
Veri Tipleri
Bu derste VBA'de veri tiplerini öğreneceğiz. Veri tipleri yukarıdaki gibidir. En çok kullanılan veri tipleri Boolean, Double, Integer, Long ve String'dir. Veri tipleri değişken tanımlarında oldukça önemlidir. Bu sebeple veri tiplerini tam olarak öğrenmeden değişken tanımlamasına geçilmemelidir.
Değişken Tanımlama
Bu derste VBA'de değişken tanımlamanın nasıl yapıldığını öğreneceğiz. Dim sonSatir As Long sonSatir = Rows.Count Debug.Print sonSatir Yukarıdaki kodu çalıştırdığımızda bir Excel sayfasında 1048576 satır yer aldığını Immediate penceresinde görebiliriz. Eğer bu değişkeni Integer veri tipi ile tanımlasaydık hata alacaktık. Dim metinDegiskeni As String metinDegiskeni = "Bu bir metin yazısıdır." Debug.Print metinDegiskeni String veri tipi ile metin ifadeleri yazdırabiliriz.
Set İfadesi
Bu derste VBA'de Set ifadesinin nasıl kullanıldığını öğreneceğiz. Nesnelere değişken tanımlamak için Set ifadesini kullanıyoruz. Dim yeniKitap As Workbook Dim yeniSayfa As Worksheet Set yeniKitap = Workbooks.Add Set yeniSayfa = yeniKitap.Sheets(1) yeniSayfa.Range("A1").Value = "deneme" Bu örnekte yeniKitap adlı bir çalışma kitabı değişkeni tanımladık. Ardından yeniSayfa adlı bir sayfa tanımladık ve bunu yeniKitap'ın ilk sayfası olarak belirledik. Ardından A1 hücresine deneme yazdırdık.
Değişkenlerin Kapsamı
Bu derste VBA'de değişkenlerin geçerli olduğu alanları öğreneceğiz. Sub prosedur1() Dim degisken As String degisken = "deneme" Debug.Print degisken End Sub Örnek olarak degisken'i yazdırmak istersek Immediate penceresinde deneme yazacaktır. Sub prosedur2() Debug.Print degisken End Sub Fakat farklı bir prosedürde çalıştırdığımızda çalışmayacaktır.
Gizli Prosedürler
Bu derste VBA'de private kullanımına değineceğiz. Eğer birden fazla prosedürü tek bir prosedür içinde kullanmak istiyorsak ve alt prosedürlerin görünmemesi gerekiyorsa başına Private yazılması yeterlidir. Bu şekilde kullanıcı makroları çalıştırdığında alt prosedürler görüntülenmeyecektir.
Kişisel Makro Çalışma Kitabı
Bu derste VBA'de Kişisel Makro Çalışma Kitabı (PERSONAL.XLSB) konusuna değineceğiz. İlk olarak boş bir çalışma kitabı açınız. Bir adet makro kaydı başlatın ve makronun kaydedileceği yeri Kişisel Makro Çalışma Kitabı olarak belirleyin. Herhangi bir işlem yapın ve kaydı bitirin. Bu şekilde artık kaydedilen makroyu istenilen çalışma kitabında tekrar kullanabiliriz.
Makroları Şifreleme
Bu derste VBA'de makroları şifreleme konusuna değineceğiz. Bir çalışma kitabındaki makroların kimse tarafından görülmesini istemiyorsak kullanıyoruz. İlk olarak menüden Tools > VBAProject Properties... yolunu izliyoruz. Açılan pencerenin Protection sekmesinde Lock project for viewing kutucuğunu işaretliyoruz ve bir şifre belirliyoruz. Çalışma kitabını tekrar başlatığımızda artık VBA kodlarının şifrelendiğini ve kodları göremediğimizi fark edebilirsiniz. Daha önce belirlediğimiz şifreyi girdikten sonra kodlarımız tekrar görünür olacaktır.