İhtiyacınız Olabilecek En İyi VBA Rehberi (Yeni Başlayanlar İçin)


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 .

<şekil sınıfı = "tembel hizalayıcı boyutu büyük">

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.

  • Herhangi bir ofis ürününde Geliştirici menüsünü etkinleştirmek için Dosyamenüsüne gidin ve soldaki gezinme menüsünden Seçenekler'i seçin.
  • Bir Seçenekler menüsü açılır penceresi görürsünüz. Soldaki gezinme menüsünden Şeridi Özelleştir'i seçin.
  • <şekil sınıfı = "tembel hizalayıcı boyutu büyük">

    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]->
    • Sağdaki listede Geliştirici'yi görmelisiniz, ancak etkinleştirilmeyecek. Geliştirici menüsünü etkinleştirmek için onay kutusunu işaretlemeniz yeterlidir.
      • Sağda Geliştirici'yi görmüyorsanız, soldaki Komutları seç' i açılır menüden Tüm Komutlar. Listeden Geliştirici'yi bulun ve bu menüyü Şeride eklemek için ortadaki Ekle>>' yi seçin.
      • Tamam
      • Geliştirici menüsü etkinleştirildikten sonra ana uygulama pencerenize dönebilir ve üst menüden Geliştirici'yi seçebilirsiniz.
      • Ardından VBA düzenleyici penceresini açmak için şeritteki Kontroller grubundan Kodu Görüntüle'yi seçin.
      • <şekil sınıfı =" tembel hizalayıcı boyutu büyük ">
        • Bu, sonraki birkaç bölümde öğreneceğiniz kodu yazabileceğiniz VBA düzenleyici penceresini açacaktır.
          • Her gün kullandığınız birkaç Office uygulamasına Geliştirici menüsünü eklemeyi deneyin . VBA düzenleyici penceresini açmak istediğinizde, bu kılavuzun sonraki bölümüne devam edin.
          • 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.

            <şekil sınıfı = "tembel hizalayıcı boyutu büyük">

            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.

            <şekil sınıfı = "tembel hizalayıcı boyutu büyük">

            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 rng
            If 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.

            <şekil sınıfı = "tembel hizalayıcı boyutu büyük">

            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 + 2
            If 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.

            • Süre Döngü, döngü başına bir koşul doğrudur.
            • Do-While Loop, döngüdeki ifadeleri yürüttükten sonra bir koşulun doğru olup olmadığını kontrol eder.
            • Döngüye Kadar Yap, döngüyü yürüttükten sonra bir koşulun hala yanlış olup olmadığını kontrol eder.
            • Bu durumda t he While döngüsü yukarıdaki gibi bir Do-While döngüsü olarak.

              Do
              If 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 rng
              Select 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.

              <şekil sınıfı = "tembel hizalayıcı boyutu büyük">

              Artık Microsoft Office uygulamalarınızda VBA'yı kullanmaya başlamak için bilmeniz gereken her şeyi biliyorsunuz.

              True CRM Programı v8 | Pro 3 Paket Tanıtımı

              İlgili Mesajlar:


              29.01.2020