Excel VBA Tarih işlevi biçimi, VBA'da geçerli sistem tarihini Tarih veri türü olarak döndüren yerleşik bir işlevdir. Tarih işlevi herhangi bir argüman gerektirmez ve Excel VBA'da geçerli tarihi almak için kullanılabilir. VBA Tarih İşlevinin sağladığı değeri döndürür.
Date işlevi, tarihler arasındaki farkı bulmaktan, geçerli saati döndürmeye, geçerli tarihi yazdırmaya ve Date'in yardımıyla yalnızca tarihin ayını, gününü veya yılını yazdırmaya kadar farklı kullanım durumlarına sahiptir. VBA Date işlevi gün ay yıl biçimi genellikle kullanıcıdan gelen argümanlar olarak kabul edilir. Örneğin, aşağıdaki kodu ele alalım:

Bugünün tarihini Hemen sekmesine yazdıracaktır.

- VBA Tarih fonksiyonu belirtilen yıl, ay ve gün bileşenlerine dayalı bir tarih değeri oluşturur.
- Date alt türüne sahip Variant veri türünü döndürür.
- Date fonksiyonu, VBA kodu içerisinde dinamik olarak tarihler üretir.
- Tarih bazlı hesaplamalar, karşılaştırmalar ve manipülasyonlar yapılabilir.
- Tarihler arasındaki farkı hesaplamak veya tarih bileşenlerini çıkarmak gibi görevler için Tarih işlevini diğer tarih işlevleriyle birlikte kullanın.
Excel VBA DATE fonksiyonu nasıl kullanılır?
VBA DATE fonksiyonuna erişmek için onu uygulayacak gerekli kodu yazın ve hazır bulundurun.
Adım 1: Excel'deki araç çubuğundaki "Geliştirici" sekmesine 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.


Adım 2: VBA DATE Fonksiyonu referans kütüphanesini kullanarak, belirli bir tarih ile bugünün tarihi arasındaki gün sayısı farkını bulmamız gereken bir örneği ele alalım.
Adım 3: Tarihler arasındaki farkı yazdıracak bir alt rutin başlatın.

Adım 4: DATE fonksiyonunun değerini tutacak “currentDate”, verilen tarihi tutacak “futureDate” ve iki tarih arasındaki farkı tutacak “daysDifference” olmak üzere üç değişken tanımlayın.

Adım 5: “currentDate” fonksiyonunu DATE fonksiyonundan dönen değerle başlatın ve “futureDate” fonksiyonunu değerini vererek başlatın.

Adım 6: “futureDate” ve “currentDate” değerlerini çıkararak gün farkını yazdırın ve yazdırın.

Burada vbNewLine, tüm değerlerin aynı Debug.Print fonksiyonunda yazdırılmasını sağlar ve çıktıyı yeni bir satıra yazdırır.
Kod:
Sub DateExample()
Dim currentDate As Date
Dim futureDate As Date
Dim daysDifference As Integer
currentDate = Date
futureDate = currentDate + 7
daysDifference = futureDate – currentDate
Debug.Print “Current Date: ” & currentDate & vbNewLine & _
“Future Date: ” & futureDate & vbNewLine & _
“Difference between the dates: ” & daysDifference
End Sub
Adım 6: F5 veya Çalıştır düğmesine basarak kodu çalıştırın. Yukarıda belirtildiği gibi yazdırılacaktır.

Örnekler
VBA DATE bölümünü ve kullanım durumlarını anlamanıza yardımcı olacak birkaç örnek aşağıda verilmiştir.
Örnek 1
Kullanıcıdan gelen belirli bir giriş tarihinin geçmişte, şimdiki zamanda veya gelecekte olup olmadığını kontrol etmek için bir VBA işlemi oluşturduğunuz bir örneği düşünün. Kullanıcı, “InputBox()” VBA işlevini kullanarak tarih değerini kabul eder .
Adım 1: Verilen tarihin geçmiş, şimdiki zaman veya gelecek olup olmadığını kontrol eden bir alt rutin tanımlayın.

Adım 2: 'inputDate' ve 'currentDate' adlı iki değişkeni "Date" veri türü olarak bildirin. "inputDate" değişkeni, kullanıcıdan tarih değişkenini kabul etmek için kullanılır ve "currentDate" değişkeni, bugün VBA Tarih fonksiyonu tarafından verilen Tarih değerini depolamak için kullanılır.

Adım 3: “inputDate” için kullanıcıdan özel girdi kabul edin. Tarih Fonksiyonunun değerini depolayarak “currentDate”i başlatın.

Adım 4: Verilen tarihin geçerli tarihten küçük olup olmadığını kontrol etmek için bir If-Else ifadesi başlatın; o zaman, "geçmiş" olarak tanımlanacaktır. Değilse, "gelecek" değerini döndürür. Değilse, "bugün" değerini döndürür.

Kod:
Sub CheckDate()
Dim inputDate As Date
Dim currentDate As Date
inputDate = InputBox(“Bir tarih girin (gg/aa/yyyy):”)
currentDate = Date
If inputDate < currentDate Then Debug.Print “Girilen tarih geçmiştedir.” ElseIf inputDate > currentDate Then Debug.Print
“Girilen tarih gelecektedir.”
Else
Debug.Print “Girilen tarih bugündür.”
End If
End Sub
Adım 5: Kodu çalıştırmak için VBA araç çubuğundaki yeşil ok düğmesine tıklayın.

Adım 6: VBA kodunu çalıştırın . Çıktı Immediate sekmesinde yazdırılır.


Örnek 2
Diyelim ki yaşınızı Excel VBA kullanarak hesaplamak istiyorsunuz. Yaşınızı döndürmek için doğum yılınız ve geçerli yılınızı çıkararak bulabilirsiniz.
Adım 1: Yaşınızı hesaplamak için yeni bir alt program oluşturun.

Adım 2: 'dob' ve 'age' adında iki değişken tanımlayın. Bu değişkenlerin veri türü Tarih'tir. Burada 'dob' doğum tarihinizi girmek için kullanılır ve age ise yaşınızı saklamak için kullanılan tam sayı değeridir.

Adım 3: dateRange değerini verilen tablonun aralığı olarak başlatın (tercih edilen aralığa göre değiştirilebilir) ve counter değerini 0 olarak ayarlayın.

Adım 4: “age” değişkeni, “dob” değişkeni ile bugünkü VBA DATE fonksiyonu arasındaki farktır.

MsgBox fonksiyonunu kullanarak “yaş” yazdırın. Yaşı bir Mesaj Kutusu açılır penceresiyle yazdıracaktır.
Kod:
Sub CalculateAge()
Dim dob As Date
Dim age As Integer
dob = InputBox(“Doğum tarihinizi girin (gg/aa/yyyy):”)
age = DateDiff(“yyyy”, dob, Date)
MsgBox “Yaşınız: ” & age
End Sub
Adım 5: Kodu çalıştırmak için VBA araç çubuğundaki yeşil ok düğmesine tıklayın.

Adım 6: Ortaya çıkan çıktı aşağıdaki gibidir.


Örnek #3
Belirli bir tarihin yılını, ayını ve gününü VBA Date Function day month year olarak ayrı ayrı yazdırdığınız bir örneği ele alalım. Bu, VBA DatePart() Function kullanılarak yapılabilir .
Adım 1: Bir tarihin bileşenlerini ayrı ayrı bölüp yazdırmak için bir alt rutin başlatın.

Adım 2: “myDate” adlı bir Tarih değişkeni başlatın ve buna VBA Tarih fonksiyonu tarafından verilen değeri atayın.

Adım 3: Tarihin yılını bir değişkene atayın.

Adım 4: Verilen tarihin ay kısmını bir değişkene atayın.

Adım 5: Verilen tarihin gün kısmını bir değişkene atayın.

Adım 6: MsgBox fonksiyonu ile üç değişkeni de yazdırın.

VbNewLine yardımıyla tüm değerleri aynı MsgBox içerisinde ama farklı satırlarda yazdıracaktır.
Kod:
Sub ExtractDateParts()
Dim myDate As Date
myDate = Date
Dim yearPart As Integer
yearPart = DatePart(“yyyy”, myDate)
Dim monthPart As Integer
monthPart = DatePart(“m”, myDate)
Dim dayPart As Integer
dayPart = DatePart(“d”, myDate)
MsgBox “Yıl: ” & yearPart & vbNewLine & _
“Ay: ” & monthPart & vbNewLine & _
“Gün: ” & dayPart
End Sub
Adım 7: Kodu çalıştırmak için VBA araç çubuğundaki yeşil ok düğmesine tıklayın.

Adım 8: Kodu çalıştırdıktan sonra çıktı aşağıda gösterilmektedir.

Dikkat Edilmesi Gereken Önemli Noktalar
- Güncel sistem tarihini almak için Tarih işlevini kullanın.
- DateAdd fonksiyonu bir tarihe belirtilen bir zaman aralığını ekleyebilir.
- DateDiff fonksiyonu iki tarih arasındaki farkı hesaplamak için kullanılır.
- Belirli bir tarih parçasını çıkarmak için DatePart fonksiyonunu kullanırız.
- Ayrı yıl, ay ve gün bileşenlerinden bir tarih değeri oluşturmak için DateSerial işlevini kullanın.
- Tarih fonksiyonu geçerli sistem saatini alamaz.
- Geçersiz tarih biçimleri veya girdilerle zaman tabanlı hesaplamalar yapmak için Tarih işlevini kullanmayın.
- Tarih işleviyle çalışırken tarih biçimi tutarlılığına, geçersiz tarihlerin işlenmesine ve bölgesel ayarların dikkate alınmasına dikkat edin.
