EXCEL VBA'DA CLNG TANIMI:
Excel'deki VBA CLng işlevini anlamak için lütfen aşağıdaki örneğe bakın. İlk olarak, bir String veri türünü Long'a dönüştürelim. Her iki veri türü de sayısal değerleri destekler. VBA Düzenleyicisini açın ve VBA'daki CLng işlevini kullanarak String veri türünü Long'a dönüştürmek için aşağıdaki kodu yazın. Kodu çalıştırın ve sonucu 1050 olarak elde edin (“,” yok sayılır ve Long veri türüne dönüştürülür).
KOD:
Sub CLng_Example()
Dim X As String
Dim LongX As Long
X = “1.050”
LongX = CLng(X)
MsgBox LongX
End Sub

ÖNEMLİ NOKTALAR
- Excel VBA CLng işlevi VBA İşlevleri kategorisine girer. CLng kısaltması "Uzun'a Dönüştür" anlamına gelir ve bir değişkeni (genellikle bir Dize) Uzun veri türüne dönüştürür.
- CLng fonksiyonunun argümanı bir ifadedir (Uzun veri türüne dönüştürülecek).
- Dizenin sayısal bir değer içerdiğinden emin olun (örneğin, "1004"); bir dizeye sayısal olmayan bir metin değeri atarsak, daha sonra onu uzun değere dönüştürmeye çalışırsak, "Tür Uyuşmazlığı" hatası görüntülenir.
- Benzer şekilde, CLng fonksiyonunun aralığının dışında bir değer atarsak, CLng bunu uzun veri türüne dönüştüremeyecek ve “Taşma hatası” gösterecektir.
VBA CLng Fonksiyon Sözdizimi
CLng fonksiyonunun söz dizimi aşağıdaki gibidir:

' İfade (Expression)' herhangi bir VBA veri türünü Uzun veri türüne dönüştürmek için bir değer veya değişken olabilir.
VBA'da CLng Fonksiyonu Nasıl Kullanılır?
VBA CLng fonksiyonunu kullanmak için bir örnek kullanarak şu basit adımları izleyeceğiz.
Bir dize değeri olarak saklanan ondalık bir sayıyı ele alalım. Dizenin değeri bir ondalık sayıysa, örneğin 0,5 ise, ondalık kısım VBA CLng işlevi aracılığıyla yuvarlanır. Ardından sonuç en yakın çift tam sayı olan 1'i gösterecektir. Böyle bir örneğe bakalım.
Adım 1 : Excel'de VBA'yı açın ve " Ekle " sekmesine tıklayın. Aşağıdaki resimde gösterildiği gibi yeni bir modül açmak için " Modül "ü seçin.

Adım 2 : Alt prosedürden başlayarak kodu yazın ve “String” ve “Long” olarak iki değişken bildirin. Dize değişkenine sayısal bir değer atanacak ve uzun veri türüne dönüştürülmesi gerekir.

Adım 3 : Şimdi aşağıda gösterildiği gibi string değişkenine bir değer atayın.

Adım 4 : String’i Long’a dönüştürmek için VBA CLng Fonksiyonunu ve sonucu mesaj kutusunda görüntülemek için “MsgBox”ı kullanın.

Kod:
Sub CLng_Example()
Dim Num As String
Dim LongNum As Long
Num = “999.99”
LongNum = CLng(Num)
MsgBox LongNum
End Sub
Adım 5 : Yukarıdaki kodu F5 veya VBA Şeridinde gösterilen Çalıştır düğmesini kullanarak çalıştırın; sonucu aşağıda gösterildiği gibi mesaj kutusunda görebiliriz:

Burada VBA CLng fonksiyonu string değişken değerini yuvarlatılmış Long sayıya dönüştürmüştür.
Örnekler
Excel'de VBA CLng fonksiyonunun kullanımını gördüğümüze göre, şimdi de bazı örnekler kullanarak Excel'de VBA CLng fonksiyonunun işleyişini anlayalım.
Örnek 1
VBA CLng fonksiyonunu kullanarak iki dize değişkeninin Long değişkenlere dönüştürülmesini istediğimiz bir örneğe bakalım.
Adım 1: Bir alt prosedürle başlayın ve String türünde iki değişken ve Long veri türünde iki değişken tanımlayın.

Adım 2: Şimdi X ve Y'ye sayılar içeren dize değerleri atayın.

Adım 3 : Şimdi, iki String veri türünü (X ve Y) Long veri türüne dönüştürmek için CLng fonksiyonunu kullanacağız.

Adım 4: Sonucu bir mesaj kutusunda görmek için MsgBox işlevini kullanın. Burada, sayının Long'a dönüştürüldüğünü kanıtlamak için Vartype işlevini kullanıyoruz. Değişkenin veri türünü belirten bir tam sayı yazdırır. Long veri türü olduğunu belirten bir 3 almalıyız.

Adım 5 : Kodu çalıştırın ve aşağıda gösterildiği gibi Mesaj kutusundaki her iki dize değeri için sonucu görün:

Örnek 2
Bu örnekte, VBA CLng fonksiyonunun hatası olan “VBA Run-time error-6, Overflow”a bakacağız. Bu hata, VBA CLng fonksiyonunun sayı aralığının dışında bir sayısal değer atadığımızda oluşur.
Adım 1: Bir alt prosedürle başlayın ve String ve Long adında iki değişken tanımlayın.

Adım 2 : Excel VBA CLng dizesine sayısal değeri (2.147.483.649) atayın. Değer CLng işlev aralığının dışındadır.

Adım 3: Şimdi, onu Long'a dönüştürmek için CLng fonksiyonunu kullanacağız. Ancak, atadığımız değer VBA CLng fonksiyonunun aralığının dışında olduğu için bir hata almalıyız.

Adım 4 : Sonucu mesaj kutusunda görmek için MsgBox'ı atayın.

Adım 5: Kodu çalıştırın ve mesaj kutusunda “Run-time error-6, Overflow” ifadesini gözlemleyin.

Örnek 3
CLng kullanırken oluşan bir hatanın başka bir örneğine bakalım. Burada “ Run-time-6 Type Mismatch ” hatasına bakacağız. Bu hata, bir VBA dize veri türüne sayısal olmayan bir değer atadığımızda oluşur. Bu nedenle, CLng işlevi bir dizeyi Long veri türüne dönüştüremez ve sonuçta bir hata görüntüler.
Adım 1: Alt prosedürle başlayın ve veri türleri olan String ve Long değişkenlerini tanımlayın.

Adım 2: Şimdi sayısal olmayan değeri (“Sayı”) dize değişkenine atayın.

Adım 3: Şimdi String'i Long veri türüne dönüştürecek olan CLng fonksiyonunu kullanacağız

Adım 4: Sonucu görmek için MsgBox'ı atayın.

Adım 5: Kodu çalıştırdığımızda, String veri türüne metin değeri atadığımız için iletişim kutusunda “ Run-time error-13, Type Mismatch ” hatasını alıyoruz.

Sub CLng_Example()
Dim Num As String
Dim LongNum As Long
Num = “Sayı”
LongNum = CLng(Num)
MsgBox LongNum
End Sub
Değişken değerine "$" gibi özel bir karakter atadığımızda ne olacağını görelim. Aşağıdaki koda bakın.
Sub CLng_Example()
Dim Num As String
Dim LongNum As Long
Num = “$150”
LongNum = CLng(Num)
MsgBox LongNum
End Sub
Adım 6: Yukarıdaki kodu çalıştırın. Şaşırtıcı bir şekilde, 150 sonucunu elde ederiz. CLng'nin $ işaretini görmezden geldiğini ve String'in geri kalanını Long'a dönüştürdüğünü açıkça gösterir.
Not: Para birimi simgesi yalnızca sisteminizin konum ayarlarına uygunsa yok sayılır. Örneğin, konum ayarlarınız olarak Yen simgesini US ile birlikte kullanmanız bir hata verecektir.

Dikkat Edilmesi Gereken Önemli Noktalar
- CLng (Long'a Dönüştür) fonksiyonu verilen veri tipini Long'a dönüştürür.
- VBA CLng fonksiyonunu kullanırken depolayabileceği aralığa sadık kalmamız gerekiyor; 2.147.483.648 ile 2.147.483.647 aralığının dışında bir değer atarsak VBA CLng “Run-time error,6, Overflow error” hatasıyla karşılaşırız.
- Benzer şekilde, sayısal bir değişkene sayısal olmayan bir değer atarsak, CLng VBA değişken türünü Uzun veri türüne dönüştüremez ve “ Çalışma zamanı hatası.-13, Tür Uyuşmazlığı” gösterir. CLng işlevi, ondalık ve rakam ayırıcıları için işletim sisteminin bölgesel ayarlarını kullanır.
- VBA CLng date – CLng fonksiyonu bir Date veri türünü uzun veri türüne dönüştürebilir .
Örneğin:
Kod:
Sub CLngEx()
Dim DateEx As Date
DateEx = #3/3/2023#
MsgBox CLng(DateEx)
End Sub

Sonuç, Excel'in tarih depolamasında kullandığı kodlanmış dahili sayıdır.

