Yeni bir Paket Programlar dersi makalesi ile birlikteyiz.
Word programında olduğu gibi Excel Programında da paragraf seviyesinde metin girişi yapabilirsiniz. Girilen metin içerisinden istenilen kelimeyi ya da karakter grubunu almak isteyebilirsiniz. Excel programında bu tip bir hazır fonksiyon bulamazsınız. Böyle bir işlemi yapabilmek için kendiniz fonksiyon oluşturmalısınız.
Bu yazımızda böyle bir fonksiyon nasıl yazılır, onu inceleyeceğiz. Metin içindeki n. kelimeyi veya karakter grubunu oluşturan fonksiyonumuzun adı KelimeBul olsun. Bu fonksiyon 3 parametre alıyor. Sadece ilk parametre zorunlu diğer ikisi isteğe bağlı kullanılabiliyor.
Birinci parametre: Metin veya metni içeren hücre adresi
İkinci parametre: (isteğe bağlı) Kaçıncı kelimeyi istediğiniz. Kullanılmazsa ilk kelimeyi verir. Metin içindeki kelime sayısından büyük bir sayı girildiğinde de son kelimeyi verir.
Üçüncü parametre: (isteğe bağlı) Kelimeleri ayıran karakter özel bir karakter veya karakter grubuysa bu parametrede belirtilir. Ayırıcı boşluk ise kullanmaya gerek yok.
Function KelimeBul(ByVal Metin As String, Optional ByVal Kacinci As Integer = 1, Optional ByVal Ayrac As String = " ") As String
'=KelimeBul(A1) 'metnin ilk kelimesini verir
'=KelimeBul(A1;5) 'metnin 5.kelimesini verir. eğer 5 den az kelimeden oluşuyorsa son kelimeyi verir
'=KelimeBul(A1;5;"-") 'metin boşluk yerine başka bir karakterle ayrılıyorsa (Ör: -)
If InStr(1, Metin, Ayrac, vbTextCompare) > 0 Then
Dim Dizi
Dim Say As Integer
Dizi = Split(Metin, Ayrac)
Say = UBound(Dizi) + 1
If Kacinci > Say Then Kacinci = Say
If Kacinci < 1 Then Kacinci = 1
KelimeBul = Dizi(Kacinci - 1)
Else
KelimeBul = ""
End If
End Function
Mantık basit. Önce metni verilen ayırıcıya göre dizi değişken haline getiriyorum. Sonra da istenen sıradaki dizi elemanını döndürüyorum. Kolay gelsin.