Excel'de vba nedir? (temelden i̇leri düzey'e)

VBA nedir?

VBA (Visual Basic for Applications), Excel’deki hemen hemen her şeyi otomatikleştirmenize olanak tanıyan bir programlama dilidir. VBA ile Excel nesnelerine başvurabilir ve bunlarla ilişkili özellikleri, yöntemleri ve olayları kullanabilirsiniz. Örneğin, bir makro kullanarak bir pivot tablo oluşturabilir, bir grafik ekleyebilir ve kullanıcıya bir mesaj kutusu görüntüleyebilirsiniz.

Çılgın olan şu:

Manuel olarak dakikalar içinde yaptığınız tüm görevleri VBA, tek tıklamayla, aynı hassasiyetle saniyeler içinde gerçekleştirebilir. Hatta bir belgeyi, çalışma kitabını açtığınızda ve hatta belirli bir zamanda otomatik olarak çalışabilen VBA kodları yazabilirsiniz.

Size somut bir örnek göstereyim:

Her sabah ofise gittiğimde yapmam gereken ilk şey, aylık satışlara ilişkin bir pivot tablo oluşturup bunu patronuma sunmak. Bu, her gün aynı adımları içerir. Ancak VBA’yı kullanarak pivot tablo oluşturup onu tek tıklamayla ekleyebileceğimi fark ettiğimde bu bana günde 5 dakika kazandırdı.

Pivot tablo oluşturmak için makro kodları

VBA bu şekilde çalışır

VBA nesne yönelimli bir dildir ve nesne yönelimli bir dil olarak VBA’da kodlarımızı nesneleri kullanacak ve sonra onların özelliklerini tanımlayacak şekilde yapılandırırız.

Basit bir ifadeyle önce nesneyi, sonra gerçekleştirmek istediğimiz aktiviteyi tanımlarız. VBA’da kodunuzu yazmak için kullanabileceğiniz nesneler, koleksiyonlar, yöntemler ve özellikler vardır.

>Bunu kaçırmayın<

Diyelim ki birine bir kutuyu açmasını söylemek istiyorsunuz. Kullanacağınız kelimeler “Kutuyu aç” olacaktır. Basit bir İngilizce, değil mi? Ancak konu VBA’ya ve makro yazmaya geldiğinde şöyle olacaktır:

 Box.Open

Gördüğünüz gibi yukarıdaki koda buradaki nesnemiz olan box ile başlıyoruz, daha sonra bunun için “Open” metodunu kullandık. Biraz daha spesifik olalım, diyelim ki KIRMIZI renkli kutuyu açmak istiyorsunuz. Ve bunun için kod şöyle olacak:

 Boxes(“Red”).Open

Yukarıdaki kodda kutular koleksiyondur ve açık yöntemdir. Birden fazla kutunuz varsa burada belirli bir kutuyu tanımlarız. İşte başka bir yol:

 Box(“Red”).Unlock = True

Yukarıdaki kodda, kutular yine koleksiyondur ve Kilit Açma, TRUE olarak ayarlanan özelliktir.

VBA Excel’de ne için kullanılır?

Excel’de VBA’yı farklı şeyler için kullanabilirsiniz. İşte bazıları:

  • Veri girin : Bir hücreye, bir hücre aralığına veri girebilirsiniz. Ayrıca verileri bir bölümden diğerine kopyalayıp yapıştırabilirsiniz.
  • Görev otomasyonu : Çok fazla zaman harcamanızı gerektiren görevleri otomatikleştirebilirsiniz. Verebileceğim en iyi örnek, pivot tablo oluşturmak için makro kullanmaktır.
  • Özel bir Excel işlevi oluşturun : VBA ile ayrıca kullanıcı tanımlı özel bir işlev oluşturabilir ve bunu çalışma sayfasında kullanabilirsiniz.
  • Eklentiler Oluşturun : Excel’de VBA kodlarınızı eklentilere dönüştürebilir ve bunları başkalarıyla da paylaşabilirsiniz.
  • Diğer Microsoft uygulamalarıyla entegre edin : Excel’i diğer Microsoft uygulamalarıyla da entegre edebilirsiniz. Örneğin, bir metin dosyasına veri girebilirsiniz.

Excel Programlama Temelleri

1. Prosedür

VBA’daki prosedür, belirli bir etkinliği gerçekleştiren bir dizi kod veya tek bir kod satırıdır.

  1. SUB : Sub prosedürü eylemleri gerçekleştirebilir ancak bir değer döndürmez (ancak bu değeri elde etmek için bir nesne kullanabilirsiniz).
  2. İşlev : İşlev prosedürünü kullanarak, elektronik tabloda veya diğer SUB ve FUNCTION prosedürlerinde kullanabileceğiniz işlevinizi oluşturursunuz (Buna bakın: VBA İşlevi ).

2. Değişkenler ve sabitler

Değerleri kodda birden çok kez kullanmak için değişkenlere ve sabitlere ihtiyacınız vardır.

  • Değişken : Bir değişken bir değer saklayabilir, bir adı vardır, veri türünü tanımlamanız gerekir ve sakladığı değeri değiştirebilirsiniz. Adından da anlaşılacağı gibi “DEĞİŞKEN”in sabit bir değeri yoktur. Sistemde saklanan bir saklama kutusu gibidir.
  • Sabit : Bir sabit aynı zamanda bir değer de saklayabilir ancak kodu çalıştırırken değeri değiştiremezsiniz.

3. Veri türleri

DEĞİŞKENLER ve SABİTLER için veri türünü bildirmeniz gerekir.

define data type

Bir değişken veya sabit için veri tipini belirttiğinizde verilerinizin geçerliliği sağlanır. Veri türünü atlarsanız VBA, Değişken veri türünü değişkeninize uygular (bu en esnek olanıdır), VBA veri türünün ne olması gerektiğini tahmin etmez.

İpucu: Açık VBA seçeneği

4. Nesneler, özellikler ve yöntemler

Visual Basic for Applications, nesne yönelimli bir dildir ve bundan en iyi şekilde yararlanmak için; Excel nesnelerini anlamanız gerekir.

Excel’de kullandığınız çalışma kitabı farklı nesneler içerir ve bu nesnelerin hepsinde erişebileceğiniz çeşitli özellikler ve kullanabileceğiniz yöntemler vardır.

5. Etkinlikler

Excel’de yaptığınız her şey bir olaydır: hücreye bir değer girin, yeni bir çalışma sayfası ekleyin veya bir grafik ekleyin. Olayların nesnelere göre sınıflandırılması aşağıda verilmiştir:

  1. Uygulama Olayları: Bu olaylar Excel uygulamasının kendisiyle ilişkilidir.
  2. Çalışma kitabı olayları: Bu olaylar, çalışma kitabında meydana gelen eylemlerle ilişkilidir.
  3. Çalışma sayfası olayları: Bu olaylar, çalışma sayfasında meydana gelen eylemle ilişkilidir.
  4. Grafik olayları: Bu olaylar (çalışma sayfalarından farklı olan) grafik sayfalarıyla ilişkilidir.
  5. Kullanıcı formu olayları: Bu olaylar, bir kullanıcı formuyla meydana gelen eylemle ilişkilidir.
  6. OnTime Olayları: OnTime olayları, kodu belirli bir zamanda tetikleyebilen olaylardır.
  7. OnKey Olayları: OnKey olayları, belirli bir tuşa basıldığında bir kodu tetikleyebilen olaylardır.

6. Kapsam

Aralık nesnesi, VBA kodlarınızdaki bir aralığa gönderme yapmanın en yaygın ve popüler yoludur. Hücre adresine başvurmanız gerekiyor, size sözdizimini anlatayım.

 Worksheets(“Sheet1”).Range(“A1”)

7.Koşullar

Diğer programlama dilleri gibi VBA’da da koşulları test etmek için kodlar yazabilirsiniz. Bunu iki farklı şekilde yapmanıza olanak sağlar.

  • IF THEN‌ ELSE‌ : Bu, bir koşulu test etmek ve ardından bu koşulun DOĞRU olması durumunda bir kod satırını yürütmek için kullanabileceğiniz bir IF ifadesidir. Yuvalama koşullarını şununla da yazabilirsiniz:
  • SELEC‌T‌ CASE : Seçme durumunda, yürütülecek farklı kod satırlarını yürütmek için bir koşul ve ardından farklı test sonucu durumları belirleyebilirsiniz. IF ifadesinden biraz daha yapılandırılmıştır.

8. VBA Döngüleri

VBA’da bir eylemi tekrarlayıp tekrarlayabilen kodlar yazabilirsiniz ve bunun gibi kod yazmanın birkaç yolu vardır.

  • For Next : For Next’i kullanmak için en uygun durum, bir dizi eylemi sabit sayıda tekrarlamak istediğiniz zamandır.
  • Her Sonraki İçin : Bir nesne koleksiyonundan bir grup nesne üzerinde yineleme yapmak istediğinizde kullanmak mükemmeldir.
  • Do While Döngüsü: Do While Döngüsünün ardındaki basit fikir, bir koşul doğruyken bir aktivite gerçekleştirmektir.
  • Döngüye Kadar Yap: Kadar Yap Döngüsünde, VBA bir döngü yürütür ve koşul YANLIŞ ise yürütmeye devam eder.

9. Giriş kutusu ve mesaj kutusu

  • Giriş Kutusu : Giriş Kutusu, kullanıcıya bir giriş kutusu görüntüleyen ve yanıt toplayan bir işlevdir.
  • Mesaj Kutusu : Mesaj Kutusu, kullanıcıya bir mesaj görüntülemenize yardımcı olur, ancak kullanıcıdan yanıt almak için mesaj kutusuna düğmeler ekleme seçeneğiniz de vardır.

10. Hatalar

Programlama hataları söz konusu olduğunda Excel şanssızdır ve ne olursa olsun onlarla uğraşmanız gerekir.

  1. Sözdizimi Hataları : Bunlar kod yazarken yaptığınız yazım hataları gibidir ancak VBA bu hataları bildirerek size yardımcı olabilir.
  2. Derleme hataları: Bunlar, bir aktiviteyi gerçekleştirmek için kod yazdığınızda, ancak bu aktivite geçersiz olduğunda ortaya çıkar.
  3. Çalışma Zamanı Hataları : Kod yürütme sırasında bir RUNTIME hatası oluşur. Kodu durdurur ve hata iletişim kutusunu görüntüler.
  4. Mantıksal hata : Bir hata değil, kod yazarken oluşan bir hatadır ve bazen bulma ve düzeltme konusunda size sıkıntı yaşatabilir.

Excel’de bir makro (VBA programı) yazın

Birisi Excel’de programlamaya başladığında, HE/SHE’nin sıfırdan giderek daha fazla kod yazması gerektiğine dair güçlü bir inancım var. Sıfırdan ne kadar çok kod yazarsanız VBA’nın nasıl çalıştığını o kadar çok anlarsınız.

Ancak karmaşık kodlara atlamak yerine basit kodlar yazarak başlamalısınız. İşte bu yüzden şu anda karmaşık hiçbir şey düşünmenizi istemiyorum.

Pivot tablo oluşturmak için makro kodu bile yazabilirsiniz ama şu anda bu kadar düşünmenizi istemiyorum. Elektronik tablonuzda yapmak istediğiniz bir aktiviteyi düşünelim ve bunun için kod yazabilirsiniz.

  1. Geliştirici sekmesine gidin ve “Visual Basic” butonundan Visual Basic Düzenleyiciyi açın.
    visual-basic-button
  2. Daha sonra “Proje Penceresi”nden yeni bir modül ekleyin (Sağ Tık  Ekle  Modül).
    insert-a-new-module
  3. Daha sonra kod penceresine gelin ve aşağıda yaptığım gibi “Enter Done” isminde bir makro oluşturun (SUB prosedürü oluşturuyoruz).
    code-window
  4. Oradan yukarıda bahsettiğimiz bazı kodları yazmanız gerekiyor. Bir saniye bekleyip şöyle düşünün: Değeri eklemek istediğiniz hücreyi, ardından girmek istediğiniz değeri belirtmeniz gerekiyor.
  5. Hücre referansını girin ve bunun için RANGE nesnesini kullanmanız ve oradaki hücre adresini aşağıdaki gibi belirtmeniz gerekir:
    cell-reference-range-object
  6. Bundan sonra bir nokta girin ve bir nokta eklediğiniz anda, ayarlayabileceğiniz özelliklerin ve aralıkta yapabileceğiniz etkinliklerin bir listesine sahip olacaksınız.
    enter-a-dot
  7. Buradan “Value” özelliğini seçip “A1” hücresine eklemek istediğiniz metni ayarlamanız gerekiyor ve bunu yaptığınızda kodunuz aşağıdaki gibi görünecek.
    select-value
  8. Son olarak, kod satırının üstüne metni girin (“bu kod, A5 hücresine “Bitti” değerini girer). Bu, yazdığınız kod satırını tanımlamak için ekleyebileceğiniz bir VBA yorumudur .
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

Bunu anlayalım…

Bu kodu iki farklı parçaya bölebilirsiniz.

  • FIRST kısmında RANGE nesnesini kullanarak hücre adresini belirledik . Ayrıca, aralık nesnesini kullanarak bir hücreye atıfta bulunmak için, hücre adresini çift tırnak içine almanız gerekir (köşeli parantez de kullanabilirsiniz).
  • İKİNCİ bölümde hücreye girilecek değeri belirttik. Yaptığınız şey, “.Value” kullanarak A5 hücresi için değer özelliğini ayarladınız. Bundan sonra belirttiğiniz bir sonraki şey, value özelliğine göre değerdir . Bir değeri tanımladığınızda (eğer metin ise), bu değeri çift tırnak içine almanız gerekir.

VBA’yı Öğrenmenin En İyi Yolu

Burada VBA’yı kısa sürede öğrenmenize yardımcı olabilecek en harika eğitimlerden bazılarını (belirli bir sırayla değil) listeledim.

11. İşlevler

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir