Excel Select Case Yapısı


Makro eğitimlerimizde bugün Microsoft Excel VBA konularından Select Case yapısını inceleyeceğim. Mantığı nedir , Select Case nasıl kullanılır, farklılıkları nelerdir sorularına örneklerle birlikte yanıt bulacağız.

  • Select Case Nedir ?

Belirli şartlar sağlanırsa uygulanacak işlemleri, şartlar sağlanmazsa uygulanacak işlemleri konsolide şeklinde yani yapıları benzer durumda olan nesneleri bir araya getirerek işlem uygulamanızı sağlar. Select Case yapısı daha önceden incelemiş olduğumuz If Then Else yapısıyla benzerlik gösterir, yalnız en önemli farkı yapılacak eğer kriterler çoksa yani değişkenin döndüreceği sonuçlar birden fazlaysa Select Case kullanmak tabiki de avantajlı olur. Değerlendirmeye alalım:

  • Select Case Nasıl Kullanılır ?

Makalemizde Select Case karar yapısıyla alakalı envai çeşit alternatif yapı örneği vereceğim. Bu örnekler içerisinde: Select Case yapısını Excel içerisinde makro komutu olarak kullanmayı, Select Case yapısını Visual Basic Editor yardımıyla Function ( Fonksiyon ) olarak kullanmayı ayrı ayrı inceleyeceğim. İlk olarak hangi mantıkla çalıştığını yani Select Case yapısının bel kemiğine bakalım.

If Then Else yapısını daha önce detaylı incelediğim için burada yalnızca Select Case özelliklerini inceleyeceğim.
Select Case

Select Case Değişken
Case Değişken Değer
Yukarıdaki kriter uygunsa sonuç
Case Else
Uymuyorsa sonuç
End Select

Yukarıda görmüş olduğunuz düzende ilk olarak Değişken belirlenir. Nedir bu değişken, adı üstünde bizim belirleyeceğimiz herhangi değer demektir. Sonrasında alt satıra Case değişken değer eklenir, buradaki değişken değerin ilkinden farkı, kuraldır. Yine kuralı biz belirleyeceğiz o yüzden değişken değer denir. Şimdi belirlediğimiz kriter ( Excel içindeki işlemler ) Select Case yapısını çalıştırdığımızda ilk belirlenen kritere uygun değilse, Case Else komutundan sonraki işlemi uygular.

Anlatımlar ilk aşamada zor gelebilir fakat örnekler size daha çok yardımcı olacaktır. İşi pratiğe dökmek için  reel kodlar hazırlayıp uygulama vakti geldi.

  • Select Case yapısını Buton ile kullanmak;

İlk olarak Excel çalışma sayfanıza Geliştirici sekmesi yardımıyla Form Denetimleri ‘nden örnek buton ekleyin. Butonu ekledikten sonra küçük bir pencere açılır. Buradan Yeni butonuna tıkladığınızda Visual Basic Editor penceresi açılır. Otomatik olarak karşınıza aşağıdaki gibi kod düzeni gelir.

Sub Düğme1_Tıkla()

End Sub

Bu kodların arasına aşağıdaki Select Case kodlarını ekleyin.

Select Case
Dim Hucre As Integer, Makro As String
Hucre = Range(“A2”).Value
Select Case Hucre
Case Is >= 70
Makro = “Excel”
Case Is >= 50
Makro = “Select Case”
Case Is >= 40
Makro = “Yapısı”
Case Else
Makro = “Güzeldir”
End Select
Range(“B2”).Value = Makro

Select Case yapısını kodlar içerisinde anlatmak istiyorum. Hucre ‘nin adresini A2 olarak belirledim. Sonra Case değerini Hucre olarak atamasını yaptım. Arkasından koşullarımı ve sonuçlarımı belirttim. Son olarak döngü sonucunu Excel ‘de hangi hücreye yazdıracağımı belirledim. Bu da makro kodları içerisinde gördüğünüz gibi B2 hücresi oluyor.


 

  • Select Case yapısını Function olarak Kullanmak ;

User Defined Functions konusunu daha önceden incelemiştik. Bu konuda Excel’de Kullanıcı Tanımlı Fonksiyonlar Yazmak | User Defined Functions oluşturarak Select Case yapısına uyarlayacağım. Başlamak için Visual Basic Editor penceresine gelin ve yeni Modül ekleyin. Bunu yapmak için Editör penceresinde Sayfa1 üzerine sağ tıklayın Insert > Module seçeneğine tıklayın. Otomatikman Module1 oluşacaktır. Oluşan modül içerisine aşağıdaki kodları yapıştırın.

Case fonksiyonunda kontrol edeceğiniz değişken değerini Select Case ‘in yanına yazmanız gerekmektedir.
Select Case

Function Cizgi(Hucre As String) As Variant
Select Case Hucre
Case “Excel”
Cizgi = “1.Kelime”
Case “Select Case”
Cizgi = “2.Kelime”
Case “Yapısı”
Cizgi = “3.Kelime”
Case “Güzeldir”
Cizgi = “4.Kelime”
Case Else
Cizgi = “Hücrede Belirtilen kelime yoksa bu mesaj çıksın.”
End Select
End Function

Modül içerisine eklediğimiz kodlar bize Excel içerisinde kullanabileceğimiz yeni bir fonksiyon oluşturdu.

Örnekteki fonksiyonun adı =Cizgi() ‘dir. Kullanmak için D2 hücresine gelip, =Cizgi(B2) şeklinde aktif edebilirsiniz. Ben test etmek amacıyla D2 hücresine =Cizgi(B2) yazıyorum ve B2 hücresindeki değerlere bağlantı kuruyorum. Yukarıdaki Select Case Modülü ‘ne göre Eğer B2 hücresinde Excel kelimesi geçerse, D2 hücresine “1.Kelime” sonucu gelir.

 Örnekteki gibi Select Case yapısını biraz önce kullandığım makro butonuna bağlantı kurarak ve kullanıcı tanımlı fonksiyonumuzu katarak böyle bir sonuç elde edebilirsiniz.

 

 

Aynı fonksiyonun daha sade görünen ikinci bir yöntemi var onu da aşağıdaki gibi kullanabilirsiniz.

Select Case

Function Cizgiakademi(HucreAs String) As Variant
Select Case Hucre
Case “Excel”: Cizgiakademi = “1.Kelime”
Case “Select Case”: Cizgiakademi = “2.Kelime”
Case “Yapısı”: Cizgiakademi = “3.Kelime”
Case “Güzeldir”: Cizgiakademi = “4.Kelime”
Case Else: Cizgiakademi = “Bu ürün Tanımlı Değil!”
End Select
End Function

Sonuç :


Select Case yapısının en can alıcı ve konu başlığında belirttiğim gibi  If Then Else kurgusundan farklı olarak Case yapısında Aralık Belirleme özelliği bulunmaktadır. Son olarak onu da inceleyelim ve Select Case konumuzu tamamlayalım.

  • Select Case Aralık Belirleme ;

Eğer hücre değeri 0 ise Sonuç :0

Eğer hücre değeri 1 ise Sonuç :0

Eğer hücre değeri 2 ise Sonuç :0

Eğer hücre değeri 3 ise Sonuç :0

Eğer hücre değeri 20 ise Sonuç :0

bu şekilde yüz satırlık komut oluşturmak If Then Else makrosunun yeteneğidir. Fakat Case döngüsü burada aralık belirlemesi yaparak, işi daha kısa tutmanızı sağlayabilir. Örneğin ‘hücre aralığı 0-20 ise Sonuç : 0 olmasını isteyebiliriz. Aşağıdaki kodlar işte tamda bunu anlatıyor.

 

Select Case
Function Makro(Excel As Byte) As Byte
Select Case Excel
Case 0 To 20: Makro = 0
Case 21 To 40: Makro = 1
Case 41 To 60: Makro = 2
Case 61 To 80: Makro = 3
Case Is > 80: Makro = 4
End Select
End Function
Select Case yapısını If Then Else yapısından ayıran özellik budur.

Oluşturduğum =Makro(A2) fonksiyonu aşağıdaki gibi sonuç verir.

 

Soru ve düşünceleriniz için aşağıdaki yorum sayfamı kullanabilirsiniz. Select Case kurgu yapısı ile neler yapılabilir , ne gibi seçenekleri vardır , If Then Else kurgusuyla farkı nedir tüm detaylarıyla incelemiş olduk.

Konuyla ilgili Makro içerebilen örnek çalışma dosyasını indirebilir ve daha detaylı inceleme yapabilirsiniz.

 

Select Case Yapısı

 

 


Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir