Ana içeriğe atla

VBA Excel: Başlangıç Rehberi ve İşinizi Nasıl Kolaylaştırır

VBA’yı Excel’de görevleri otomatikleştirmek, makrolar oluşturmak ve pratik örnekler ile en iyi uygulamalarla veri işleme becerilerinizi geliştirmek için nasıl etkili kullanacağınızı öğrenin.
Güncel 22 Nis 2026  · 10 dk. oku

Excel’de Visual Basic for Applications (VBA), kullanıcıların tekrarlayan görevleri otomatikleştirmesine ve Excel’in standart özelliklerinin çok ötesinde işlevsellik katmasına olanak tanıyan bir dildir. Bu nedenle, ister verimliliğini artırmak isteyen bir başlangıç düzeyi kullanıcı olun, ister karmaşık iş akışlarını basitleştirmeyi hedefleyen ileri düzey bir kullanıcı, VBA işleri kolaylaştırmak için burada.

Bu rehberde temel ve ileri düzey VBA kavramlarını açıklayacağım. Ancak Excel’e yeniyseniz, VBA’ya geçmeden önce sağlam bir temel oluşturmak üzere Excel Fundamentals ile başlamanızı öneririm.

Excel’de VBA nedir?

Visual Basic for Applications (VBA), görevleri otomatikleştirmek ve Microsoft Office uygulamalarının işlevselliğini artırmak için kullanılan bir programlama dilidir. Excel, Word, Access ve diğer Office programlarıyla kullanabilirsiniz; ancak muhtemelen en yaygın kullanım alanı Excel’de özel makrolar oluşturmaktır; buna yakından bakacağız.

Benim VBA’yı ilk kullanışım, her hafta saatler süren bir raporu otomatikleştirmek içindi. Sadece birkaç satır kodla süreci tek tuşla çalıştırır hale getirdim ve ciddi zaman kazandım. O andan itibaren, buna hâkim olmak için biraz zaman ayırmanın verimlilik açısından olağanüstü geri dönüş sağlayacağını anladım.

Önemli VBA Excel Terimleri

VBA ile çalışmadan önce temel terim ve kavramlarını anlamanız gerekir. İşte Excel’de görevleri otomatikleştirmeye ve özel çözümler oluşturmaya başladığınızda sıkça karşılaşacağınız bazı terimlerin listesi.

  • Modüller VBA kodunun, yordamların ve fonksiyonların saklandığı kaplardır.

  • Nesneler VBA’nın yapı taşlarıdır. Çalışma kitapları, çalışma sayfaları ve hücreler gibi öğeleri temsil ederler.

  • Yordamlar belirli görevleri yerine getiren kod bloklarıdır; genellikle alt yordamlar veya fonksiyonlar olarak sınıflandırılır.

  • İfadeler, bir yordam içinde Excel’e (veya Word ya da Access’e) hangi işlemleri yapacağını söyleyen komutlardır.

  • Değişkenler, kodunuz içinde kullanılabilen ve üzerinde işlem yapılabilen verileri saklar.

  • Mantıksal operatörler, değerleri karşılaştırır ve sonuca göre kararlar alır. And, Or ve Not gibi operatörleri içerir.

Excel’de VBA’ya Başlamak

VBA kullanmaya başlamak için VBA düzenleyicisine erişmeniz gerekir. VBA kodunuzu burada yazıp düzenleyeceksiniz. Haydi oraya nasıl gideceğimize bakalım:

Geliştirici sekmesini etkinleştirme 

İlk adım, genellikle Şerit üzerinde gizli olan Developer sekmesini etkinleştirmektir. Bunu yapmak için:

  • Şerit’in herhangi bir yerine sağ tıklayın. 

Excel’de şerit

Excel’de Şerit. Görsel: Yazar.

  • Customize the Ribbon... seçeneğini seçin. 

Excel’de şeridi özelleştirme

Geliştirici sekmesini etkinleştirmek için Şeridi özelleştirin. Görsel: Yazar.

  • Bir ileti kutusu açılacaktır. Developer seçeneğini işaretleyin ve OK düğmesine basın.

Excel’de ileti kutusunda Developer seçeneğini işaretleyip OK’e tıklama

Developer seçeneğini belirleme. Görsel: Yazar.

Artık Developer sekmesini Şerit’in üstünde görebilirsiniz.

Excel’de Developer sekmesi

Şeritte Developer sekmesi etkin. Görsel: Yazar.

VBA düzenleyicisini açma 

Developer sekmesi etkinleştirildiğinde VBA düzenleyicisine erişebilirsiniz. Bunu yapmak için Developer sekmesine tıklayın ve seçenekler arasından Visual Basic öğesini seçin. Ayrıca klavye kısayolu ALT + F11 ile VBA düzenleyicisini doğrudan açabilirsiniz.

Excel’de VBA düzenleyici arayüzü

VBA düzenleyicisi. Görsel: Yazar.

VBA arayüzünde gezinti 

VBA düzenleyicisi ilk bakışta göz korkutucu görünebilir, ancak kullanımı kolaydır. Birkaç kilit alanını anlayalım:

  • Kod Bölmesi, VBA kodunuzu yazıp düzenlediğiniz yerdir.
  • Proje Gezgini, çalışma kitabınızdaki projelerin ve modüllerin hiyerarşik görünümünü gösterir.
  • Özellikler Penceresi, seçili nesnelerin ayarlarını özelleştirmek için özelliklerini görüntüler.

Excel’de VBA arayüzü

Excel’de VBA arayüzü. Görsel: Yazar.

Excel’de VBA Kodu Yazma

Artık VBA düzenleyicisine aşina olduğunuza göre kod yazmaya başlayabiliriz. VBA kodu, alt yordamlar ve fonksiyonlar gibi farklı parçalardan oluşur. Bunlar Excel’e ne yapacağını söyleyen komut dizileridir. Daha önce programlama yapmadıysanız endişelenmeyin — adım adım ilerleyeceğim. 

Bir VBA alt yordamı yazma

Bir makro yazmadan önce makro ortamını oluşturmanız gerekir. Bunu yapmak için şu adımları izleyin:

  • VBA düzenleyicisi içinde Insert > Module seçin. Varsayılan adla yeni bir modül oluşturulacaktır: Module1. 

VBA’da yeni modül ekleme

Insert sekmesi altında Module’ü seçin. Görsel: Yazar.

  • Modülün adını Özellikler bölmesinde değiştirebilirsiniz.

Excel’de VBA”a yeni oluşturulan modülün adını değiştirme

VBA modülünü yeniden adlandırın. Görsel: Yazar.

Artık bir makro oluşturmak için ortamı nasıl kuracağınızı bildiğinize göre, birlikte bir mesaj görüntüleyen ilk makromuzu oluşturalım. Varsayılan olarak modül oluşturulduğunda kod penceresi açılır. Sizde açılmazsa, oluşturduğunuz modüle sağ tıklayın ve View Code seçeneğine tıklayın. Makrolarınızı yazabileceğiniz kod penceresi açılacaktır.

Burada, Hello, World! mesajını görüntüleyen bir makro oluşturuyorum. Bunu yapmak için kod bölmesine aşağıdaki kodu yazıyorum:

Sub ShowMessage()
    MsgBox "Hello, World!"
End Sub 

Burada:

  • Sub, belirli bir görevi yerine getiren bir kod bloğu olan alt yordam için anahtar kelimedir. VBA’da alt yordam bir değer döndürmez.

  • ShowMessage, alt yordamın adıdır. VBA adlandırma kurallarına uyduğu sürece (ör. boşluk yok, sayı ile başlayamaz) istediğiniz gibi adlandırabilirsiniz.

  • () burada alt yordamın parametrelerini tanımlamak için kullanılır. Bu görev için parametre gerekmediğinden parantezler boştur.

  • MsgBox, ekranda bir ileti kutusu görüntüleyen yerleşik bir VBA fonksiyonudur. 

  • End Sub ifadesi alt yordamın bittiğini belirtir. Sub ile End Sub arasındaki her şey, alt yordam çağrıldığında çalışacak koddur.

  • Metin dizeleri VBA’da çift tırnak içine alınır. Burada, Hello, World! dizesinin ileti kutusunda görünmesini istiyoruz.

Excel’de kod bölmesinde bir VBA makrosu yazma

Bir makro yazma. Görsel: Yazar.

  • Şimdi kodu çalıştırma zamanı. F5 kısayolunu kullanın. Elle yapmak isterseniz Developer sekmesine gidip Macros seçin. Run düğmesine basın. 

Excel’de developer sekmesi altındaki Macros seçeneğini seçip makroyu çalıştırma

Developer sekmesi altındaki Macros seçeneğini seçin. Görsel: Yazar.

Artık Excel sayfanızda ileti kutusunun göründüğünü görebilirsiniz.

Excel’de ileti kutusu

İleti kutusu. Görsel: Yazar.

VBA’da nesneleri anlama 

VBA’da nesneler, Excel içindeki farklı öğeleri kontrol etmenizi ve iş akışlarını daha verimli hale getirmek için görevleri otomatikleştirmenizi sağlar. Üç temel nesne vardır: Workbook, Worksheet ve Range. Her birini pratik bir örnekle anlayalım.

Workbook nesnesi, şu anda açık olan herhangi bir Excel dosyasıdır. Çalışma kitabı içinde yeni sayfalar ekleme veya mevcut sayfaları kaydetme gibi işlemleri yapmamıza olanak tanır. Bu örnekte, mevcut kitaba bir sayfa eklemek ve ardından kaydetmek istiyorum. Başta Sheet1 vardı. Başka bir sayfa eklemek için şu kodu yazıyorum:

Sub AddSheetAndSaveWorkbook()
    ' Adds a new worksheet to the active workbook
   ActiveWorkbook.Sheets.Add
    
    ' Saves the workbook
    ActiveWorkbook.Save
End Sub

Bu kod önceki kodla aynı şekilde çalışır, ancak burada açıklama satırları ekledim. Açıklamalar ' ile başlar ve kodunuzu etkilemez. Yalnızca kodu daha anlaşılır kılmak için ekleriz. 

Artık Sheet2 adlı başka bir sayfanın oluşturulduğunu görebilirsiniz.

Excel’de VBA kullanarak mevcut sayfaya yeni sayfa ekleyip kaydetme

VBA ile mevcut sayfaya yeni bir sayfa ekleyip kaydetme. Görsel: Yazar.

Worksheet nesnesi, Excel’de şu anda etkin olan sayfayı temsil eder. Bununla etkin sayfayı değiştirebilir veya üzerinde işlem yapabilirsiniz. Örneğin, etkin sayfanın adını değiştirmek istiyorum. Bunu yapmak için şu kodu giriyorum:

Sub RenameActiveSheet()
    ' Renames the active sheet to "Sales Report".
    ActiveSheet.Name = "Sales Report"
End Sub

Excel’de VBA kullanarak çalışma sayfasının adını değiştirme kodu

VBA ile çalışma sayfasının adını değiştirme. Görsel: Yazar.

Artık Sheet1 adı Sales Report olarak değiştirildi.

VBA kullanarak çalışma sayfasını yeniden adlandırma

Excel çalışma sayfasını VBA ile yeniden adlandırma. Görsel: Yazar.

Range nesnesi, ihtiyacımıza göre işlem yapabileceğimiz belirli bir hücre grubunu veya tek bir hücreyi ifade eder.  Aşağıdaki örnekte, F3 ile I3 arasındaki hücre aralığını seçip arka plan rengini değiştiriyorum. Bunu yapmak için şu kodu yazıyorum:

Sub FormatRange()
    ' Selects the range from A1 to C6
    Range("F3:I3"). Select
    
    ' Changes the background color of the selected range to Green
    Selection.Interior.Color = RGB(101, 255, 143)
End Sub

Excel’de VBA kullanarak seçili aralığın rengini değiştirme kodu

VBA ile aralık seçip rengini değiştirme. Görsel: Yazar.

Sonuçlardaki farkı görebilirsiniz. 

Excel’de VBA ile seçilen aralığın rengini değiştirme sonuçları

Excel’de VBA ile renk değiştirme. Görsel: Yazar.

VBA’da değişken oluşturma

Diğer programlama dillerinde olduğu gibi, VBA değişkenleri iki ana veri türünü saklar: sayılar ve metin. VBA’da kullanmak için önce tercih ettiğiniz anahtar kelimeyle, ardından değişken adı ve veri türüyle birlikte değişkeni bildirmelisiniz.

Keyword variableName As DataType

Burada: 

  • Keyword, Dim, Static, Public veya Private olabilir.

  • variableName, bu değişken için seçilen adı ifade eder (boşluk yok).

  • As, değişken türünü bildirmek için kullanılır.

  • DataType, Integer gibi değişken türünü ifade eder.

Değişkenlerle çalışırken bazı kurallara da uymalısınız:

  • Uzunluk 255 karakterden az olmalıdır.
  • Karakterler arasında boşluk bulunamaz.
  • Ad bir sayı ile başlayamaz.
  • Ad içinde nokta kullanmayın.

Sayısal veri türü

VBA’da sayısal veri türleri sayısal değerleri depolamak için kullanılır.

Veri türü Depolama Değer aralığı
Byte 1 Bayt 0 ile 255 arasındaki tamsayıları depolar
Integer 2 Bayt -32.768 ile 32.767 arasındaki tam sayıları depolar
Long 4 Bayt -2.147.483.648 ile 2.147.483.647 arasındaki daha büyük tam sayıları depolar
Single 4 Bayt Tek duyarlıklı ondalık sayıları depolar
Double 8 Bayt Çift duyarlıklı ondalık sayıları depolar
Currency 8 Bayt Sabit ondalık basamaklı sayıları depolar
Variant (metin) Metin uzunluğu + 22 bayt 0 ila 2 milyar karakter

Sayısal olmayan veri türü

VBA’daki sayısal olmayan veri türleri sayı olmayan değerleri saklar.

Veri türü Depolama Değer aralığı
String Dize uzunluğu Metin depolar
Date 8 Bayt Tarih ve saati depolar
Boolean 2 Bayt True veya False değerlerini depolar
Variant 16 Bayt Herhangi bir veri türünü depolar; türün önceden bilinmediği durumlarda kullanılır

VBA Excel Makrolarıyla Görevleri Otomatikleştirme

Makrolar, tekrarlayan görevleri yerine getirmek için VBA’da oluşturulan komut dizileridir. Bir makroyla, hücreleri biçimlendirme, verileri kopyalama veya hesaplamalar yapma gibi bir dizi işlemi kaydedebilirsiniz. Makroyu kaydettikten sonra bu işlemleri tek bir tıklamayla yeniden uygulayabiliriz. Bu, özellikle büyük veri kümeleri veya görevlerle çalışırken zaman kazandırır.

Örneğin, raporlarınızı sıklıkla aynı şekilde biçimlendiriyorsanız, her seferinde elle yapmak yerine gerekli tüm biçimlendirme adımlarını uygulayan bir makro kaydedebilirsiniz. Daha sonra bu makroyu yeni verileri biçimlendirmek için çalıştırabilirsiniz. Birkaç temel örnek gösterdik; tek tıklamayla çok daha fazla küçük işlemi yaptığınızı hayal edin. Kodlama deneyiminiz olmasa bile, rutin görevleri otomatikleştirerek iş akışını kolaylaştırabilir ve tekrarlayan işlemleri manuel yaparken ortaya çıkabilecek hataları azaltabilirsiniz.

Excel makrosu kaydetme 

Bazı biçimlendirme değişikliklerini yapmak için bir makroyu nasıl kaydedebileceğinizi görelim:

  • Developer sekmesine gidin > Record Macro düğmesine tıklayın. 
  • Bir ileti kutusu açılacaktır. Benim yaptığım gibi makronuza bir ad verin: FormatCells.
  • İsterseniz bir klavye kısayolu atayın. Ben Ctrl+S atadım.
  • Kayda başlamak için OK düğmesine tıklayın.

Makro kaydı başladıktan sonra otomatikleştirmek istediğiniz işlemleri yapın. Bu örnekte basit bir tabloya bazı biçimlendirme değişikliklerini kaydediyorum. Tamamladığınızda tekrar Developer sekmesine gidip Stop Recording düğmesine tıklayın. Aşağıda makronun çalışmasını görebilirsiniz.

Excel’de VBA kullanarak makro kaydetme. Gif: Yazar.

Şimdi, başka bir sayfada başka bir veri kümeniz varsa ve aynı biçimlendirmeyi orada da istiyorsanız, tümünü yeniden biçimlendirmek yerine oluşturduğunuz kısayol tuşuna basın (benim durumumda Ctrl+S). Aksi halde manuel yapmak için sheet2 > Developer sekmesi > Macros > Run yolunu izleyin.

Excel makrosunu kullanma. Gif: Yazar.

Excel makrolarını düzenleme 

Bir makro kaydettikten sonra, eylemlerini ince ayar yapabilir veya özelleştirebilirsiniz. İşte nasıl: 

  • Developer sekmesine gidin ve Visual Basicse tıklayın. 
  • VBA düzenleyicisi açılacaktır. Şimdi Proje Gezgini içinde, makronuzun kaydedildiği çalışma kitabını bulun. 
  • Modules klasörünü genişletin ve makronuzu içeren modüle çift tıklayın. Kod penceresi, kaydedilmiş makronuzun VBA kodunu gösterecektir.

Excel’de makro kaydedilirken gerçekleştirilen eylemlerin koda dönüşmüş hali

Excel’de kaydedilen makronun kodu. Görsel: Yazar.

Her bir kod satırı, kayıt sırasında yaptığınız eylemi gösterir. Buradan, kaydedilen kodu tercihlerinize göre özelleştirmek için değiştirebilirsiniz. Benim durumumda, kalın biçimlendirmeyi kaldırmak için Selection.Font.Bold değerini False olarak ayarladım. Düzenlemeleri tamamladıktan sonra kaydet düğmesine tıklayarak veya Ctrl+S tuşlarına basarak değişiklikleri kaydedin ve değişiklikleri uygulamak için Run ile kodu çalıştırın. Excel’de VBA makroyu özelleştirme

Excel VBA makrosunu özelleştirme. Görsel: Yazar.

Makronuzu çalıştırdıktan sonra sonuçları görebilirsiniz — daha önce kalın olan sütunlar artık kalın değil. 

VBA Excel’de elle düzenlenen makronun sonuçları

Excel’de makro kullanma. Görsel: Yazar

Özel Excel makroları yazma 

Bazı gelişmiş görevlerde makro kaydedemeyebilirsiniz. Bu gibi durumlarda makroyu sıfırdan yazmanız gerekir. Örneğin, verileri bir çalışma sayfasından diğerine kopyalamak istiyorum. Özel bir makroyu şöyle yazıyorum:

  • İlk sayfada VBA düzenleyicisini elle açın veya Alt+F11 tuşlarına basın.
  • Yeni bir modül ekleyin.
  • Kod bölmesine aşağıdaki kodu yazın.
Sub CopyData()
Sheets("Sheet1").Range("B1:E21").Copy Destination:=Sheets("Sheet2").Range("B1")
End Sub
  • Makroyu kaydedin ve Run ile çalıştırın.

Artık Sheet1’deki verilerin Sheet2’ye kopyalandığını görebilirsiniz.

Excel’de VBA ile özel makro yazma adım adım rehber

VBA kullanarak özel makro yazma. Gif: Yazar.

Son Düşünceler 

Tekrarlayan görevleri otomatikleştirmekten karmaşık makrolar oluşturmaya kadar VBA, Excel içinde bir olasılıklar dünyasının kapısını açar. Temellere alıştıkça kod yazma pratiği yapın ve kademeli olarak VBA’nın daha gelişmiş özelliklerini keşfedin. Unutmayın, VBA’da — ya da herhangi bir programlama dilinde — ustalaşmanın anahtarı tutarlı pratik ve denemeye açıklıktır. Becerilerinizi daha da geliştirmek için şu ek kaynakları inceleyebilirsiniz. Data Analysis in Excel ve Learn Excel kursları, Excel’in özellikleri hakkında daha fazla bilgi edinmek için mükemmeldir. 

VBA’nın ötesinde kodlama bilginizi genişletmek istiyorsanız, 2024’te Nasıl Programcı Olunur rehberi bir yol haritası sunar. Bu alana ilgi duyuyorsanız mutlaka göz atın. Ayrıca Financial Modeling in Excel kursu, ayrıntılı finansal modeller oluşturmakla ilgilenenler için idealdir.


Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.

Sık Sorulan VBA Excel Soruları

VBA’da Explicit ifadesinin amacı nedir?

Explicit ifadeleri, tüm değişkenlerin kullanımdan önce açıkça tanımlanmasını sağlayarak hataları azaltmaya ve kodunuzu daha sürdürülebilir kılmaya yardımcı olur.

VBA kodumu nasıl şifreyle korurum?

VBA kodunuzu şu yol ile koruyabilirsiniz: VBA editor > Tools > VBAProject Properties > Protection sekmesi. Lock project for viewing seçeneğini işaretleyip bir parola belirleyin.

VBA’da ActiveWorkbook ile ThisWorkbook arasındaki fark nedir?

ActiveWorkbook, odakta olan çalışma kitabını ifade eder ve bu kitap VBA kodunu içermek zorunda değil. Thisworkbook ise hangi çalışma kitabı etkin olursa olsun, VBA kodunun bulunduğu çalışma kitabını ifade eder.

VBA’da UserForm nedir ve nasıl kullanılır?

UserForms, VBA’da kullanıcının veri girişi yapmasını sağlayan özel ileti kutularıdır. Veri girişi, seçim veya özel bir arayüz gerektiren kullanıcı etkileşimi için etkileşimli formlar oluşturmakta kullanılabilirler.

Konular

DataCamp ile Excel ve VBA Öğrenin

Program

Excel Temelleri

16 sa
Veri hazırlamaktan formül yazmaya ve görselleştirmeler oluşturmaya kadar Excel'i kullanmak için ihtiyacınız olan temel becerileri kazanın. Önceden deneyim gerekmez.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow