Neredeyse tüm Microsoft Office ürünlerinde çalışan VBA programlama platformu, herkesin bu ürünleri kullanımını geliştirmek için kullanabileceği en güçlü araçlardan biridir.
Bu VBA kılavuzu yeni başlayanlar, Office uygulamanıza Geliştirici menüsünü nasıl ekleyeceğinizi, VBA düzenleyici penceresine nasıl gireceğinizi ve temel VBA deyimlerinin ve döngülerinin nasıl çalıştığını gösterecek, böylece Excel, Word, Powerpoint, Outlook ve OneNote'ta VBA'yı kullanmaya başlayabilirsiniz .
Bu VBA kılavuzu, Microsoft Office ürünlerinin en son sürümünü kullanır. Daha eski bir sürümünüz varsa, ekran görüntülerinde ufak farklılıklar görebilirsiniz.
VBA Düzenleyicisini Etkinleştirme ve Kullanma
Herhangi bir Office'te bu kılavuzda kullanılan ürünler için referans verilen Geliştirici menüsünün olmadığını fark edebilirsiniz. Geliştirici menüsü yalnızca Excel, Word, Outlook ve Powerpoint'te mevcuttur. OneNote, uygulamanın içinden VBA kodunu düzenlemek için bir araç sunmaz, ancak OneNote API'sine diğer Office programlarından OneNote ile etkileşim kurmak için yine de başvurabilirsiniz.
Bunu, gelecekteki Gelişmiş VBA kılavuzumuzda nasıl yapacağınızı öğreneceksiniz.
Soldaki liste söz konusu Office uygulamasında bulunan tüm menüleri ve menü komutlarını içerir. Sağdaki liste şu anda kullanılabilir veya etkinleştirilenlerdir.
In_content_1 tümü: [300x250] / dfp: [640x360]->Yeni Başlayanlar için Genel VBA Programlama İpuçları
VBA düzenleyicisi açıldığında, sol paneldeki gezinme seçeneklerinin bir Office uygulamasından diğerine farklı göründüğünü fark edeceksiniz.
Bunun nedeni, VBA kodunu yerleştirebileceğiniz kullanılabilir nesnelerin uygulamada hangi nesnelere bağlı olduğudur. Örneğin, Excel'de çalışma kitabına veya sayfa nesnelerine VBA kodu ekleyebilirsiniz. Word'de belgelere VBA kodu ekleyebilirsiniz. Powerpoint'te, yalnızca modüllere.
Bu nedenle, farklı menüler tarafından şaşırmayın. VBA kodunun yapısı ve sözdizimi tüm uygulamalarda aynıdır. Tek fark, başvurabileceğiniz nesneler ve bu nesneler üzerinde VBA kodu aracılığıyla gerçekleştirebileceğiniz eylemlerdir.
VBA kodu ile gerçekleştirebileceğiniz farklı nesnelere ve eylemlere dalmadan önce, önce VBA kodu yazarken kullanabileceğiniz en yaygın VBA yapısına ve sözdizimine bakın.
VBA Kodunu Nereye Yerleştireceğim
VBA editöründe, kodu eklemek istediğiniz nesneyi ve kodun ne zaman çalışmasını istediğinizi seçmek için düzenleme penceresinin üstündeki iki açılır kutuyu kullanmanız gerekir.
Örneğin, Excel, Çalışma Sayfasıve Etkinleştir'i seçerseniz, çalışma sayfası her açıldığında kod çalışır.
Diğer çalışma sayfası VBA kodunuzu tetiklemek için kullanabileceğiniz işlemler arasında çalışma sayfasının ne zaman değiştiğini, ne zaman kapatıldığını (devre dışı bırakıldığını), çalışma sayfası hesaplamasını çalıştırdığınızı ve daha fazlasını içerir.
Düzenleyiciye VBA kodu eklediğinizde, her zaman VBA kodunuzu nesneye yerleştirdiğinizden ve bu kodu tetiklemek için kullanmak istediğiniz doğru işlemi kullandığınızdan emin olun.
VBA IF Deyimleri
Bir IF ifadesi, tıpkı diğer programlama dillerinde olduğu gibi VBA'da da çalışır.
IF ifadesinin ilk kısmı, bir koşulun veya koşul kümesinin doğru olup olmadığına bakar. Bu koşullar bir AND veya OR operatörü tarafından bir araya getirilerek birleştirilebilir.
Bir örnek, e-tablodaki bir notun "geçme" notunun üstünde veya altında olup olmadığını kontrol etmek ve geçişi atamak veya durumu başka bir hücreye gönderemezsiniz.
Hücreler (2, 2)>75 Sonra Hücreler (2, 3) = “Başarılı” Diğer Hücreler (2, 3) = “Başarısız”
Tüm ifadeyi tek bir satırda istemiyorsanız satırların sonuna bir “_” sembolü ekleyerek ifadeyi birden çok satıra bölebilirsiniz.
Hücreler (2, 2)>75 Öyleyse _
Hücreler (2, 3) = "Geçer" Başka _ _
Hücreler (2, 3) = “Başarısız”
Bu tekniği kullanmak genellikle kodu okumayı ve hata ayıklamayı çok daha kolay hale getirebilir.
Sonraki Döngüler İçin VBA
IF ifadeleri, yukarıdaki örnekte olduğu gibi, tek bir hücreye bakmak gibi tek karşılaştırmalar için mükemmeldir. Ancak, tüm hücre aralığında döngü yapmak ve her birinde aynı IF deyimini yapmak istiyorsanız ne olur?
Bu durumda bir FOR döngüsüne ihtiyacınız vardır.
Bunu yapmak için bir aralığın uzunluğunu kullanmanız ve bu uzunlukta veri içeren satır sayısına göre döngü yapmanız gerekir.
Bunu yapmak için, aralık ve hücre değişkenlerini tanımlamak ve bunlar arasında döngü yapmak. Ayrıca sonuçları uygun satıra çıkarmak için bir sayaç tanımlamanız gerekir. Dolayısıyla, VBA kodunuz ilk önce bu satıra sahip olur.
Aralık Olarak Aralığı, Hücre Olarak Aralığı
rowCounter'ı Tamsayı Olarak Kısalt
Aralık boyutunu aşağıdaki gibi tanımlayın.
Ayarla rng = Aralık (“B2: B7”)
rowCounter = 2
Son olarak, söz konusu aralıktaki her hücrede gezinmek ve karşılaştırmayı yapmak için FOR döngünüz.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
Bu VBA komut dosyası çalıştırıldığında, gerçek e-tabloda sonuçlanır.
Döngülerken VBA
A Döngü, tıpkı FOR döngüsü gibi bir dizi ifadeyi de dolaşır, ancak döngünün devam etmesi koşulu kalan bir koşuldur true.
Örneğin, yukarıdaki rowCounter değişkenini kullanarak aşağıdaki gibi bir WHILE döngüsü olarak aynı FOR döngüsünü yazabilirsiniz.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
Not: Satır sayacı 2'de başladığı ve verinin bittiği 7. satırda bitmesi gerektiğinden rng.Count + 2sonlandırma sınırı gereklidir. Bununla birlikte, aralık (B2: B7) sayısı yalnızca 6'dır ve While döngüsü, sayaç sayacından daha BÜYÜK olduğunda sona erer - bu nedenle son rowCounter değerinin 8 (veya rng.Count + 2) olması gerekir.
While döngüsünü aşağıdaki gibi de ayarlayabilirsiniz:
whileCounter <= rng.Count + 1
rowCounter değişkeni verilerin sonuna ulaştığında (satır 7) döngü tamamlanabileceğinden, yalnızca aralık sayısını (6) 1'e kadar artırın.
VBA Süre Yap ve Döngülere Kadar Yap
Süre Yap ve Yap Döngüleri Döngü ile neredeyse aynı, ancak biraz farklı çalışıyor.
Bu durumda t he While döngüsü yukarıdaki gibi bir Do-While döngüsü olarak.
DoIf Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
Bu durumda mantık çok fazla değişmez, ancak mantığınızdan emin olmak istiyorsanız karşılaştırma tüm ifadeler çalıştırıldıktan sonra gerçekleşir (en az bir kere ne olursa olsun hepsinin çalışmasına izin verir), bir Do-While veya Do-Unt döngüsü doğru seçenektir.
VBA Vaka Bildirimleri Seç
VBA kodunuzu yapılandırmaya başlamak için anlamanız gereken son mantıksal ifade türü Select Vaka bildirimleridir.
Yukarıdaki örnek göz önüne alındığında, diyelim ki sadece başarısız başarısız olmayan bir notlandırma yöntemine sahip olmak istiyorsunuz. Bunun yerine, A'dan F'ye kadar bir harf notu atamak istersiniz.
Bunu aşağıdaki Select Case Case deyimiyle yapabilirsiniz:
For Each cell In rngSelect Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
Ortaya çıkan elektronik tablo Bu VBA komut dosyası çalıştıktan sonra aşağıdaki gibi görünür.
Artık Microsoft Office uygulamalarınızda VBA'yı kullanmaya başlamak için bilmeniz gereken her şeyi biliyorsunuz.