EXCEL VBADA ME ANAHTARI

 

Excel için VBA'da (Uygulamalar için Visual Basic), "Me" anahtar sözcüğü, kodun şu anda çalıştığı form veya modülü temsil eden nesneyi ifade eder. Genellikle geçerli form veya modül içindeki özelliklere, yöntemlere ve denetimlere başvurmak için kullanılır. "Me" anahtar sözcüğü, kodu basitleştirir ve form veya modül adına açıkça başvurma ihtiyacını ortadan kaldırarak daha okunabilir hale getirir.

VBA Me.Filter'ı kullanmak için Çalışma Sayfalarını yazmanız gerekecektir.

VBA ME - Tanım Örneği - 1

Aşağıdaki alt programda gösterildiği gibi VBA Me.Range kullanılmıştır.

VBA ME - Tanım Örneği - 2

Alt programı çalıştırdıktan sonra Çalışma Sayfasına geri dönün.

VBA ME - Tanım Örneği - 3

Fark ettiğiniz gibi, ActiveCell “A10” hücresindedir. Benzer şekilde, bir hücredeki değerleri bildirmek için “Me” nesnesini kullanabilirsiniz.


ÖNEMLİ NOKTALAR

  • “Me” VBA’da bir nesnenin veya modülün geçerli örneğini ifade eden bir anahtar sözcüktür.
  • Özellikle UserForms ve sınıf modüllerinde kontrollerle etkileşimde bulunmak ve olayları yönetmek için oldukça kullanışlıdır.
  • "Me", geçerli örneğin dinamik olarak referanslanmasına izin vererek kod esnekliğini, yeniden kullanılabilirliği ve okunabilirliği artırır.
  • Sadece WorkSheets ve UserForms'da kullanılır. VBA Modüllerinde kullanılması derleme hatasına yol açacaktır.
  • Nesne yönelimli programlamada bir sınıfın veya formun geçerli örneğiyle etkileşim kurmak için yaygın olarak kullanılır.
  • UserForms'da "Me" kontrollerin özelliklerine ve yöntemlerine referans vermek için kullanılabilir, bu da kodu daha sezgisel hale getirir.

VBA ME'nin Kullanımları

VBA Me kullandığımızda, asıl fark kodun bildiriminde ortaya çıkar. Aşağıdaki örneğe bakın:

VBA ME'nin Kullanımları - 1

Burada, Sayfa adını, aralığı ve değeri tanımladınız. "Me" değişkeni kullanılıyorsa ve doğrudan sayfalara yazılıyorsa çok fazla bir şey yapmanıza gerek yoktur.

VBA ME'nin Kullanımları - 2

Benzer şekilde bu durumda da doğrudan sayfa modülüne yazarak, WorksheetName'i belirtmemize ve Excel'de aktif hücreleri seçmemize gerek kalmıyor.

VBA ME'nin Kullanımları - 3

Burada “A1” hücresine “Hoş Geldiniz” yazacaktır.

Alt rutinde, "Excel" çalışma sayfası adı kullanılarak yazdırılır. Sonuç aşağıda gösterildiği gibidir:

VBA ME'nin Kullanımları - 4

Excel VBA'da ME Nasıl Kullanılır?

VBA Me ile çalışmak için aşağıdaki adımları izleyin.

  1. Excel Çalışma Kitabında “Geliştirici”ye gidin ve “Visual Basic”i seçin.


    Temel Örnek - Adım 1a



    VBA Modülünde, üzerinde çalışmak istediğiniz sayfayı seçin.



    Artık Excel VBA'da kodlamaya başlayabilirsiniz.

  2. Verilen bir tabloda (bir dizi değer üzerinde, tablo yapmak için “Ctrl+T” tuşlarına basın), satır sayısını bulan bir alt rutin tanımlayın.


    Temel Örnek - Adım 2

  3. Tabloyu başlatmak için bir ListObject değişkeni tanımlayın.


    Temel Örnek - Adım 3

    Ben nesnesi üzerinde çalıştığınız sayfayı ifade eder.

  4. Nesne değişkeninin boş olmadığını kontrol edin, ardından ListRows.Count fonksiyonunu kullanarak tablodaki satır sayısını bulun.


    Temel Örnek - Adım 4

  5. Bir Else fonksiyonu tanımlayın.


    Temel Örnek - Adım 5

    Kod:

    Sub Find_Range()
    Dim tbl As ListObject
    Set tbl = Me.ListObjects(“Table1”)
    If Not tbl Is Nothing Then
    MsgBox “The table has ” & tbl.ListRows.Count & ” rows.”
    Else
    MsgBox “Table not found.”
    End If
    End Sub

  6. “Çalıştır” butonuna veya “F5” tuşuna tıklayın.


    Temel Örnek - Adım 6a

    Bu, satır sayısını içeren bir Mesaj Kutusu açacaktır.

“Me” nesnesinin nasıl kullanılacağını öğrendikten sonra, VBA Me.Controls'ün esas olarak bir UserForm'da kullanıldığı diğer yollara bakalım .

Örnekler

Excel VBA'da "Ben" nesnesinin farklı kullanım yollarına bakalım.

Örnek 1

VBA Me.Range'i etkili bir şekilde nasıl kullanacağınızı “ThisWorkBook” modülünde öğrenebilirsiniz. Üç sütun için ikili değerler tablosu verildiğinde, VBA Or kullanarak OR kapısı işlevini bulun ve zamandan tasarruf etmek için yol boyunca VBA Me işlevini kullanın.

Excel'de VBA ME - Örnek 1

VBA Font Rengi fonksiyonlarını kullanarak TRUE veya FALSE değerlerini sırasıyla yeşil ve kırmızı renk kodlu olarak yazdırın .

  • Adım 1: Microsoft Excel Objects'te Object'i seçin. Burada, tüm Excel WorkBook'ta VBA Me'nin bir örneğini göreceksiniz.
Excel'de VBA ME - Örnek 1 - Adım 1

Me nesnesini kullandığınızda, tüm modüle atıfta bulunur. Burada, "Me" nesnesi WorkBook'a bir bütün olarak atıfta bulunmak için kullanılır. Bu nedenle, "ThisWorkBook" nesnesini kullanmak yerine, onu Me Nesnesi ile değiştirebilirsiniz.

Örneğin, ThisWorkBook modülünde düzenleme yaparken ThisWorkBook.Sheets(“Sheet1”) yazmak yerine Me.Sheets(“Sheet1”) yazabilirsiniz.

  • Adım 2: VBA Me.Range nesnesini kullanarak VEYA kapısı fonksiyonu için Sonucu Bulmak üzere bir alt rutin tanımlayın.
Örnek 1 - Adım 2
  • Adım 3: Örneğin, şu anda aktif olan Excel Sayfasını yazdırın.
Örnek 1 - Adım 3
  • Adım 4: Tablonun boyutunu bulun.
Örnek 1 - Adım 4

Burada, "Me" nesnesini kullanarak yukarıdaki tablonun bulunduğu sayfaya başvurulur. Bunu dinamik hale getirmek için herhangi bir satırı alın, sayın ve yalnızca son boş olmayan hücrenin sonunda xlUp işlevini kullanarak sonlandırın, bu işlev son boş olmayan hücreyi bulur ve sonra durur.

  • Adım 5: “Tablo”nun boyutuna kadar çalışan bir For Döngüsü başlatın.
Örnek 1 - Adım 5
  • Adım 6: VBA OR fonksiyonunu kullanarak sütunlardaki değerlerden herhangi birinin 1'e eşit olup olmadığını kontrol edin.
Örnek 1 - Adım 6

Eğer doğruysa, Yazı rengini yeşil yapın ve ilgili “D” sütununa “Doğru” yazdırın.

  • Adım 7: Eğer koşulu(koşulları) başarısız olursa yürütülecek bir Else koşulu tanımlayın.
Örnek 1 - Adım 7

If-Else ifadelerini bildirdikten sonra If koşulunu sonlandırın .

  • Adım 8: For döngüsünü sürdürün.

VBA Kodu :

Sub WorkBook_Examples()
Debug.Print Me.ActiveSheet.Name
Dim lastRow As Integer
lastRow = Me.Sheets(“Sheet3”).Range(“A” & Rows.Count).End(xlUp).Row
For i = 1 To lastRow
If Me.Sheets(“Sheet3”).Range(“A” & i).Value = 1 _
Or Me.Sheets(“Sheet3”).Range(“B” & i).Value = 1 _
Or Me.Sheets(“Sheet3”).Range(“C” & i).Value = 1 Then
Me.Sheets(“Sheet3”).Range(“D” & i).Font.ColorIndex = 4
Me.Sheets(“Sheet3”).Range(“D” & i).Value = True
Else
Me.Sheets(“Sheet3”).Range(“D” & i).Font.ColorIndex = 3
Me.Sheets(“Sheet3”).Range(“D” & i).Value = False
End If
Next i
End Sub

  • Adım 9: “ThisWorkBook” modülünü çalıştırın. Mevcut etkin sayfa “Immediate” sekmesinde yazdırılacaktır.
Excel'de VBA ME - Örnek 1 - Adım 9a

Daha sonra yukarıda bahsi geçen tabloya bakalım.

Excel'de VBA ME - Örnek 1 - Adım 9b

Böylece VBA Me nesnesi olan VBA OR fonksiyonu yardımıyla OR kapısı başarılı bir şekilde uygulanmış oldu.

Örnek 2 – UserForm ile VBA ME

Bu örnekte UserForm'un arka plan rengini değiştirdiğiniz gibi Excel'deki sekmelerin rengini de rastgele değiştirebilirsiniz.

  • Adım 1: Sekmenin rengini değiştirmek için bir alt rutin tanımlayın.
Excel VBA ME - Örnek 2 - Adım 1

Bu alt rutin, argüman olarak bir Nesne veri türü alır.

  • Adım 2: Bu programın üzerinde çalışacağı mevcut sayfayı tanımlayın.
Örnek 2 - Adım 2
  • Adım 3: Çalışma kitabının WorkSheet rengini, RGB değerlerini elde etmek için 256 ile çarpmak üzere birlikte kullanılan VBA Rnd fonksiyonu ile değiştirin.
Örnek 2 - Adım 3
  • Adım 4: “Ekle”yi seçin ve “Kullanıcı Formu”nu seçin.
Örnek 2 - Adım 4a

Bu, hiçbir değişiklik yapılmayan yepyeni bir UserForm oluşturur.

Örnek 2 - Adım 4b
  • Adım 5: UserForm'a bir komut düğmesi ekleyin.
Örnek 2 - Adım 5a
Excel VBA ME - Örnek 2 - Adım 5b
  • Adım 6: Komut düğmesine çift tıklayarak, değişikliklerinizi yapabileceğiniz özel alt yordamına yönlendirin.
Örnek 2 - Adım 6
  • Adım 7: Me.Filter fonksiyonunu kullanarak daha önce tanımlanan Altyordamı geçerli çalışma kitabına çağırın.
Örnek 2 - Adım 7

VBA KODU:

Sub SelectWorkSheet(FormName As Object)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(ActiveSheet.Name)
ws.Tab.Color = RGB(Rnd * 256, Rnd * 256, Rnd * 256) Alt
End Sub

UserForm'da:

Public Sub Commandbutton1_Click()
SelectWorkSheet Me
End Sub

  • Adım 8: UserForm'u çalıştırın ve aşağıdaki çıktıyı görüntüleyin.
Excel VBA ME - Örnek 2 - Adım 8a

Komut Butonuna tıkladıktan sonra sekme renkleri değişir.

Excel VBA ME - Örnek 2 - Adım 8b

Sheet1'e benzer şekilde ActiveSheet'i "Sheet2" olarak değiştirebilir ve Sekme rengini kendi isteğinize göre değiştirebilirsiniz.

Excel VBA ME - Örnek 2 - Adım 8c

Dikkat Edilmesi Gereken Önemli Noktalar

  • "Me" Nesnesi, geçerli örneği referans alarak daha çok yönlü ve yeniden kullanılabilir kod yazmak için esneklik sunar. Kodu daha öz ve anlaşılması daha kolay hale getirerek kod okunabilirliğini artırır.
  • Genellikle VBA'daki UserForm'larda ve sınıf modüllerinde kontrol ve olay yönetimi için kullanılır .
  • "Me" ifadesini kullanırken, kastedilen nesneye veya forma atıfta bulunduğundan emin olmak için bağlama dikkat edin.
  • "Me", özelliklerin ve yöntemlerin doğru örneğe uygulanmasını sağlayarak adlandırma çakışmalarının önlenmesine yardımcı olur ve istenmeyen yan etkilerin önlenmesini sağlar.
  • "Me" kullanımı, kendi kendine referans veren kodu teşvik ederek onu daha bağımsız ve modüler hale getirir; özellikle daha büyük yazılım projelerinde değerlidir.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...