Genel Bakış
UCase (Upper Case), bir metindeki küçük harfleri büyük harfe çeviren VBA işlevidir. Harf olmayan karakterlere (rakam, noktalama, boşluk) dokunmaz ve yeni metni döndürür. Kod ile büyük/küçük harf duyarsız karşılaştırma yapmak, kodları ve adları standart hale getirmek için sık kullanılır.
Diğer yollar:
Makro, For döngüsüyle ikinci satırdan son dolu satıra kadar ilerler. B2 hücresine ANKARA, B3 hücresine BURSA, B4 hücresine KONYA yazılmıştır. A sütunundaki özgün adlar değişmez.
İlk satırdaki kodlar yalnız harf büyüklüğüyle ayrıldığı için sonuç Evet olur. Üçüncü satırda rakamlar farklı olduğundan C4 hücresinde Hayır görünür. Diğer satırların sonucu: C3 için Evet, C5 için Evet, C6 için Hayır.
Küçük harfle yazılmış adlar ilk harfi büyüyerek düzelir; B2 hücresinde Kalem görünür. Tamamı büyük yazılmış adlar da ilk harf dışında küçültülür; B3 hücresinde Defter yer alır. Türkçe harfle başlayan satırda sonuç B6 hücresinde Çanta olarak yazılır. Boş metin gelirse işlev boş metin döndürür.
Söz dizimi
İşlevin genel biçimi şöyledir:
VBA
2 satır
UCase(string)
UCase$(string)
- string: Büyük harfe çevrilecek metin ifadesi; zorunludur, varsayılan değeri yoktur. Hücre değeri, değişken ya da metin sabiti olabilir.
Dönüş değeri ve davranış
UCase, Variant (String) türünde bir değer döndürür. Bilmeniz gereken noktalar:- Yalnız küçük harfler değişir: Büyük harfler, rakamlar, boşluklar ve işaretler olduğu gibi kalır.
- Boş metin: Boş metin ("") verirseniz sonuç da boş metindir.
- Null: Argüman Null ise sonuç da Null olur.
- Sayılar: Sayı verirseniz önce metne çevrilir; sonuç metin olarak döner.
- Özgün metin değişmez: İşlev yeni bir metin üretir; hücreye yazmak sizin göreviniz olur.
Türkçe karakterler ve benzer yollar
Ç, Ğ, Ö, Ş, Ü gibi Türkçe harfler dönüştürülür. İşlev Windows bölgesel ayarlarını kullandığı için i ve ı harflerinin sonucu sistem diline göre değişebilir. Bu harflerin doğru büyümesi kritikse sonucu mutlaka deneyin; gerekirse Replace ile "i" harfini "İ" yapıp sonra UCase uygulayabilirsiniz.Diğer yollar:
- StrConv: vbUpperCase sabitiyle aynı işi yapar; ayrıca vbProperCase ile sözcük başlarını büyütebilir.
- Option Compare Text: Modül başına eklenirse karşılaştırmalar büyük/küçük harf duyarsız olur.
- Çalışma sayfası işlevi: Hücrede aynı işi şu formül yapar:
1. Şehir adlarını büyük harfe çevirme
A sütunundaki şehir adları B sütununa büyük harfle yazılır. Kodu standart bir modüle yapıştırın ve SehirleriBuyut makrosunu çalıştırın.
VBA
16 satır
Option Explicit
Sub SehirleriBuyut()
Dim ws As Worksheet
Dim i As Long
Dim sonSatir As Long
Set ws = ActiveSheet
' A sütunundaki son dolu satırı bul
sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To sonSatir
' Her şehri büyük harfe çevirip B sütununa yaz
ws.Cells(i, 2).Value = UCase(ws.Cells(i, 1).Value)
Next i
End Sub
UCase
Formülünü incelemek için bir hücre seçin.| A | B | |
|---|---|---|
| 1 | Şehir | Büyük Harf |
| 2 | Ankara | ANKARA |
| 3 | Bursa | BURSA |
| 4 | Konya | KONYA |
| 5 | Adana | ADANA |
| 6 | Samsun | SAMSUN |
| 7 | Van | VAN |
Şehir ListesiExcelDepo v1.0.0
2. Büyük/küçük harf duyarsız kod karşılaştırma
Varsayılan karşılaştırma büyük/küçük harfe duyarlıdır; yani "tr-101" ile "TR-101" eşit sayılmaz. İki tarafı da UCase ile çevirerek bunu aşarsınız. Kodu standart bir modüle yapıştırın ve KodlariKarsilastir makrosunu çalıştırın.
VBA
19 satır
Option Explicit
Sub KodlariKarsilastir()
Dim ws As Worksheet
Dim i As Long
Dim sonSatir As Long
Set ws = ActiveSheet
sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To sonSatir
' İki kodu da büyük harfe çevirip karşılaştır
If UCase(ws.Cells(i, 1).Value) = UCase(ws.Cells(i, 2).Value) Then
ws.Cells(i, 3).Value = "Evet"
Else
ws.Cells(i, 3).Value = "Hayır"
End If
Next i
End Sub
UCase
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | Kayıt Kodu | Girilen Kod | Eşleşme |
| 2 | tr-101 | TR-101 | Evet |
| 3 | KB-202 | kb-202 | Evet |
| 4 | Mn-303 | MN-304 | Hayır |
| 5 | ek-404 | EK-404 | Evet |
| 6 | ps-505 | PS-550 | Hayır |
Kod KontrolExcelDepo v1.0.0
3. UCase ile ilk harfi büyütme işlevi
UCase ile LCase, Left ve Mid işlevlerini birleştirerek her ürün adının yalnız ilk harfini büyük, kalanını küçük yapan bir işlev yazarsınız. Kodu standart bir modüle yapıştırın ve UrunAdlariniDuzenle makrosunu çalıştırın.
VBA
24 satır
Option Explicit
' Metnin ilk harfini büyük, geri kalanını küçük yapar
Function IlkHarfBuyuk(metin As String) As String
If Len(metin) = 0 Then
IlkHarfBuyuk = ""
Else
IlkHarfBuyuk = UCase(Left(metin, 1)) & LCase(Mid(metin, 2))
End If
End Function
Sub UrunAdlariniDuzenle()
Dim ws As Worksheet
Dim i As Long
Dim sonSatir As Long
Set ws = ActiveSheet
sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To sonSatir
' Hücre değeri metne çevrilip işleve gönderilir
ws.Cells(i, 2).Value = IlkHarfBuyuk(CStr(ws.Cells(i, 1).Value))
Next i
End Sub
UCase
Formülünü incelemek için bir hücre seçin.| A | B | |
|---|---|---|
| 1 | Ham Ürün Adı | Düzenlenmiş Ad |
| 2 | kalem | Kalem |
| 3 | DEFTER | Defter |
| 4 | masa | Masa |
| 5 | LAMBA | Lamba |
| 6 | çanta | Çanta |
| 7 | dolap | Dolap |
Ürün AdlarıExcelDepo v1.0.0
Kullanırken dikkat edin
- Yalnız değeri döndürür: UCase hücreyi ya da değişkeni kendisi değiştirmez. Sonucu bir hücreye ya da değişkene atamayı unutmayın; aksi halde işlem hiçbir etki yaratmaz.
- Null değer hatası: Veri tabanından ya da Variant değişkenden gelen değer Null olabilir. Böyle bir değerle UCase$ kullanırsanız hata alırsınız; UCase ise Null döndürür. Sonucu String değişkene atarken önce Null denetimi yapın.
- i ve ı harflerine dikkat: Büyütme işlemi Windows bölgesel ayarlarına bağlıdır. Türkçe adlardaki i, ı, İ, I harfleri farklı bilgisayarlarda farklı sonuç verebilir. Önemli verilerde sonucu mutlaka deneyin; makro başka bir ülke ayarlı bilgisayarda çalışacaksa Replace ile açık dönüşüm yapın.
- Karşılaştırmada iki tarafı da çevirin: Yalnız bir tarafı büyütürseniz karşılaştırma yine yanlış çıkabilir. Karşılaştırmanın her iki tarafına da aynı işlevi (UCase ya da LCase) uygulayın veya modüle Option Compare Text ekleyin.
- Hücre değeri hata ise: Hücrede #YOK gibi bir hata değeri varsa Value özelliği hata türünde bir Variant döndürür ve UCase çalışırken hata verir. Gerekirse IsError ile önceden denetleyin.
- İlgili konular:
- LCase: Metni küçük harfe çevirir.
- StrConv: vbUpperCase, vbLowerCase ve vbProperCase sabitleriyle dönüşüm yapar.
- Left, Mid, Right: Metnin belirli bölümünü almak için kullanılır.
- StrComp ve Option Compare Text: Büyük/küçük harf duyarsız karşılaştırma sağlar.
- InStr: Metin içinde arama yapar; karşılaştırma türü seçilebilir.
- Replace: Belirli karakterleri değiştirmek için kullanılır.
- BÜYÜKHARF, KÜÇÜKHARF ve YAZIM.DÜZENİ: Çalışma sayfasındaki karşılık işlevlerdir.