Makro eğitim
-
Dinamik Dizi
Dizi aralık boyutu arttıkça dizi değişkenlerinin sayısı da artar. Dizinin tam boyutu, kod yürütme sırasında tanımlanır. Boyutu tanımlamak için Redim ifadesini kullanılır ve ardından dizi içeriği değişkenlerle doldurulur. Sub Dinamik_Dizi() Dim AylarDizisi() As String Dim dinamik As Long Const ilkSatir As Long = 1 Dim r As Long dinamik = Range(“A” & ilkSatir).CurrentRegion.Rows.Count dinamik =…
-
Tek Boyutlu Dizi
Bu yöntemle tek bir satır veya sütunda bulunan bir aralıktaki hücreleri dizi olarak tanımlıyoruz. Sabit tek boyutlu dizi, Dim ifadesi sırasında tanımlanır: Dim AylarDizisi(1 To 12) As String Örnek: Sonuç:
-
Çalışma Kitabındaki Tüm Yorumları Bulma
Bu bölümde yer alan kodlarla çalışma kitabımızdaki tüm yorumları, yeni bir sayfaya, hücre adresi ve yazarıyla birlikte yazacağız.
-
Timer ve Speech Özellikleri
Timer: Döngülerde geçen süreyi bulmak için timer özelliğini kullanırız. Timer özelliği gece yarısından bu zamana kadar geçen saniyeyi hesaplar. Speech: Makro kodu bittiği zaman bize sesli bir uyarı vermesi için Speech özelliğini kullanırız. Speech özelliği sadece ingilizce dili desteklemektedir. Örnek: Sub Many_Finds() ‘Timer başlangıç Dim Basla Basla = VBA.Timer Dim UrunId As Range Dim i…
-
Find Yöntemi
Find yöntemi, For Next ve Do Loop döngülerine göre daha hızlı sonuç almamızı sağlar. LookIn ve LookAt metodları opsiyonel olsa bile son uygulanan metodlar otomatik olarak geçerli olacağı için kullanmamız gerekir. Aşağıdaki yöntemle sadece bir arama yapacağız: Aşağıdaki yöntemle birden fazla arama yapacağız:
-
Do Until / Do While Döngüleri
Do Until / Do While döngüleri aynı For…Next döngüsü gibi çalışır. Tek farkı For…Next döngüsündeki gibi bir sayaç kullanma mecburiyeti yoktur. Do While döngüsü belirtilen koşul sağlandığı müddetçe çalışır. Do Until döngüsü belirtilen bir koşul karşılanana kadar çalışır. Exit Do komutunda VBA döngüden hemen çıkar. Do Loop dongüsünde While ve Until kullanılmazsa, gereken yerde Exit…
-
For…Next Ters Döngüler
Döngü sırasında satır silinmesi gibi durumlarda alttaki satırlar yukarı kayacağı için döngüye tersten başlanması daha uygun olur. Sub Gizli_Satirlari_Silme() Dim r As Long Const ilkSatir As Byte = 4 ‘datanın ilk satırı (başlık hariç) Dim SonSatir As Long ‘CurrentRegion ve ilkSatir’da başlık 2 defa dahil olduğu için 2 çıkarıyoruz SonSatir = Range(“A” & ilkSatir).CurrentRegion.Rows.Count +…
-
For…Next İç içe Döngüler
Bu örnekte hücrelerin içinde tek tek dolaşıp metin ve sayıları ayıklayacağız. Sub icice_Dongu() Dim i As Long ‘her hücrenin içinde döngü yapmak için Dim myDeger As String Const ilkSatir As Byte = 4 Dim SonSatir As Long Dim NumBulunan As Long Dim TxtBulunan As String Dim r As Long ‘satırlar arasında döngü yapmak için SonSatir…
-
For…Next Sayaç Döngüleri
Aşağıdaki basit döngüde 1000’den büyük her değere 100 ekleyeceğiz. Sub Basit_Dongu() Dim i As Long Dim SonSatir As Long Dim myDeger As Double Const ilkSatir As Byte = 4 ‘A sütunundaki değerlerde boşluk yoksa SonSatir = Range(“A” & ilkSatir).End(xlDown).Row ‘4 den SonSatir sayısına kadar her seferinde 1 artırılır For i = ilkSatir To SonSatir myDeger…
-
İçindekiler Tablosu
Bu bölümde yer alan kodlarla aktif çalışma sayfanıza “İçindekiler Tablosu” ekleyebilirsiniz.
-
Değişkenleri İletmek (ByRef, ByVal)
Bu bölümde prosedürler arasında değişken iletme yöntemlerine bakacağız. ByRef, bağımsız değişkenleri iletmenin varsayılan yoludur (değişkenin kendisini iletir). Değişkenin değeri geri döndüğünde değişir. ByVal, değişkenin yalnızca bir kopyasını işler ve değişkenin değerini değiştirmez. Değişkenin değerini geri döndürmez. Not: Eğer Call komutu kullanılmazsa parantez kullanmaya gerek yoktur. Sub AnaMakro() Dim deger As Double Dim k As Variant…
-
Prosedürlerin Kapsamı
Bu bölümde Private ve Public prosedürler arasındaki farkı inceleyeceğiz. Prosedürlerin adının başında Public yazılmasına gerek yoktur. Prosedürler varsayılan olarak Public’dir. Eğer prosedür adının başında Private yazıyorsa bu prosedür sadece içinde bulunduğu modülde geçerlidir ve makro listesinde yer almaz, bir butona atanamaz. Call komutu ile diğer prosedüre link verilir fakat bu opsiyoneldir. Örnek: Private Sub Giris()…
