Visual Basic for Application ( VBA , Excel'in işlevselliğini genişletmenize ve tekrarlanan görevleri otomatikleştirmenize olanak tanıyan bir programlama dilidir VBA ile makrolar, formlar, özel işlevler ve etkileşimli uygulamalar oluşturabilirsiniz. Bu makalede, Excel'de VBA'nın temellerini ve bunun basit veya karmaşık işlemleri gerçekleştirmek için nasıl kullanılacağını öğreneceksiniz.
Excel'de VBA'ya nasıl erişilir?
Excel'de VBA'ya erişmek için şeritteki Geliştirici sekmesini etkinleştirmeniz gerekir. Bunu yapmak için şu adımları izleyin:
- Dosya düğmesine ve ardından Seçenekler'e tıklayın.
- Excel Seçenekleri penceresinde Şeridi Özelleştir'i tıklayın.
- Ana sekmeler listesinde Geliştirici kutusunu işaretleyin ve ardından Tamam'a tıklayın.
Daha sonra şeritte Geliştirici sekmesinin göründüğünü göreceksiniz. Bu sekme, Visual Basic düğmesi, Makro Kaydet düğmesi veya Denetim Ekle düğmesi gibi VBA ile ilgili çeşitli araçları içerir.
Visual Basic düğmesi, VBA kodunu oluşturup düzenlediğiniz Visual Basic Düzenleyicisi'ni (VBE) açar. Makro Kaydet düğmesi, uygulamada gerçekleştirdiğiniz eylemleri yeniden üreten VBA kodunu otomatik olarak oluşturur. Denetim Ekle düğmesi, çalışma sayfanıza düğmeler, onay kutuları veya açılır listeler gibi etkileşimli öğeler eklemenizi sağlar.
Excel'de VBA kodu nasıl yazılır?
Excel'de VBA kodu yazmak için Visual Basic Düzenleyicisi'ni (VBE) kullanmanız gerekir. Açmak için şeridin Geliştirici sekmesindeki Visual Basic düğmesini tıklayın.
VBE birkaç pencereden oluşur:
- Proje penceresi, VBA kodunu içeren nesnelerin hiyerarşik yapısını görüntüler. Örneğin, Sayfa1 ve Sayfa2 adında iki sayfa içeren MyWorkbook.xlsm adında bir çalışma kitabınız varsa, Sayfa1 ve Sayfa2 nesnelerinin yanı sıra ThisWorkbook adlı bir nesnenin MyWorkbook.xlsm altında göründüğünü göreceksiniz.
- Özellikler penceresi, Proje penceresinde seçilen nesnenin özelliklerini görüntüler. Örneğin, Sayfa1 nesnesini seçerseniz, onun adı (Ad), rengi (Tab.Color), kodu (KodAdı) vb. gibi özelliklerini göreceksiniz.
- Kod penceresi, Proje penceresinde seçilen nesneyle ilişkili VBA kodunu görüntüler. Örneğin Sayfa1 nesnesini seçerseniz Sayfa1 çalışma sayfasıyla etkileşim kurduğunuzda çalışan VBA kodunu görürsünüz.
- Acil pencere, VBA kodu sonuçlarını veya hata mesajlarını görüntüler. Örneğin, kullanıcıya bir mesaj görüntülemek için MsgBox işlevini kullanırsanız, mesajın Anlık pencerede göründüğünü göreceksiniz.
VBA kodu yazmak için belirli sözdizimi kurallarına uymanız gerekir:
- Her ifade yeni satır veya iki nokta üst üste (:) ile bitmelidir.
- VBA dili anahtar sözcükleri büyük veya küçük harflerle yazılmalıdır, ancak büyük/küçük harfe duyarlı nesnelerin, özelliklerin veya yöntemlerin adları yazılmamalıdır.
- Yorumlardan önce kesme işareti (') veya Rem karakteri gelmeli ve ayrı bir satıra veya ifadeden sonra yazılmalıdır.
- Karakter dizileri çift tırnak (“”) içine alınmalıdır.
- Aritmetik operatörler +, -, *, / ve ^'dir (kuvvet).
- Mantıksal operatörler And, Or, Not, Xor ve Eqv'dir.
- Karşılaştırma operatörleri =, <>, <, <=, > ve >='dir.
- Önceden tanımlanmış sabitler True, False, Null, Empty, Nothing ve vbNullString'dir.
Burada kullanıcıya bir mesaj görüntüleyen bir VBA kodu örneği verilmiştir:
Sub Hello() ' Bu bir MsgBox yorumudur "Merhaba, ben Bing!" ' Bir End Sub mesajı görüntüler
VBA'da Excel elektronik tablo işlevleri nasıl kullanılır?
VBA bildirimlerinizde Excel elektronik tablo işlevlerinin çoğunu kullanabilirsiniz. Bunu yapmak için aşağıdaki sözdizimini kullanmanız gerekir:
Application.WorksheetFunction.FunctionName(argüman1, argüman2, ...)
Örneğin A1:A10 aralığındaki değerlerin toplamını hesaplamak için SUM fonksiyonunu kullanmak istiyorsanız şunu yazabilirsiniz:
Sub Sum() Dim result As Double ' Double türünde bir değişken bildirir result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' SUM işlevinin sonucunu MsgBox result değişkenine atar ' Sonucu görüntüler End Alt
VBA'da kendi oluşturduğunuz özel işlevleri de kullanabilirsiniz. Bunu yapmak için aşağıdaki sözdizimini kullanmanız gerekir:
Fonksiyon FonksiyonAdı(argüman1 As Tip1, argüman2 As Tip2, ...) As ReturnType ' Bildirimler ve talimatlar FonksiyonAdı = ifade ' Döndürülecek sonucu fonksiyona atar End Function
Örneğin bir sayının karesini hesaplayan bir fonksiyon oluşturmak istiyorsanız şunu yazabilirsiniz:
Fonksiyon Square(number As Double) As Double ' Bir sayıyı argüman olarak alan ve sayıyı döndüren bir fonksiyon bildirir Square = sayı * sayı ' Sayının karesini fonksiyona atar End Function
Daha sonra bu işlevi VBA ifadelerinizde veya Excel formüllerinizde kullanabilirsiniz. Örneğin :
Sub Test() Dim x As Double ' Double x = 5 türünde bir değişken bildirir ' MsgBox Square(x) değişkenine 5 değerini atar ' x'in karesini görüntüler End Sub
Excel'de makrolar nasıl oluşturulur?
Makro, aynı anda yürütülen bir dizi VBA talimatıdır. Excel'de yinelenen veya karmaşık görevleri otomatikleştirmek için makrolar oluşturabilirsiniz. Makro oluşturmanın iki yolu vardır: kaydederek veya yazarak.
Makro kaydetme
Makro kaydetme, Excel'de gerçekleştirdiğiniz eylemleri yakalamak ve bunları VBA koduna dönüştürmek için şeridin Geliştirici sekmesindeki Makro Kaydet düğmesinin kullanılmasını içerir. Bu, makro oluşturmanın en basit ve en hızlı yoludur ancak kötü optimize edilmiş veya gereksiz kod üretebilir.
Bir makroyu kaydetmek için şu adımları izleyin:
- Şeridin Geliştirici sekmesindeki Makro Kaydet düğmesini tıklayın.
- Makro Kaydet iletişim kutusunda, makronuza bir ad verin, isterseniz bir klavye kısayolu seçin, makronuzu depolayacağınız konumu seçin (etkin çalışma kitabı, yeni çalışma kitabı veya kişisel çalışma kitabı) ve isterseniz bir açıklama yazın.
- Kaydı başlatmak için Tamam'a tıklayın.
- Excel'de otomatikleştirmek istediğiniz eylemleri gerçekleştirin. Örneğin, bir tabloyu biçimlendiren bir makro oluşturmak istiyorsanız tabloyu seçin, stillendirin, alfabetik olarak sıralayın vb.
- Kaydı bitirmek için Şeritteki Geliştirici sekmesindeki Kaydı Durdur düğmesini tıklayın.
Daha sonra makronuzu seçtiğiniz klavye kısayolunu kullanarak, Şerit'in Geliştirici sekmesindeki Makrolar düğmesini tıklatarak veya VBE'deki Çalıştır düğmesini kullanarak çalıştırabilirsiniz.
Bir makro yaz
Makro yazmak, otomatikleştirmek istediğiniz eylemlere karşılık gelen VBA kodunu doğrudan yazmak için VBE'yi kullanmayı içerir. Bu, makro oluşturmanın en esnek ve güçlü yöntemidir ancak programlama bilgisi gerektirir.
Makro yazmak için şu adımları izleyin:
- Şeridin Geliştirici sekmesindeki Visual Basic düğmesini tıklatarak VBE'yi açın.
- Proje penceresinde makronuzu depolamak istediğiniz nesneyi (etkin çalışma kitabı, yeni çalışma kitabı veya kişisel çalışma kitabı) seçin.
- Kod penceresinde otomatikleştirmek istediğiniz eylemlere karşılık gelen VBA kodunu yazın. Örneğin, bir tabloyu biçimlendiren bir makro oluşturmak istiyorsanız aşağıdaki kodu yazın:
Sub FormatTable() ' Tabloyu seçer Range("A1:D10").Select ' Tabloya stil uygular Selection.Style = "Table 1" ' Tabloyu A sütununa göre alfabetik olarak sıralar ActiveWorkbook.Worksheets("Sheet1" ). Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A10") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal, ActiveWorkbook .Worksheets ile ("Sayfa1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Daha sonra makronuzu VBE'deki Çalıştır düğmesini kullanarak veya makroya bir klavye kısayolu veya kontrolü atayarak çalıştırabilirsiniz.
SSS
Excel'de VBA'nın kullanılmasıyla ilgili sık sorulan bazı sorular şunlardır:
VBA nedir ve neden kullanılır?
VBA, Microsoft Office ile birlikte gelen Visual Basic sürümüdür. Doğal dile yakın söz dizimi kullanan, nesne yönelimli bir VBA, kod kullanarak Excel'in nesnelerine, özelliklerine ve yöntemlerine erişmenize ve bunları değiştirmenize olanak tanır. Bu nedenle Excel'i grafik arayüzden daha hassas ve daha güçlü bir şekilde kontrol edebilirsiniz.
VBA kullanmanın çeşitli avantajları vardır:
- Verileri temizleme, tabloları biçimlendirme, grafik oluşturma ve daha fazlası gibi tekrarlayan veya sıkıcı görevleri otomatikleştirebilirsiniz.
- Yazılımda bulunmayan özellikler ekleyerek veya davranışını değiştirerek Excel'i özel ihtiyaçlarınıza göre özelleştirebilirsiniz.
- Diyalogları, formları veya özel mesajları kullanarak kullanıcıyla etkileşim kurabilirsiniz.
- Excel'i diğer Office uygulamalarıyla veya Outlook, Word, Access, SQL Server vb. gibi harici veri kaynaklarıyla entegre edebilirsiniz.
Excel'de VBA kodunda hata ayıklama nasıl yapılır?
Excel'de VBA kodunda hata ayıklamak için kesme noktaları, adımlama, İzleme penceresi veya Yerel ayarlar penceresi gibi VBE araçlarını kullanabilirsiniz. Bu araçlar kod yürütmeyi kontrol etmenize, değişken değerlerini kontrol etmenize ve hataları tespit etmenize olanak tanır.
Excel'de VBA kodu nasıl korunur?
Excel'de VBA kodunu korumak için VBA projesini bir parola ile kilitleyebilirsiniz. Bunu yapmak için şu adımları izleyin:
- Şeridin Geliştirici sekmesindeki Visual Basic düğmesini tıklatarak VBE'yi açın.
- Proje penceresinde VBA proje adına sağ tıklayın ve VBA Proje Özellikleri'ni seçin.
- VBA Proje Özellikleri iletişim kutusunda Koruma sekmesine tıklayın.
- Projeyi görüntüleme için kilitle kutusunu işaretleyin ve bir şifre yazın ve onaylayın.
- İletişim kutusunu kapatmak için Tamam'ı tıklayın.
- Çalışma kitabını kaydedin ve kapatın.
Çalışma kitabını açarken veya kapatırken makro nasıl çalıştırılır?
Bir çalışma kitabını açarken veya kapatırken makroyu çalıştırmak için Workbook_Open veya Workbook_BeforeClose olaylarını kullanmanız gerekir. Bunu yapmak için şu adımları izleyin:
- Şeridin Geliştirici sekmesindeki Visual Basic düğmesini tıklatarak VBE'yi açın.
- Proje penceresinde çalışma kitabı adının altındaki ThisWorkbook nesnesini seçin.
- Kod penceresinde sol üstteki Nesne açılır listesinden Çalışma Kitabı'nı seçin.
- Sağ üstteki Prosedür açılır listesinden Aç veya Kapatmadan Önce'yi seçin.
- Çalıştırmak istediğiniz makroyu çağıran VBA kodunu yazın. Örneğin :
Private Sub Workbook_Open() ' Çalışma kitabını açarken Hello makrosunu çalıştırır Hello End Sub Private Sub Workbook_BeforeClose(Boolean Olarak İptal Et) ' Çalışma kitabını kapatırken AuRevoir makrosunu çalıştırır AuRevoir End Sub
VBA ile Excel'de form nasıl oluşturulur?
VBA ile Excel'de form oluşturmak için VBE'nin form tasarımcısını kullanmanız gerekir. Bunu yapmak için şu adımları izleyin:
- Şeridin Geliştirici sekmesindeki Visual Basic düğmesini tıklatarak VBE'yi açın.
- Proje penceresinde VBA proje adına sağ tıklayın ve Ekle'yi, ardından Kullanıcı Formu'nu seçin.
- Yeni bir UserForm penceresi açılır. Buna etiketler, metin kutuları, düğmeler vb. gibi kontroller ekleyebilirsiniz. araç kutusundan sürükleyerek.
- Özellikler penceresinde denetimlerin özelliklerini değiştirebilir veya Kod penceresinde olaylarını işlemek için VBA kodu yazabilirsiniz.
- Formu görüntülemek için Show yöntemini kullanabilirsiniz. Örneğin :
Sub ShowForm() ' UserForm1 UserForm1.Show End Sub formunu gösterir
VBA ile Excel'de özel bir işlev nasıl oluşturulur?
VBA ile Excel'de özel bir işlev oluşturmak için aşağıdaki sözdizimini kullanmanız gerekir:
Fonksiyon FonksiyonAdı(argüman1 As Tip1, argüman2 As Tip2, ...) As ReturnType ' Bildirimler ve talimatlar FonksiyonAdı = ifade ' Döndürülecek sonucu fonksiyona atar End Function
Örneğin bir sayının karesini hesaplayan bir fonksiyon oluşturmak istiyorsanız şunu yazabilirsiniz:
Fonksiyon Square(number As Double) As Double ' Bir sayıyı argüman olarak alan ve sayıyı döndüren bir fonksiyon bildirir Square = sayı * sayı ' Sayının karesini fonksiyona atar End Function
Daha sonra bu işlevi VBA ifadelerinizde veya Excel formüllerinizde kullanabilirsiniz. Örneğin :
Sub Test() Dim x As Double ' Double x = 5 türünde bir değişken bildirir ' MsgBox Square(x) değişkenine 5 değerini atar ' x'in karesini görüntüler End Sub
VBA'da kendi oluşturduğunuz özel işlevleri de kullanabilirsiniz. Bunu yapmak için aşağıdaki sözdizimini kullanmanız gerekir:
Fonksiyon FonksiyonAdı(argüman1 As Tip1, argüman2 As Tip2, ...) As ReturnType ' Bildirimler ve talimatlar FonksiyonAdı = ifade ' Döndürülecek sonucu fonksiyona atar End Function
Örneğin bir sayının karesini hesaplayan bir fonksiyon oluşturmak istiyorsanız şunu yazabilirsiniz:
Fonksiyon Square(number As Double) As Double ' Bir sayıyı argüman olarak alan ve sayıyı döndüren bir fonksiyon bildirir Square = sayı * sayı ' Sayının karesini fonksiyona atar End Function
Daha sonra bu işlevi VBA ifadelerinizde veya Excel formüllerinizde kullanabilirsiniz. Örneğin :
Sub Test() Dim x As Double ' Double x = 5 türünde bir değişken bildirir ' MsgBox Square(x) değişkenine 5 değerini atar ' x'in karesini görüntüler End Sub
Veya
=Kare(A1) ' A1 hücresinin değerinin karesini hesaplar
Çözüm
Bu makalede Excel'de Visual Basic for Application'ın (VBA) nasıl kullanılacağını öğrendiniz. VBA'nın ne olduğunu ve neden kullanılacağını, Excel'de VBA'ya nasıl erişileceğini, Excel'de VBA kodu nasıl yazılacağını, VBA'da Excel çalışma sayfası fonksiyonlarının nasıl kullanılacağını, VBA ile Excel'de makroların nasıl oluşturulacağını, VBA'da formların nasıl oluşturulacağını gördünüz. VBA ile Excel ve VBA ile Excel'de özel işlevlerin nasıl oluşturulacağı. VBA ile oluşturabileceğiniz özel işlevler arasında Excel'de çıkarma işlemi yapmak da vardır . Artık Excel'i gerektiği gibi özelleştirmek ve otomatikleştirmek için VBA'nın programlama gücünden yararlanabilirsiniz.