-
VBA ve Excel.Worksheet Fonksiyonları
VBA ve Excel, hesaplamaları yapmanıza yardımcı olacak yerleşik işlevlere sahiptir. VBA’nın Excel’e eşdeğer bir işlevi varsa, yalnızca VBA işlevini kullanabilirsiniz. Fonksiyonlar aşağıdaki 3 başlangıç ifadesiyle eklenebilir. Excel (Türkçe) Excel (İngilizce) VBA karşılığı MUTLAK ABS ABS EBOŞSA ISBLANK ISEMPTY UZUNLUK LEN LEN KÜÇÜKHARF LOWER LCASE S_SAYI_ÜRET RAND RND BUGÜN TODAY DATE TÜR TYPE TYPENAME BÜYÜKHARF UPPER…
-
Immediate Penceresi
Immediate Penceresi, Excel dosyalarınız hakkında anında yanıtlar almanızı ve hızlı bir şekilde kod yürütmenizi sağlayan harika bir araçtır. ? işareti kullanarak aradığımız cevapları bulabiliriz Eğer Immediate ekranında ? işaretini kaldırırsak kod uygulanır: Debug.print sonucu Immediate ekranına yazar Immediate ekranını kullanarak tüm gizli sayfaları görünür yapmak For Each sh In Worksheets: sh.Visible = True: Next sh
-
GoTo ifadesi
Program Akışını Değiştirmek için GoTo ifadesi kullanılır. Bunu esas olarak hata yönetimi için kullanın aksi takdirde kodunuz çok kafa karıştırıcı hale gelebilir. Örnek: Sub Basit_GoTo() Range(“D3”).Value = “” If IsError(Range(“B3”)) Then GoTo Cikis Range(“C3”).Value = Range(“B3”).Value Exit Sub Cikis: Range(“D3”).Value = “hücrede hata var” Range(“C3”).Value = “” End Sub
-
Select Case
Select Case, If…Then koşul sorgulamasına iyi bir alternatif uygulamadır. Koda daha iyi bir genel bakış sağlanır Daha kolay kod bakımı yapılır Daha hızlı kod yürütülür. Sorgulama, DOĞRU’ya ulaştığı anda kod uygulanır ve VBA Select Case yapışından çıkar. Dolayısıyla olası durumları kodun en üstüne yerleştirmek gerekir. Örnek: Sub makro() Select Case Range(“B3”).Value Case 3, 5, 7…
-
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…
