Makro eğitim
-
IF…Then
Kodun hangi yönde ilerleyeceğini belirlemenizi sağlar VE, YA DA koşul sorgulamalarını kullanabilirsiniz. VE (And): tüm koşullar doğru olması gerekir YA DA (Or): koşullardan herhangi birinin doğru olması yeterlidir. Örnek: ‘Eğer B3 hücresi boş değişse If Range(“B3”).Value <> “” Then Range(“C3”).Value = Range(“B3”).Value Not: Eğer kod tek bir satırdan oluuyorsa End If kullanmaya gerek yoktur. Örnek:…
-
For Each
VBA, benzer nesnelerden oluşan bir koleksiyonda döngü yapmak için kolay bir yöntem sağlar. Örneğin: Bir Çalışma Kitabındaki tüm Çalışma Sayfaları için kod yürütme Bir Aralık içindeki tüm Hücreler için kod yürütme Çalışma Sayfası Yorumları koleksiyonundaki her yorum için kod yürütme Örnek: Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Sh.Protect “test” Next Sh…
-
With…End With
Nesne ve özellikleri tekrar tekrar kullanmaktansa With…End With yapısı içinde kullanmak çeşitli avantajlar sağlar. With…End With yapısının faydaları: 1. Daha hızlı kod yazılır 2. Daha kolay kod bakımı yapılır 3. Kodlar daha hızlı çalışır Öncesi: Set aralik = Range(“A4”, “A” & Cells(Rows.Count, 1).End(xlUp).Row) aralik.Font.Name = “Arial” aralik.Font.Size = 14 aralik.Font.Bold = True Sonrası: Set aralik…
-
Değişkenlerin Kapsamı
Bu bölümde diğer prosedürlerde değişkenleri yeniden kullanmayı ele alacağız. 1. Procedure (sadece prosedürün içinde) Sub makro() Dim last_row As Long, last_column As Long End Sub 2. Module (prosedür dışında yazılı olursa tüm modülde etkili olur. Not: Sadece içinde bulunduğu modülde etkili olur.) Option Explicit Dim last_row As Long, last_column As Long 3. Tüm modüllerde ve…
-
Nesne Değişkenleri
Nesne değişkenlerini kullanırken mutlaka “Set” kullanmak gerekir Dim new_book As Workbook Set new_book = Workbooks.Add Örnek: Dim new_book As Workbook Dim new_sheet As Worksheet Dim new_range As Range Set new_book = Workbooks.Add Set new_sheet = new_book.Sheets(1) ‘Yeni açtığımız çalışma kitabının ilk sayfasının A1 hücresine değer giriyoruz new_sheet.Range(“A1”).Value = “abc123” ‘az önce yeni bir dosya açtığımız…
-
Değişkenleri Tanımlama
Bu bölümde, Excel VBA’da bir değişkeni nasıl bildireceğimizi, başlatacağımızı ve görüntüleyeceğimizi öğreneceğiz. Değişken kullanabilmek için Excel VBA’da bir değişkeni tanımlamamız gerekir. Örnek: myText değişkenini yazı olarak tanımlıyoruz: Dim myText As String Örnek: Toplam satır sayısını aşağıdaki gibi bulup değişkene atıyoruz: Sub makro() Dim lastrow As Long lastrow = Rows.Count Debug.Print lastrow End Sub Cevap: 1048576…
-
Değişkenler
Bu bölümde, Excel VBA’daki değişken tiplerini inceleyeceğiz. Başlatma (Initializing) bir değişkene bir başlangıç değeri atamak anlamına gelir. Değişkenler için Veri Türleri Değişkenler farklı veri türlerini barındırabilir Varsayılan değişken variant’dır Veri Türü Kullanılan Bellek Aralık Byte 1 byte 0 ile 255 arası Integer 2 byte -32,768 ile 32,768 arası Long 4 byte -2,147,483,648 ile 2,147,483,647 arası…
-
Dosyayı Farklı Kaydetmek
1. Aynı formatta dosyayı farklı kaydetmek: Sub saveas() ‘Öncelikle mevcut çalışmamızı kaydediyoruz ThisWorkbook.Save ‘Tüm sayfaları seçin, sayfalardaki tüm hücreleri kopyalayıp değer yapıştırın Sheets.Select Cells.Copy Cells.PasteSpecial xlPasteValues ‘Çalışma kitabını Farklı Kaydet ile kaydedin (saveas) ‘Bu çalışma kitabıyla aynı dizine kaydedin. Yeni çalışma kitabının başına “DOSYA_” ibaresi koyun ‘Bugünün tarihini ” DOSYA_”dan sonra “yymmdd” biçiminde ekleyin, böylece…
-
Diğer Çalışma Kitaplarına Değer Kopyalama
1. Eğer kitap2 açıksa aşağıda belirtilen değerleri yapıştırır Workbooks(“kitap2.xlsx”).Sheets(1).Range(“A2”).Value = “abc123” ThisWorkbook.Worksheets(“Ürünler”).Range(“A4”).CurrentRegion.Copy _ Workbooks(“Kitap2.xlsx”).Sheets(1).Range(“A4”) ShUrunler.Range(“A4”).CurrentRegion.Copy _ Workbooks(“Kitap2.xlsx”).Sheets(1).Range(“A4″) 2. Eğer kitap2 kapalıysa önce açmak gerekir 2a. İmmediate penceresinden dosyanın yolu bulunur: ?Workbooks(“kitap2.xlsx”).path C:Excel 2b. Dosya açılır: Application.Workbooks.Open “C:Excelkitap2.xlsx” 2c. İçerik kopyalanır: Workbooks(“kitap2.xlsx”).Sheets(1).Range(“A2”).Value = “abc123” ThisWorkbook.Worksheets(“Ürünler”).Range(“A4”).CurrentRegion.Copy _ Workbooks(“Kitap2.xlsx”).Sheets(1).Range(“A4”) ShUrunler.Range(“A4”).CurrentRegion.Copy _ Workbooks(“Kitap2.xlsx”).Sheets(1).Range(“A4”) 2d. Aşağıdaki kod, son açılan dosya Kitap2.xlsx…
-
Değişken Boyutlu Aralıkları Kopyalamak ve Yeniden Boyutlandırmak
Aşağıdaki yöntemlerle değişken boyutlu aralıkları kopyalamayı ve yeniden boyutlandırmayı inceleyeceğiz:
-
Aralıkların Sonunu veya Başlangıcını Bulmak
Aralıkların sonunun veya başlangıcının bulunması için çeşitli örnekler:
-
Value Text Farkı
Value, bir hücrede temel alınan değeri göster veya değiştir. Bu, aralık nesnesinin varsayılan özelliğidir. Text, verileri biçimlendirmeyi içererek dize (string) formatında döndürür.
