VBA CHR işlevi argümanı olarak bir ASCII kodu alır ve karşılık gelen karakteri döndürür. ASCII kodlarını karakterlere dönüştürmenize olanak tanır, böylece VBA'da belirli karakterlerle çalışmanıza veya dizeleri daha etkili bir şekilde işlemenize olanak tanır. Bir örneğe bakalım. Bu örnekte, VBA CHR kodu ASCII kodu 63'ü soru işareti sembolüne "?" karşılık gelen "asciiCode" değişkenine atar.
VBA CHR fonksiyonu daha sonra bu ASCII kodunu character değişkenine atanmış karşılık gelen karaktere dönüştürür. Son olarak, character değişkeninin değerini gösteren bir ileti kutusu görüntülenir.


Bu örnek, bir ASCII kodunu karşılık gelen karaktere dönüştürmek için VBA CHR fonksiyonunun basit bir kullanımını göstermektedir.
ÖNEMLİ NOKTALAR
- Excel VBA CHR fonksiyonu ASCII kodlarını karakterlere dönüştürür.
- CHR(10), bir satır besleme karakterini (LF) ve CHR(13), bir satır başı karakterini (CR) temsil eder.
- Excel'de düğme oluştururken, düğmeyi eklemek ve özelleştirmek için Geliştirici sekmesini kullanın.
- ASC fonksiyonu CHR fonksiyonunun tam tersidir ve karakterleri karşılık gelen ASCII kodlarına dönüştürür.
Excel VBA CHR Fonksiyonu Nasıl Kullanılır?
Excel VBA CHR işlevini kullanmak için şu adımları izleyin:
Adım 1: Excel’i açın ve VBA düzenleyicisini açmak için “ALT + F11” tuşlarına basın.
Adım 2: Menüden “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.
Adım 3: Modülde, aşağıdaki örnekte gösterildiği gibi VBA CHR fonksiyonunu kullanmak için kodu yazın:
Sub UseCHRFunction()
Dim result As String
Dim asciiCode As Integer
‘ Assign an ASCII code to the variable
asciiCode = 65
‘ Use the CHR function to convert the ASCII code to a character
result = Chr(asciiCode)
‘ Display the result
MsgBox result
End Sub
Adım 4: Kodu çalıştırmak için “F5” tuşuna basın veya “Çalıştır” düğmesine tıklayın. Sağlanan ASCII koduna karşılık gelen karakteri gösteren bir mesaj kutusu görünecektir (bu durumda, “A” gösterecektir).

Örnekler
Örnek #1 – ASCII kodlarını karakterlere dönüştürün
Adım 1: Excel’i açın ve VBA düzenleyicisini açmak için “ALT + F11” tuşlarına basın.

Adım 2: Menüden "Ekle"ye tıklayıp "Modül"ü seçerek yeni bir modül ekleyin.

Adım 3: Modülde, ilk önce “ConvertASCIIToCharacter()” alt rutinini oluşturun.

Daha sonra altyordam içinde String türünde "result" adlı bir değişken bildiririz. Bu değişken karakter birleştirmenin nihai sonucunu saklayacaktır.
Kodun bir sonraki satırı, ASCII kodu 65'i karşılık gelen "A" karakterine dönüştürmek ve bunu "result" değişkenine atamak için VBA CHR fonksiyonunu kullanır.
“&” operatörü, ASCII kodları 66 ve 67'yi sırasıyla “B” ve “C” karakterlerine dönüştüren ve bunları “result” değişkenine ekleyen aşağıdaki VBA CHR fonksiyon sonuçlarını birleştirmek için kullanılır.

Kodun son satırı, bir ileti kutusu kullanarak “result” değişkeninde saklanan değeri görüntüler.

Adım 4: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8'e basın, “ConvertASCIIToCharacter”ı seçin ve Çalıştırın.

Adım 5: Makroyu çalıştırdığınızda, sırasıyla “A”, “B” ve “C” olan ASCII kodları 65, 66 ve 67'ye karşılık gelen karakterlerin birleştirilmesinin sonucunu gösteren bir mesaj kutusu görünecektir.

Dim result As String
‘ Convert multiple ASCII codes to characters
result = Chr(65) & Chr(66) & Chr(67)
‘ Display the result
MsgBox result
End Sub
Örnek 2 – Döngü kullanarak bir karakter tablosu oluşturun
Adım 1: Modülde ilk önce “GenerateCharacterTable()” alt rutinini oluşturun:

Kod, “GenerateCharacterTable” adlı bir alt rutin tanımlayarak başlar.
Alt yordam içerisinde iki değişken tanımlıyoruz: String türünde “result” ve Integer türünde “asciiCode”.
“result” değişkeni birleştirilmiş karakterleri ve sekmeleri depolayacak ve “asciiCode” değişkeni döngüdeki geçerli ASCII kodunu temsil edecektir.
Adım 2: Şimdi, ASCII kodlarının aralığında yineleme yapmak için bir "For" döngüsü kullanıyoruz. Döngünün içindeki VBA CHR işlevini kullanarak geçerli ASCII kodunu karşılık gelen karaktere dönüştürüyoruz ve "result" değişkenine ekliyoruz.
“&” operatörü CHR’den alınan karakteri “result” değişkeninin mevcut içeriğiyle birleştirir.
Ayrıca tabloda görsel olarak ayırmak için her karakterden sonra bir sekme karakteri (vbTab ile gösterilir) ekliyoruz.

Adım 3: Şimdi, "result" değişkeninde saklanan değeri bir mesaj kutusu kullanarak görüntülemek için bir kod satırı ekliyoruz.

Adım 4: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8'e basın, “GenerateCharacterTable()”ı seçin ve Çalıştırın.

Adım 5: Kodu çalıştırdığınızda, 32'den 126'ya kadar olan ASCII kodlarındaki karakterlerin sekmelerle ayrılmış VBA CHR tablosunu gösteren bir ileti kutusu görünecektir.

Dim result As String
Dim asciiCode As Integer
‘ Loop through ASCII codes 32 to 126
For asciiCode = 32 To 126
result = result & Chr(asciiCode) & vbTab
Next asciiCode
‘ Display the result
MsgBox result
End Sub
Örnek 3
Başka bir ilginç örneğe bakalım. Bu örnekte, VBA Chr fonksiyonunu kullanarak belirtilen uzunlukta rastgele bir parola üreten bir kod dizisini inceleyeceğiz.
Adım 1: İlk olarak, yeni modülde bir “TestGeneratePassword” alt rutini oluşturuyoruz. Bu alt rutin, GeneratePassword fonksiyonunu test etmek için bir sürücü programı görevi görüyor.
Kullanıcıdan istenilen şifre uzunluğunu girmesini ister ve girişi değişken şifre uzunluğunda saklar.
Daha sonra, “GeneratePassword” fonksiyonu çağrılır ve argüman olarak “passwordLength” geçirilir. Oluşturulan parola daha sonra “generatedPassword” değişkeninde saklanır.

Adım 2: Burada, istenen parola uzunluğunu temsil eden uzunluk parametresini alan ve oluşturulan parolayı içeren bir dize döndüren “GeneratePassword” fonksiyonunu oluşturuyoruz.
Fonksiyonun içerisinde 1'den length'e kadar bir döngü çalıştırılarak "Rnd" ve Int fonksiyonları kullanılarak büyük harf aralığında rastgele bir ASCII kodu üretilir.

Adım 3: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8 tuşlarına basın, “TestGeneratePassword”u seçin ve çalıştırın.

Adım 4: Kodu çalıştırdığımızda mesaj kutusu bizden şifre uzunluğunu girmemizi isteyecek.

Adım 5: Şifre uzunluğunu (bu örnekte 15) sağladığımızda, üretilen ASCII kodu VBA Chr fonksiyonu kullanılarak karşılık gelen karaktere dönüştürülür ve karakterler birleştirilerek şifre oluşturulur.


İşte tam kod:
Sub TestGeneratePassword()
Dim passwordLength As Integer
Dim generatedPassword As String
' Kullanıcıdan istenen parola uzunluğunu ister
passwordLength = InputBox(“İstenen parola uzunluğunu girin:”)
' GeneratePassword fonksiyonunu kullanarak parolayı üretir
generatedPassword = GeneratePassword(passwordLength)
' Oluşturulan parolayı görüntüler
MsgBox “Oluşturulan Parola: ” & generatedPassword
End Sub
Function GeneratePassword(length As Integer) As String
Dim password As String
Dim asciiCode As Integer
' Rastgele bir parola üret
Randomize
For i = 1 To length
' Büyük harfler aralığında rastgele bir ASCII kodu üret
asciiCode = Int((90 – 65 + 1) * Rnd + 65)
password = password & Chr(asciiCode)
Sonraki i
GeneratePassword = password
End Function
Excel'de Buton Nasıl Oluşturulur?
Excel'de düğme oluşturmak için şu adımları izleyin:
Adım 1: Excel'i açın ve düğmeyi eklemek istediğiniz çalışma sayfasına gidin.
Adım 2: Excel şeridinde “ Geliştirici” sekmesine tıklayın . “Geliştirici” sekmesini görmüyorsanız, önce onu etkinleştirmeniz gerekir. Şeride sağ tıklayın, “Şeridi Özelleştir”i seçin ve “Geliştirici” seçeneğini işaretleyin.

Adım 3: “Geliştirici” sekmesinin “Kontroller” grubunda “Ekle” butonuna tıklayın.

Adım 4: “Form Kontrolleri” bölümünde “Düğme” seçeneğini seçin (genellikle sol üst köşede bulunur).

Adım 5: Çalışma sayfasına tıklayıp sürükleyerek düğmeyi oluşturun. Düğmenin boyutu daha sonra ayarlanabilir.
Adım 6: Açılan “Makro Ata” iletişim kutusunda, düğmeye yeni bir makro oluşturmak için “Yeni”yi seçin.

Adım 7: VBA editörü yeni bir alt rutin oluşturulmuş olarak açılacaktır. Bu alt rutinde düğmenin işlevselliği için kod yazabilirsiniz.

Adım 8: Düğmeye tıklandığında gerçekleştirilecek eylemleri tanımlamak için alt rutinin içine istediğiniz VBA kodunu yazın. Örneğin:
Sub Button1_Click()
'Kodunuzu buraya yazın
MsgBox “Butona tıklandı!”
End Sub
Adım 9: VBA düzenleyicisini kapatın ve üzerine tıklayarak düğmeyi test edin. Bu örnekte, düğmeye tıklandığında “Button clicked!” metnini gösteren bir mesaj kutusu görünecektir.

Dikkat Edilmesi Gereken Önemli Hususlar
- VBA CHR işlevi, sağlanan ASCII koduna dayalı bir karakter döndürür. Yalnızca 0 ila 255 arasındaki ASCII kodlarını destekler.
- VBA CHR kodları, VBA CHR fonksiyonunda bağımsız değişken olarak kullanılabilen ve bunları karşılık gelen karakterlere dönüştüren ASCII kodlarını temsil eden sayısal değerlere atıfta bulunur.
- VBA CHR Listesi, VBA CHR fonksiyonu kullanılarak oluşturulan karakter dizisini içeren bir dizedir.
- VBA CHR sekmesi, bir dizeye veya hücreye bir sekme karakteri eklemek için CHR işlevini kullanmayı ifade eder. ASCII kodu 9 ile temsil edilen sekme karakteri, bir metin içinde yatay boşluk veya girinti oluşturur.
