VBA “CDEC” işlevi, ifadeleri veya değerleri Decimal veri türüne dönüştürmek için özel olarak kullanılır. Bu veri türü, Integer veya Double gibi diğer sayısal veri türlerinden daha yüksek hassasiyet ve daha geniş bir değer aralığıyla ondalık sayıları tutabilir.
Aşağıdaki örneği ele alalım. Bu örnek, Immediate sekmesindeki bir fonksiyon içinde belirtilen üç sayının çarpımını yazdırır.
VBA CDEC Sözdizimi
CDec işlevinin sözdizimi şöyledir:
CDec(İfade)
"Expression" parametresi, Decimal veri türüne dönüştürmek istediğiniz değeri veya ifadeyi temsil eder. Sayısal bir değer, bir değişken veya geçerli bir ifade olabilir.
Excel VBA'da CDec Fonksiyonu Nasıl Kullanılır?
VBA CDec fonksiyonunu uygulamak için aşağıda gösterildiği gibi şu adımları gerçekleştiriyoruz.
Araç çubuğundaki “Geliştirici” bölümüne gidin ve “Visual Basic” seçeneğine tıklayın. Şimdi, VBA Editörü fonksiyonlar ve Alt prosedürler eklemek için açılır. Ardından, yeni bir modül veya boş sayfa oluşturmak için “Ekle” ve “Modül” düğmelerine tıklayın.
Bir sayıyı ondalık sayıya dönüştürmek için bir alt prosedür başlatın.
Bir double değişkeni, değişken bir veri türünü başlatın.
Inputbox fonksiyonunu kullanarak kullanıcıdan bir sayı alın.
Verilen girdinin sayı olup olmadığını kontrol etmek için bir If-Else ifadesi başlatın, ardından VBA CDec fonksiyonuyla ondalık değerini yazdırın.
Bunu temizlemezse VBA CDec tipinde uyumsuzluk hatası veriyor.
Kod:
Sub ConvertToDecimal() Dim myNumber As Double Dim myDecimal As Variant myNumber = InputBox(“Bir sayı girin:”) If IsNumeric(myNumber) Then myDecimal = CDec(myNumber) Debug.Print “Dönüştürülen değer: ” & myDecimal Değilse: Debug.Print “Geçersiz giriş! Lütfen geçerli bir sayı girin.” End If End Sub
Uygun senaryolarda CDEC fonksiyonunun Excel VBA'da uygulanmasına ilişkin örneklere bakalım.
Örnek 1
Kullanıcı tanımlı bir maliyetle belirli bir miktardaki ürünün toplam maliyetini hesaplamamız gereken bir örneği ele alalım.
Adım 1: VBA CDec fonksiyonunu kullanarak toplam maliyeti yazdıran bir alt prosedür tanımlayın.
Adım 2: Miktarı Tamsayı, fiyatı Para Birimi veri türü ve toplamı Para Birimi veri türü olarak bildirin.
Adım 3: Kullanıcıdan miktar ve fiyatı girin.
Adım 4: Fiyat ve miktarın tam sayı olup olmadığını kontrol etmek için bir If-Else ifadesi başlatın. Geçerli sayılarsa, CInt işlevi miktarı Integer veri türüne dönüştürür ve CDbl işlevi fiyatı Double veri türüne dönüştürür. Sonra, VBA kodu miktarı ve fiyatı çarparak alt toplamı hesaplar.
Adım 5: Eğer geçerli sayılarsa, CInt fonksiyonu miktarı Integer veri türüne dönüştürür ve CCur fonksiyonu fiyatı Currency veri türüne dönüştürür.
Adım 6: Verilen miktarların ve maliyetlerin toplam fiyatı çarpılır ve toplam değişkeninde saklanır.
Adım 7: Verilen sayılar tam sayı koşulunu sağlamıyorsa, veri türü uyuşmazlığı nedeniyle VBA CDec Hatası fırlatır.
Kod:
Sub CalculateTotal() Dim miktar Tam Sayı Olarak Dim fiyat Para Birimi Olarak Dim toplam Para Birimi Olarak miktar = InputBox(“Miktarı girin:”) fiyat = InputBox(“Birim fiyatı girin:”) If IsNumeric(miktar) And IsNumeric(fiyat) Then miktar = CInt(miktar) fiyat = CCur(fiyat) toplam = CDec(miktar) * fiyat Debug.Print “Toplam maliyet: ” & toplam Aksi takdirde Debug.Print “Geçersiz giriş! Lütfen geçerli sayılar girin.” End If End Sub
Adım 8: Yukarıdaki kod için kodu çalıştırın. Çıktı aşağıda gösterilmiştir.
Bu, çıktıyı Hemen sekmesinde yazdırır.
Örnek 2
Bu örnekte, kod kullanıcıdan VBA'daki giriş kutularını kullanarak birim başına miktarı ve fiyatı girmesini ister . Girilen değerler sırasıyla miktar ve fiyat değişkenlerinde saklanır.
Adım 1: Satış vergisini hesaplamak için bir alt rutin oluşturun.
Adım 2: Kullanıcıdan miktar olarak bir değişken, Para Birimi veri türü olarak fiyat, ara toplam, vergiOranı'nı double, satışVergisi ve toplamı kabul etmek için bir Tamsayı değişkeni bildirin.
Adım 3: Kullanıcıdan değişkenin miktarını ve fiyatını kabul edin.
Adım 4: Bir If-Else ifadesi başlatarak fiyat ve miktarın tam sayı olup olmadığını kontrol edin.
Geçerli sayılarsa, CInt işlevi miktarı Integer VBA veri türüne dönüştürmek için kullanılır ve CDbl işlevi fiyatı Double veri türüne dönüştürmek için kullanılır. Daha sonra, kod miktarı ve fiyatı çarparak ara toplamı hesaplar.
Adım 5: Kullanıcıdan vergi oranını yüzde olarak kabul edin ve ara toplam ile vergiOranını çarparak satışVergisini hesaplayın.
Toplam satışlar, ara toplam değerinin CDec'i ve satış vergisi eklenerek hesaplanır.
Adım 6: Bundan sonra MsgBox fonksiyonunu kullanarak tüm değerleri yazdırın.
VBA'da vbCrLf, bir satır sonu (vbCr) ve ardından bir satır beslemesi (vbLf) ile temsil edilen, yeni bir satırı veya satır sonunu temsil eden önceden tanımlanmış bir sabittir . & operatörü, VBA'da birleştirme için kullanılır ve dizeleri veya değerleri birleştirmenize olanak tanır.
vbCrLf, & operatörü ve alt çizgi (_) karakteriyle kullanıldığında, genellikle birden fazla satıra yayılmış dizeleri daha okunabilir bir biçimde birleştirmek için kullanılır.
Bu örnekte, MsgBox işlevi bir ileti kutusu görüntüler. & operatörü değerleri birleştirmek için kullanılır.
Kod:
Sub CalculateSalesTax() Dim quantity As Integer Dim price As Double Dim subtotal As Double Dim taxRate As Double Dim salesTax As Currency Dim total As Currency quantity = InputBox(“Enter the quantity:”) price = InputBox(“Enter the price per unit:”) If IsNumeric(quantity) And IsNumeric(price) Then quantity = CInt(quantity) price = CDbl(price) subtotal = quantity * price taxRate = CDbl(InputBox(“Enter the tax rate (in percentage):”)) / 100 salesTax = CDec(subtotal * taxRate) total = CDec(subtotal) + salesTax MsgBox “Subtotal: ” & Format(subtotal, “#,##0.00”) & vbCrLf & _ “Tax Rate: ” & Format(taxRate, “0.00%”) & vbCrLf & _ “Sales Tax: ” & Format(salesTax, “#,##0.00”) & vbCrLf & _ “Total: ” & Format(total, “#,##0.00”) Else MsgBox “Invalid input! Please enter valid numbers.” End If End Sub
Adım 7: Yukarıdaki kodu yazdırın. Çıktı, tüm kullanıcı girdilerini kabul ederek ve satış vergisi dahil olmak üzere toplam satış miktarını ve ürünleri hesaplayarak MsgBox'ta yazdırılır.
VbCrLf fonksiyonunu kullanarak tüm farklı değerleri birleştirin ve bunları farklı MsgBox açılır pencerelerinde yazdırmak yerine tek bir MsgBox'ta görüntüleyin.
Dikkat Edilmesi Gereken Önemli Noktalar
Giriş değerlerini doğrulayın ve bunların Ondalık veri türü için geçerli aralıkta olduğundan emin olun.
Büyük değerlerle CDec kullanıldığında oluşabilecek olası VBA CDec taşma hatalarını işlemek için On Error ifadesi gibi hata işleme tekniklerini uygulayın.
VBA CDec taşma hatalarını görmezden gelmeyin veya bastırmayın; çünkü bunlar VBA kodunuzda yanlış sonuçlara veya beklenmeyen davranışlara yol açabilir.
VBA CDec Hatası ile uğraşırken olası hataları önlemek için, CDec kullanmadan önce girişi doğrulamak için IsNumeric veya TryParse gibi işlevleri kullanın.