VBScript Kodları Nedir | VBS Kodları | VBScript Nedir ?

VBScript Kodları Nedir | VBS Kodları | VBScript Nedir ?

VBScript Kodları, Microsoft’un Visual Basic Scripting Edition’ıdır (VBScript olarak da bilinir).
Bu dil, Visual Basic dilinin zayıflamış bir sürümüdür. Visual Basic Script, kullanımı kolay, çok küçük bir dildir.
World Wide Web (Chrome,Explorer,Opera,Mozilla vb.) tarayıcılarında, Java uygulamalarını kullananlar, Microsoft Office Programlarını kullananlar veya virüs yazarları için tercih edilen ana dillerden biridir. VBScript Kodları diğer uygulamalarda kullanım için hızlı, taşınabilir, hafif bir tercüman olarak uygulanır.

Birçok virüs yazarı, geçmişte belirli istemci yazılımlarında belgelenen güvenlik açıkları nedeniyle VBScripting kullanıyor.
Visual Basic Script’in gücünü kullanan iyi bilinen virüsler, “ILOVEYOU” virüsü, kak solucanı virüsü ve “Melissa” virüsüdür.

VBScript Kodları ile yerli yapım bir virüs

Size bir anımdan bahsedeyim. Bu kısım seçimliktir, Eğer VBScript kodları ile Excelde makro çalıştırmak istiyorsanız burayı atlayabilirsiniz.
Bilinmeyen bir deli virüs daha var. O da Rasim Savcı adlı aşırı kodcu bir arkadaşımın yaptığı bir virüstür. ” BAYHAN ” virüsü.
Bu virüse denk gelindiğinde ekran kararıyor. ” Bilgisayarınızın Ağzına Sı.ılmıştır ” yazıyor ve ” Öyle deli gibi esme başım dönüyor ” diye O dönemin meşhur şarkıcısının müziği çalıyordu.

Yalnızca  “-” tuşuna bastığımızda ekranın 4’te 1 i gözükür hale geliyordu. Ya regeditten silmemiz gerekiyordu bu kodun eklediği kayıtları ya da o 4’te 1’i gözüken ekranda solucan taraması yapabilen bir antivirüs programı yükleyip sistemi taratmak.

Melissaymış ILOVEYOU imiş, yerli malı yurdun malı BAYHAN varken. 🙂

Uzatma da VBScript kodlarını ver diyorsanız

Tabii ki biz yeni virüsler değil de Excel’i açmadan nasıl makro çalıştırdığımızı göreceğiz.

Sen bana kodu göster gerisini ben hallederim diyorsanız eğer kodları buradan indirebilirsiniz. Olduğu gibi çalıştırabileceğiniz şekilde bıraktım. VBScript kodları hata verdiğinde hangi satırda hata verdiğine bakın. Kodu düzenleyin.

VBScript Kodları ile Excelde Makro Çalıştırma Örneği

Kod yeterli değil sade bir anlatım da gerekli diyorsanız. Pek aşinalığınız yoksa;

VBScript kodlarımızı oluşturup, bilgisayarımızda herhangi bir Excel dosyası için çalıştırabileceğimiz, kapalı excel dosyalarını arkaplanda açıp VBS kodları  ile işlem yaptırma konusundaki yetkinliği kazanmaya başlayalım. 🙂



Kapalı excelde makromuzu çalıştıran VBScript Kodlarımızı  nasıl başaracağız?

Bunlar “.vbs” uzantılı dosyalardır.

VBScript kodlarımızı barındıracağımız VBScript dosyası oluşturmamız için yapmamız gereken çok basit.

Bir not defteri oluşturup aşağıdaki kodları içerisine yazdıktan sonra “.vbs” uzantısı ile kaydedin. O artık çalıştırılabilir VBS kodlarıdır.

Tıpkı “.bat” “.exe” dosya türleri gibi. Örneğimizde bilgisayarımızdaki bir klasörün içine girip, excel dosyasını bulup, “Sayfa1” worksheetindeki A1 hücresine bir şeyler yazdıracağız.

Kod kesinlikle gözünüzü korkutmasın çünkü yarısı açıklama satırı.

Dosya adı: kapaliExceldeMakroCalistir.vbs


'option explicit
'on error resume next

kapaliexceleveriyaz ' altaki sub fonksiyonu çağırmak için bunu yazdık.
Sub kapaliexceleveriyaz()
Dim excelUygulamasi
Dim excelDosyasi
Dim excelCalismaKitabi

kodun hemen burasında bir açıklama yapalım. Burada, bilgisayardaki Excel uygulamamız, dosyamız ve çalışma kitabimiz için değişken oluşturduk. Bunları kullanacağız.

excelDosyasi="makro_calistirilacak_excel_dosya_ismi.xlsx"
Set excelUygulamasi = CreateObject("Excel.Application")
excelUygulamasi.DisplayAlerts = False 'excel açılırken gereksiz uyarıları bu şekilde engelledik.
Set excelCalismaKitabi = excelUygulamasi.Workbooks.Open("C:\Users\HDK_IT\Desktop\"& excelDosyasi)

Burada, oluşturduğumuz değişkenlere ilk değerlerini atadık.

excelUygulamasi.Visible = True 'Çalışan bu kod ile excel açıldığında bu işlem bize de gözükecek. False yaparsak excelin açıldığını görmeyiz.
excelCalismaKitabi.Sheets("Sayfa1").Range("A1")="Dosya açılmadan dosyaya veri ekleyebildik. Yani bir makro çalışabildik,buraya yapmak işlemleri kodlayabilirsiniz."
'burada makro kaydet özelliği ile kaydettiğiniz bir makroyu da kullanabilirsiniz,
'veya bir veritabanından veri çeken bir excel ise "excelCalismaKitabi.refreshAll" yapıp kaydedebilirsiniz de...
' size kalmış :)
excelCalismaKitabi.Save'bu da dosyayı kaydeden save komutudur.
excelUygulamasi.DisplayAlerts = True 'Excel uyarılarını eski durumuna geri aldık. Çünkü sadece bu makro çalışırken uyarı göstermemesini istediğimiz için 'False yapmıştık
excelCalismaKitabi.Close
Set excelCalismaKitabi = Nothing
Set excelUygulamasi = Nothing
End Sub

Yukarıdaki VBScript kodları alt alta ekleyip bir notepad’e yazıp uzantısını “.vbs” olarak kaydetmelisiniz. Bu sayede VBScript kodlarınız çalıştırılabilir bir dosya olarak kaydolmuş oluyor.
Şimdi biraz daha açıklayalım;
“Option Explicit” ifadesi ile  kullanacağım tüm değişkenleri Dim veya Redim şeklinde tanımlayacağımı belirtiyorum. Artık değişkeni tanımlamadan kullanırsam hata alırım. “Option Explicit” ifadesini tanımlamak sizin tasarrufunuzda.

“on error resume next” ifadesi ile runtime hatalarını önlemez ancak bir hata durumunda diğer satıra geçerek kodu sonuna kadar çalıştırır. Bunu tanımlamak size kalmış.
“kapaliexceleveriyaz” ifadesi ile de hemen altındaki sub kapaliexceleveriyaz  fonksiyonunu çağırdık.

VBScript kodları örneği sonuç

Yukarıdaki VBScript kodları belirttiğiniz dosya klasörü ve dosya ismi içerisinde Sayfa1 worksheeti “A1” hücresine “Dosya açılmadan dosyaya veri ekleyebildik. Yani bir makro çalışabildik,buraya yapmak istediğiniz işlemleri kodlayabilirsiniz.” yazacaktır.


VBScript Kodları Birçok Dosyada Çalışsın İstiyorsanız

Eğer birçok dosyada aynı makroyu çalıştırmak istiyorsanız. Mesela aynı klasör içerisindeki birçok dosyada makronuzu çalıştırmak istiyor olabilirsiniz.

Hatta birçok klasör içerisindeki birçok dosyada VBScript kodları ile içerisindeki excellere makro uygulamak istiyor olabilirsiniz. O zaman klasörleri aşağıdaki gibi bir dizide tanımlayabilirsiniz.

dizi(0)="H:\SANTIYELER1\SANTIYELER\" ' bu dosya içerisindeki tüm Excel dosyalarına makro uygulanacak1.
dizi(1)="H:\SANTIYELER1\PERAKENDE_ISLER_LOGO\"' bu dosya içerisindeki tüm Excel dosyalarına makro uygulanacak2.
'Dim dizi(2)' dizi sayısını ben  2 olarak tanımladım daha fazla da tanımlanabilir, her dizi bir adet klasörü ifade ediyor

Burada, içerisindeki excellerde VBScript Kodları ile makro çalıştıracağımız dosyaları bir dizi içerisinde belirttik.

Set oFSO = CreateObject("Scripting.FileSystemObject")' dosya sistemine eriştik.
pathSayisi = UBound(dizi) 'bir döngü ile tüm dizi yani klasörleri dolaşacağımız için dizi sayısını döngüde kullanacağız
For p = 0 to pathSayisi
Set oFolder = oFSO.GetFolder(dizi(p)) ' dizi bilgisinin ifade ettiği klasörü yükledik
Set oFiles = oFolder.Files ' Dizin içerisindeki tüm dosyalar için bir dizi değişkeni oluşturduk
For Each oFile In oFiles 'bu döngü ile de dizi(1),dizi(0) gibi klasör adı belirten klasörlerin içindeki dosyaları tek tek sırasıyla yani önce dizi(0) 'içindeki 1. excel dosyası sonra 2. excel dosyası, bittikten sonra dizi(1) içerisindeki diğer dosyalar olarak gezineceğiz.
next each
next p

VBScript kodlarını bilgisayara otomatik görev olarak çalıştırma

Eğer amacınıza uyuyor ise bir txt içerisine CMD’de bu scripti çalıştırma kodunu(aşağıdaki kod) yazıp, “.bat” uzantısı ile kaydederseniz ve windows’un görevlerine bu bat dosyasını çalıştırması için zamanlarsanız,dilediğiniz zaman bu işlem siz hiçbir tuşa basmadan çalıştırılabilir
örn: makrocalistir.bat içerisinde

cscript "C:\Users\Administrator\Desktop\kapaliexcelmakro\kapaliExceldeMakroCalistir.vbs

Bunu bir notepad açıp, “.bat” uzantısı ile kaydettiğimizde artık windows görev zamanlayıcı ile çalışan bir çalıştırılabilir dosya olarak kullanabiliyoruz.

Yani her gün belli bir saatte çalıştıralabilecek bir dosya olarak kullanabiliyoruz.

Faydalı olmasını temennisiyle. Herhangi bir sorunuz olursa yazmaya çekinmeyin,kısa süre içerisinde dönebileceğimi umuyorum 🙂

Diğer Yazılarım için 

Diğer kaynaklar

 

VBScript kodları nedir. VBS
VBScript kodları nedir. VBS kodları