30.09.2018 tarihinde Excel bölümüne Dış Verilerle çalışmak sayfası eklenmiştir

04.08.2018 tarihinde VBA bölümüne ObjelerDünyası sayfası eklenmiştir

25.07.2018 tarihinde VBA bölümüne Outlook programlama sayfası eklenmiştir

13.07.2018 tarihinde VBA bölümüne Formlar-Kontroller sayfası eklenmiştir

25.05.2018 Hosting şirketi dğeiştirmekten kaynaklı bir hata nedeniyle Excelent add-ini indirirken hata alınmaktaydı. Bu hata düzeltilmiştir. İki ayrı download alternatifi sunulmuştur. Kurumunuzun BT politikalarının veya şahsi PC’nizdeki güvenlik ayarlarının izin vermesi durumunda yöntemlerden biriyle kurulum yapabilmelisiniz. Bi sorun olursa bana iletebilirseniz sevinirim.

VBAMakroFonksiyonlar4

Diğer Fonksiyonlar

VBA'de kullanılan birçok fonksiyon var elbette. Bunların bir kısmını önceki 3 bölümde gördük. Bunun dışında farklı bölümlerde ele aldığımız( Interaktivite bölümüdeki InputBox gibi) ve sonraki bölümlerede ele alacağımız(Dosya işlemlerindeki ChDir gibi) fonksiyonlar da var.

Bizim bu bölümde ele alacağımız fonksiyonlar da tıpkı bu yukarıda bahsettiklerim(metinsel,numerik ve tarihsel) gibi kendi başına kullanılan önemli fonksiyonlar olacak. Bunlar da öncekiler gibi çeşitli bağımsız Modüller(Information ve Interactive modülleri) içinde bulunuyor, Class modüllerinde değil. O yüzden bunları da tıpkı diğerleri gibi, önlerinde bir nesne olmadan kullanacağız.

Aşağıdaki görselden de farkedileceği üzere Modüllerin ikonu Class Modülllerinden farklıdır.(Bunlar başka dillerdeki Static/Shared sınıflara benzerler)

Fonksiyonlar

IsArray, IsDate,IsEmpty,IsError,IsNull,IsNumeric,IsObjcet: Bunlar parametere olarak aldıkları ifadelerin sırayla dizi mi, tarihsel ifade mi, boş mu, hata mı,null mı, sayısal mı obje mi olduğunu döndürür. Çoğunun kullanımı farklı yerlerde gösterildiği için burada ayrıca detaya girmiyorum.

TypeName:Değişkenin tipini verir.(String, Integer, Range vs). Genelde rutin kodlarımız içinde bulunmak yerine birşeyleri kontrol ederken test amaçlı kullanılır.

VarType: Değişkenin tip numarasını verir. Alacağı değerler şöyledir. 0:empty, 1:null, 2:int, 3:long,....7:Date, 8:string, 9:object, 11:boolean, 12:Variant (sadece variant arraylerde), 8192:Array(normal değer + 8192). Bu da TypeName gibi genelde test amaçlı kullanılır.

Bunların hepsini bir arada ele alındığı bir örneğe buradan ulaşabilirsiniz.

Environ:İşletim sistemiyle ilgili bilgiler verir. Ya bir indeksle ya da ifade ile kullanılır. Tüm indekslerin değerlerini aşağıdaki kod ile bulabilirsiniz.

Sub env()
For i = 1 To 46
    Debug.Print "i:" & i & ":" & Environ(i)
Next i
End Sub	

'İfade kullanımı da şöyledir
Debug.Print Environ("USERNAME")

Ben şahsen bunlardan özellikle COMPUTERNAME ve USERNAME'i sıklıkla kullanma ihtiyacı duyuyorum. Mesela ortak kullanılan bir dosya var diyelim, bu bende açıldığında farklı bir işleve sahip olsun başklarında açıldığnda farklı işleve sahip olsun istiyorsam, bunu şöyle hallederim:

If Environ("USERNAME")=12345 Then 'kullanıcı adımın 12345 olduğunu varsayın
    'diğer kodlar
Else
    'Exit Sub
End Sub

Birden fazla bilgisayarla çalıyorsam ve sadece birinde açılan dosyada işlem olsun istersem de şu kod işimi görür:

If Environ("COMPUTERNAME")="A12345" Then 'kullanıcı adımın 12345 olduğunu varsayın
    'diğer kodlar
Else 'B12345 ve L12345'te birşey yapmadan çıkar
    'Exit Sub
End Sub

CreateObject ve GetObject:Bunlar objeler bölümüde ele alınıyor.

SendKeys:Klavyeden belli tuş vey tuş kombinasyonlarının basılması taklidini yapar.

SendKeys "^{F2}" 'Ctrl+F2 kombinasyonuna basılmış sayar

Tüm kullanılabilcekek parametereler burada bulunmaktadır.

Shell:Belirli bir programı açar. Hesap makinesi, Windows Explorer en yaygın olanlarıdır.Mesela aşağıdaki örnekte diyelim ki bir dosyayı parçalara ayırdınız, dosyaların bölündüğü yer de Böl klasörü olsun. Kullanıcıya en son bir mesaj verip, ilgili klasörün açılması sağlanır.

Sub shellornek()

'kod bloğu
'
'
MsgBox "İşlem tamam. Dosyları görmek için tıkayınız"
Call Shell("explorer.exe" & " " & "C:\böl", vbNormalFocus)
'veya Shell "explorer.exe" & " " & "C:\böl", vbNormalFocus

End Sub

 

YORUMLAR