Özellik ikonu

UCase

İndirme izni yok

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.

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.
UCase$ biçimi her zaman String türünde sonuç verir. Parametre Null ise çalışmaz, hata verir; bu yüzden UCase biçimi daha esnektir.

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:
Excel formülü
=BÜYÜKHARF(A2)
=UPPER(A2)

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.
AB
1ŞehirBüyük Harf
2AnkaraANKARA
3BursaBURSA
4KonyaKONYA
5AdanaADANA
6SamsunSAMSUN
7VanVAN
Şehir ListesiExcelDepo v1.0.0
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.

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.
ABC
1Kayıt KoduGirilen KodEşleşme
2tr-101TR-101Evet
3KB-202kb-202Evet
4Mn-303MN-304Hayır
5ek-404EK-404Evet
6ps-505PS-550Hayır
Kod KontrolExcelDepo v1.0.0
İ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.

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.
AB
1Ham Ürün AdıDüzenlenmiş Ad
2kalemKalem
3DEFTERDefter
4masaMasa
5LAMBALamba
6çantaÇanta
7dolapDolap
Ürün AdlarıExcelDepo v1.0.0
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.

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.
Örneklerdeki makroların tamamı indirilebilir Excel dosyasındadır (.xlsm). Dosyayı açtıktan sonra makroları etkinleştirin, ardından Alt + F11 ile Visual Basic Düzenleyicisi'nde kodları inceleyebilir ve Alt + F8 ile çalıştırabilirsiniz.
Yazar
ExcelDepo
İndirme sayısı
0
Gösterim
9
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst