Ünite 5: Fonksiyonlar ve Yordamlar

Giriş

VBA yazılımları ile günlük sorunları çözecek sistem tasarımları yapılmaktadır. Öncelikle sorunun tanımlanması ardından da çözümün sistematik bir biçimde üretilmesi önemlidir. VBA’da tasarlanan çözümler yordam ve fonksiyonları içerir. Fonksiyon ve yordamlar önceki ünitelerde anlatılan makro yapısının gelişmiş halleridir. VBA kullanılanılar özel bir tür dil ile fonksiyon ve yordamlar oluşturulur. Bu dil ile kullanıcıdan alınan veriler işlenerek istenen çıktılara dönüştürülürler. Fonksiyonlar VBA içerisinde tanımlanmış fabrikalar gibi çalışır. Klavyede basılan tuşların veya tıkladığımız butonun VBA’da hazırlanmış fonksiyon ve yordamlara aktarılabilmesi için değişken ismi verilen özel paketler kullanılmaktadır. Kullanılan verilerin özelliklerine göre değişken türleri de değişiklik gösterir.

Fonksiyon ve Yordamların Tasarımı

Günümüzde yöneticilere ve çalışanlara işlerini yaparken yardımcı olan araçlardan biri bilgi sistemleridir. Yaygın olması ve kolay kullanımı nedeniyle Excel VBA tercih edilen bir bilgi sistemi yazılımıdır. Verimliliği arttırmak için kullanılan Excel VBA çalışanların gün içerisinde yaptıkları işin süreçlerine göre tasarlanır ve planlanır. Genel olarak bakıldığında bilgi sistemlerinin tasarımında 5 aşamalı bir model olan Yazılım Geliştirme Yaşam Döngüsü (Software Development Life Cycle – SDLC) kullanılmaktadır.

SDLC modelinde yazılım geliştiricileri öncelikle sorunu analiz ederler. İkinci aşamada sorunu çözecek bir tasarım geliştirilir. SDLC’nin üçüncü aşamasında tasarıma uygun kodlama yapılır. Dördüncü aşamada yazılım güvenlik, kullanışlılık vb. gibi farklı testlerden geçirilir. Son aşamada ise sorun çözecek yazılım kullanıma sunularak entegrasyonu tamamlanır. Yazılım tasarımı programlamanın ilk aşamasıdır. VBA kodlama işlemine başlamadan önce mutlaka ön çalışma yapmak ve programın nasıl işleyeceğini ortaya koymak gerekir. Tasarım aşamasında nasıl bir VBA sistemi oluşturulacağına karar verilir. Sistem, en temel anlamıyla belirli bir amaca ulaşmak için girdileri süreçleyerek çıktılara dönüştüren yapıdır.

Sistemler diğer sistemler ile etkileşimli olabilir. Bir sistemin çıktısı bir diğer sistem tarafından kullanılıyorsa buna açık sistem denir. Kapalı sistemlerde çıktılar üretildikten sonra sistem sonlanır.

Yazılım geliştiricilerinin temel işlevi sorunları çözecek sistem tasarımı yapmaktır. Bu nedenle hangi verilerin kullanıcıdan alınacağına, bu verilerin hangi süreçler ile elde edileceğine ve çıktıların neler olacağına karar vermek gerekir. Yazılım geliştiricinin tasarlayacağı sistemin büyüklüğü, karmaşıklığı ve diğer sistemler ile ilişkisi sonsuzdur. VBA programlamasında girdiler Excel programı hücrelerinden alınır, fonksiyon ve yordamlamalarla süreçlenir, hücreler veya mesaj kutuları ile çıktı üretir.

Değişkenler

VBA programında girdilerin yordam ve fonksiyonlarda kullanılması için değişkenler kullanılır. Değişkenler yazılım içerisindeki paketlere benzer. Değişken paketlerinin içine veriler konulur ve yazılımda gerektiği zaman bu paketler açılarak verilerin kullanılması sağlanır. Excel’de VBA uygulamalarında, genellikle veriler Excel hücrelerindeki rakam veya harflerden oluşur. Bu verilerin VBA yazılımına girebilmesi için öncelikle değişken paketleri içerisine yerleştirilmesi gerekir. Değişken paketi tanımlandıktan sonra paketin içerisine veri ataması için = (eşit) simgesi kullanılır.

VBA içerisinde değişken paketlerinin kullanılmadan önce tanımlanması gereklidir. Değişken paketinin içerisinde hangi tür verilerin gireceği ve bu değişken paketinin adının ne olacağı bilgisi VBA yazılımına tanıtılmalıdır. Değişken paketlerinin tanımlama işlemi değişken paketinin taşıyacağı verilerin özelliklerine göre yapılır. Değişken paketi adı tanımlanırken bir harf ile başlanmalıdır. Değişken paketlerinin adı nokta, boşluk, Türkçe karakter içeremez ve 255 karakterden fazla olmaz. Karışıklıkların önlenmesi için değişken paketlerinin adı Excel VBA kodlarında bulunan deyim, fonksiyon ve yordamlardan oluşamaz. Bunun yanında kapsama alanı içinde değişken paketi adı tek olmalıdır.

Değişken paketlerinin VBA yazılımında verileri taşıyabileceği yerlere yaşam alanı denilir. Değişken paketleri sadece yaşam alanları içerisinde kullanılır. Yaşam alanları değişkenlerin tanımlanma biçimine göre genel (global) seviye, modül (module) seviye ve yordam (procedure) seviye olabilir. Örneğin, Dim ve Static deyimleri ile bir yordamın içinde tanımlanan değişken paketi sadece o yordamın içinde veri taşıyabilir. Başka bir yordam içerisinde kullanılabilmesi için Private veya Dim anahtarları kullanılarak modül seviyesinde tanımlanması gereklidir. Public anahtarı kullanılarak genel seviyede tanımlanan bir değişken paketi diğer modüllerden de çağrılabilir.

Günlük hayatta herhangi bir malzemenin taşınması için paketler kullanılır. Bu malzemenin sıvı, katı ve gaz türünde olmasına göre paketlerin yapısı değişir. Örneğin, pasta taşımak için tasarlanan kâğıttan yapılmış bir pakette su taşınamaz. Benzer şekilde VBA yazılımında da verilerin özelliğine uygun değişken paketlerinin kullanılması gereklidir. Veri tipleri S:91, Tablo 5.1’de açıklandığı gibi sayısal, metin, sabit, mantıksal değişken ve tarih tipinde olabilir.

Fonksiyon ve Yordamlar

Fonksiyon ve yordamlar VBA yazılımında tasarlanan sistemin temel parçalarıdır. Yordamlar VBA yazılımında tasarlanan sistemi tanımlamakta kullanılan özel bir tür dildir. Tasarlanan sistemin kavramları ve kavramların çalışma biçimi bu dil sayesinde tanımlanabilir. Yordamlar tıpkı insanların kullandığı dil gibi özel bir yapıdaki söz dizimi içinde belirtilir. Bu söz dizimleri çoğunlukla gerçek anlamlarına benzese de insanların kullandığı dilden farklıdır. Yordamlar kalıplaşmış sözcük topluluğu ya da cümleler olarak tanımlanabilir. Başka bir ifade ile yordamlar yazılım dilindeki kelime ve cümle yapıları kurallarıdır. Değişken paketleri ve veri tipleri kalıplaşmış sözcük topluluğu örneklerinden biridir.

VBA yordamları 4 ana grupta toplanabilir:

  • Alt Yordam (Sub Procedure): VBA yazılımında kullanılan kodların bir arada bulunduğu yordamdır. Alt yordamın temel amacı tekrarlanan kodların azaltılmasıdır. Alt yordamlar günlük hayatta lojistik işletmelerine benzetilebilir. Çünkü yordam tek yönlü çalışır. Tıpkı bir gönderi paketini lojistik işletmesine teslim edilmesinde geri dönüş olmaması gibi yazılım içerisinde yordam çağırıldığında geri dönüşü yoktur. Amacı olan işlemleri gerçekleştirir ve kod kaldığı yerden devam eder.
  • Fonksiyon Yordamı: Alt yordamla aynıdır. Temel farkı geriye değer döndürmesidir.
  • Özellik Yordamı: Kullanıcı tarafından tanımlanan sınıflardaki özelliklere ulaşmada kullanılır.
  • Olay Yordamı: Nesneler ile ilişkili yordamlardır. Herhangi bir olay gerçekleştiğinde otomatik çalışan yordamlardır. Bir düğme veya liste kutusu gibi kontrol nesnelerine bağlı olarak çalışır.

VBA yazılımında fonksiyonların temel işlevi girdileri süreçlemek ve fonksiyonun amacına yönelik çıktılar üretmektir.

Sistemler diğer sistemler ile etkileşimli olabilir. Bir sistemin çıktısı bir diğer sistem tarafından kullanılıyorsa buna açık sistem denir. Kapalı sistemlerde çıktılar üretildikten sonra sistem sonlanır.

Kullanıcıların ihtiyaçlarına göre VBA yazılımında aritmetik işlemler sıklıkla kullanılmaktadır. Toplama çıkarma, çarpma, bölme vb. işlemler aritmetik işlemler olarak tanımlanır. Aritmetik işlemlerin yapılabilmesi için VBA yazılımına özgü simgeler vardır. Örneğin, toplama işlemi simgesi, matematik dilinde gösterilen simgeyle aynı olan + simgesidir. Fakat çarpma işlemi için VBA yazılımında kullanılan simge * işaretidir. Excel VBA yazılımını hazırlarken kullanılabilecek operatörlerden önemlileri S:94, Tablo 5.2’de özetlendiği gibidir.

Operatörlerin işlevlerini anlamak için basit bir aritmetik işlem yapan VBA tasarımı yapılabilir. Aritmetik bir işlem VBA yazılımında toplam 7 aşamada gerçekleştirilir. Bir toplama işleminde:

Birinci aşamada, S:94, Şekil 5.3’te görüldüğü gibi Excel sayfası hazırlanır. Excel sayfasında B1 hücresine 4 rakamı, B2 hücresine 7 rakamı yazılır.

İkinci aşamada geliştirici sekmesinde yer alan ekle tuşuna basılarak komut düğmesi eklenir.

Üçüncü aşamada tasarım modu düğmesine basılır ve command tuşu üzerine çift tıklanır veya klavyede alt ve F11 tuşlarına beraber tıklanır.

Dördüncü aşamada S:94, Şekil 5.4’te görüldüğü gibi VBA yazılımına hücrelerdeki verilerin girdi olarak alınabilmesi için değişken paketlerinin türleri tanımlanır.

Beşinci aşamada Excel sayfasındaki veriler (4 ve 7 rakamı) hazırlanan değişken paketlerine aktarılır (atanır).

Altıncı aşamada toplama işlemi gerçekleştirilir.

Yedinci aşamada fonksiyon sonucu (4+7) yani 11 rakamı B3 hücresine yazdırılarak çıktı üretilir ve VBA yazılımı sonlanır.

Deyimler VBA’da tasarlanan fonksiyonlar için hayati öneme sahiptir. VBA yazılımında sık kullanılan deyimler S:95, Tablo 5.3’te özetlenmiştir.

Kullanıcı ihtiyaçlarına bağlı olarak zamana ve sürüye bağlı işlemler yapılabilir. Bu durumda VBA yazılımında önceden tanımlanmış fonksiyonlar kullanılır. Bu fonksiyonlara istenen özelliklerde veriler gönderilir ve bu fonksiyonlar işlem yaparak çıktı olarak bize işlenmiş verileri geri gönderir. S:96, Tablo 5.4’te zaman fonksiyonlarından önemli olanları özetlenmiştir.

Excel hücrelerinde verilen tarihleri alıp bu güne kadar geçen süreyi hesaplayan bir VBA yazılımı hazırlanmak istendiğinde veri tipleri, operatörler, deyimler ve zaman fonksiyonlarının kullanıldığı bir tasarım yapmak gerekir. Bu örnekte hesaplama işlemlerini yapan ana programa bağlı bir fabrika gibi çalışan alt fonksiyon tasarımı da yapılacaktır.

Böylece birden fazla tarih için tekrarlanan komut setleri alt fonksiyonlara yollanılarak hesaplama yapılabilecektir. Bu yazılımın tasarım ve kodlama aşamaları aşağıdaki gibidir:

Birinci aşamada Excel hücrelerindeki sütun ve satırların S:96, Şekil 5.5’te görüldüğü gibi tasarlanması gerekir. Excel sayfasında A sütununda önceden belirlenmiş toplam 6 tarih verilmiştir. B sütununda tarihlerin karşısı boş bırakılmıştır. Komut düğmesine basıldığında bugüne kadar geçen süre VBA tarafından hesaplanarak B sütununa yazılacaktır.

İkinci aşamada Geliştirici sekmesinde Ekle tuşuna basıp komut düğmesi eklenir.

Üçüncü aşamada tasarım modu tuşuna basılır.

Dördüncü aşamada komut düğmesinin üzerine çift tıklanır veya klavyede alt ve F11 tuşlarına beraber tıklanır.

Bu aşamadan sonra kullanıcı fonksiyonlarını tanımlamak için VBA kodlarına geçiş yapılır. Bir fabrika gibi çalışacak alt fonksiyon hesaplama etiketi ile tanımlanabilir. Bu alt fonksiyon kullanıcı ihtiyaçlarına göre hazırlanacaktır. Farklı bir deyişle alt fonksiyon ile Excel’de kullanıcı kendi komut yapısını tasarlayabilir.

Hesaplama olarak adlandıracağımız bu alt fonksiyona tarih verisi yollandığında bugüne kadar geçen süreyi hesaplayıp yazı değişkeni şeklinde çıktı üretecektir. Böylece VBA yazılımında yer alan hazır komutları da kullanan yeni bir komut tasarlanmış olacaktır.

Beşinci aşamada Public anahtarı kullanılarak genel seviyede çalışacak şekilde hesaplama etiketli alt fonksiyon tanımlanır. Alt fonksiyona girecek veri tipi parantez içerisinde belirtilir. Örnekte hücredeki_tarih etiketli bir değişken paketi Date veri tipi verilerini almaktadır. Alt fonksiyonun çıktısı ise parantezin bitimine tanımlanır. Örnekte alt fonksiyon hesaplama adında String veri tipinde çıktı üretmektedir.

Altıncı aşamada alt fonksiyon içerisinde kullanılacak değişken paketlerinin tanımını yapılmıştır. Hesaplamada bugünün tarihi Date, bugüne kadar geçen yıl, ay ve gün Integer tipinde olacak şekilde tanımlanmıştır.

Yedinci aşamada bugünün tarihini bulmak için Excel içerisindeki hazır zaman fonksiyonlarından biri olan Date komutunu kullanılmıştır.

Sekizinci aşamada Excel içerisindeki hazır fonksiyonlardan bir diğeri olan DateDiff komutundan yardım alınmıştır. DateDiff komutuna sırasıyla parantez içinde istenilen sürenin tipi (yıl, ay, saat vb.), hücredeki tarih ve bugünün tarihi yollanır. DateDiff komutu bilgisayar tarafından çalıştırılıp girdileri değerlendirir, iki zaman arasındaki farkı istenilen süre tipine dönüştürerek Integer veri tipinde çıktı sağlar. Çıktılar altıncı aşamada tanımlanmış olan değişken paketlerinin içerisine = simgesi ile atanır.

Dokuzuncu aşamada DateDiff komutu ile Integer tipinde veri üretilmiştir. Fakat beşinci aşamada hesaplama alt fonksiyonun çıktısı String yani yazı tipinde olacak şekilde tasarlandığından, Integer veri tipindeki verileri String veri tipine dönüştürmek için CStr komutundan yararlanılır. Bu komut parantez içerisinde gönderilen değişken paketinin içindeki veriyi yazı veri tipine yani String tipine dönüştürür. String tipine dönüştürülen yıl, ay ve gün değişken paketleri ve ne anlama geldiğini göstermek için tırnak işaretlerini kullanarak yapılan açıklama yazıları + işareti ile birbirlerine bağlanır. Birbirlerine tren katarları gibi bağlanan yazı tipindeki veri Alt fonksiyondan dışarı çıkabilmesi için aynı zamanda alt fonksiyonun isim etiketi olan hesaplama değişken paketinin içine atanır. Böylece üretilen değer fabrikadan çıkmış olur. Örnekte hesaplama değişken paketine “37 yıl veya 447ay veya 13612 gün geçmiş.” ifadesini yerleşmiş olur.

Onuncu aşamada Ana fabrikanın yapacağı işlemler tanımlanır. Örneğimizde butona basıldığında yapılacak işlemler bu aşamada tanımlanacaktır. Düğmeye basıldığında Excel sayfasındaki 2. satırdan, 7. satıra kadar olan tarih verileri ile ilgili işlem yapılması gerekmektedir. Bu 2. satırdan, 7. satıra kadar tekrarlanan bir döngünün gerekliliğini gösterir. For komutu ile satir değişken paketi oluşturulur ve bu değişken paketi 2’den başlayıp 7’ye kadar devam edebilir. Next komutu döngünün sonuna konulur. Next komutuna geldiğinde yazılım satir değişken paketinin değerini bir arttırır ve döngüyü tekrar tetikler. Döngünün tetiklenmesi satir veri paketinin alabileceği en fazla değer olan 7’ye kadar devam eder. Döngü toplam 6 kez tetiklenerek başa dönecek ve her bir aşamada For ve Next arasında tanımlanmış fonksiyonu yerine getirecektir.

On birinci aşamada For ve Next komutları arasında yapılacak fonksiyon tanımlanır. Fonksiyon S:96, Şekil 5.5’te tasarlanmış Excel sayfasındaki A sütunundaki (yani 1. sütundaki) tarih verilerini beşinci aşamada tanımlanan hesaplama alt fonksiyonuna göndermektedir. Excel sayfasındaki A2 hücresinden A7 hücresinde kadar olan tarih verileri döngü sayesinde tek tek hesaplama fonksiyonuna yollanacaktır. Hesaplama fonksiyonu bir fabrika gibi çalışarak çıktı üretecektir. Hesaplama alt fonksiyonunun ürettiği String tipindeki çıktı işlem yapılan satırın B sütununa yazdırılır.

On ikinci aşamada S:98, Şekil 5.7’de görülen örneğin ikinci aşamasında oluşturulan komut butonuna basıldığında A sütununda yazan tarihlerden işlem yapılan güne kadar geçen süre B sütunundaki satırlara yazdırılır.

Excel VBA yazılımda sayısal ve tarih işlemlerinin yanında metin veri tipindeki veriler ile de işlemler yapılabilmektedir. Karakter işlemlerinin bir bölümü ASCII (American Standard Code for Information Interchange- Bilgi Değişimi İçin Amerikan Standart Kodlama Sistemi) tablosu ile ilgilidir. ASCII kodu bilgisayarların birbirleri ile veri alışverişinde kullandığı bir tür dildir.

Excel hücrelerinin içerisine http://www.anadolu.edu.tr Anadolu Üniversitesi İnternet sayfasında yayınlanmış olan duyuruları kopyalandığında duyuruların öncesinde ve sonrasında karakter boşlukları yer alır. Excel VBA’da aşağıda yer alan örnekteki gibi Excel hücrelerindeki metinlerin sağındaki ve solundaki boşlukları alan bir yazılım hazırlanabilir:

Birinci aşamada Excel hücrelerindeki sütun ve satırların S:99, Şekil 5.8’de görüldüğü gibi tasarlanması gerekir. Excel sayfasında A sütununda Duyuru metinleri yapıştırılır.

İkinci aşamada Geliştirici sekmesinde Ekle tuşuna basıp komut düğmesi eklenir.

Üçüncü aşamada tasarım modu tuşuna basılır.

Dördüncü aşamada komut düğmesinin üzerine çift tıklanır veya klavyede alt ve F11 tuşlarına beraber tıklanır.

Beşinci aşamada S:101, Şekil 5.9’de görülüğü gibi VBA kodlarına geçiş yapılır. satir_no etiketli Integer veri tipi taşıyacak bir değişken paketi ve hucre_ici_veri etiketli String tipinde veri bir değişken paketi tanımlanır. satir_no değişken paketi üzerinde işlem yapılan satır numarasını tutmak için kullanılacaktır. hucre_ici_veri değişken paketi ise sağından ve solundan boşluk alınması planlanan duyuru metinlerini Excel hücrelerinden alıp, verileri VBA yazılımının içerisine taşıyacaktır.

Altıncı aşamada hücre_ici_veri değişken paketinin içerisine daha sonraki aşamalarda tasarlanması planlanan döngüyü tetikleyecek rastgele bir metin ataması yapılmıştır.

Yedinci aşamada Excel hücrelerinde hangi satırdan başlanacağı bilgisi girilmiştir. S:98, Şekil 5.6’da görüldüğü gibi A sütununu 1. hücresinde Duyuru şeklinde bir başlık vardır. İşlemler A2 hücresinden başlayacağından satir_no içerisine 2 sayısı atanmıştır.

Sekizinci aşamada hücrelerdeki verileri tek tek VBA yazılımı paketlerine aktarılacak bir döngü oluşturulmuştur. Boş hücre gelinceye kadar döngü devam edecektir. Bunun için hücre_ici_veri etiketli değişken paketi eşit değilse boşa (<>””) yordamı kullanılmıştır.

Dokuzuncu aşamada Excel sayfasındaki hücre içindeki veri hücre_ici_veri değişken paketine atanmıştır. Atama işlemi yapılırken karakter fonksiyonlarından Trim komutundan faydalanılmıştır. Trim komutu ilgili satırdaki veriyi hücreden aldıktan sonra sağ ve solundaki boşlukları aldıktan sonra veri hücre_ici_veri paketinin içerisine atmaktadır.

Onuncu aşamada işlem yapılan Excel hücresinin içine hücre_ici_veri paketindeki sağ ve solundan boşluklar alınan veri yüklenir.

On birinci aşamada sonraki satıra geçilebilmesi için satır sayısı bir arttırılır.

On ikinci aşamada döngü başa dönerek tetik mekanizmasını yani hücre içindeki veri boş değilse ifadesini tetikler. hucre_ici_veri paketinin içi boş ise son satıra gelinmiş demektir. Bu durumda tetik mekanizması çalışmaz ve döngüden çıkılır. Son olarak yazılım sonlanır.

Excel VBA yazılımda aritmetik işlemlerin yanında matematik, istatistiksel ve geometrik işlemlerde hazır matematik komutları kullanılabilmektedir. Bu komutlardan Abs(), sayıların mutlak değerlerinin alınması için kullanılmaktadır. Sin, Cos, Tan, Cot gönderilen sayıların sinüs, kosinüs, tanjant ve kotanjant değerlerinin hesaplanmasında kullanılan komutlardır. Rassal sayılar üretilmesi için Rnd komutu kullanılmaktadır. Rnd komutu istenilen olasılarda (sürekli olasılık dağılımı, ayrık olasılık dağılımı vb.) olacak şekilde düzenlenebilmektedir.

Günümüz bilişim teknolojilerine erişim için en çok kullanılan unsurlardan biri şifrelerdir. E-posta adresinden, İnternet bankacılık hesabına, vatandaşlık işlemlerinden, öğrenci işlemlerinin büyük bölümüne erişebilmek için şifreler kullanılır. Excel VBA yazılımı yardımı ile 6 karakterden oluşan içerisinde harf ve sayılar bulunan rassal bir şifre üretme aracı aşağıdaki gibi tasarlanabilir:

Birinci aşamada Excel hücrelerindeki sütun ve satırların S:102, Şekil 5.10’da görüldüğü gibi tasarlanması gerekir. Excel sayfasında A sütununda üretilecek geçici şifre A2 hücresine yazdırılacaktır.

İkinci aşamada Geliştirici sekmesinde Ekle tuşuna basıp komut düğmesi eklenir.

Üçüncü aşamada tasarım modu tuşuna basılır.

Dördüncü aşamada komut düğmesinin üzerine çift tıklanır veya klavyede alt ve F11 tuşlarına beraber tıklanır.

Beşinci aşamada Geçici şifrelerdeki karakterleri üretebilecek S:103, Şekil 5.11’de görüldüğü gibi karakter_uret etiketli bir fonksiyon tasarlanmalıdır. Bu fonksiyon bir fabrika gibi çalışarak rassal olarak büyük harf, küçük harf ve sayısal karakterler üretecektir. Rassal karakter üretebilmesi için girdi olarak S:103, Tablo 5.7’deki ASCII tablosundaki değerleri kullanacaktır. karakter_uret fonksiyonuna Integer veri tipinde iki sayı yollandığında String tipinde veri üretecektir.

Altıncı aşamada Integer tipinde verileri taşıyabilecek rassal_sayi etiketli bir değişken paketi tanımlanmıştır.

Yedinci aşamada En büyük ASCII kod değeri ile en küçük ASCII kod değeri arasında rassal olarak sayı üretecek bir Rnd komutu hazırlanmıştır. Rassal üretilen sayı rassal_sayi etiketli değişken paketinin içine atanmıştır.

Sekizinci aşamada Rassal üretilmiş olan sayının ASCIII kod tablosundaki karşılığının bulunması için Chr komutundan faydalanılmıştır. Bu aşamadan sonra Excel sayfasında ikinci aşamada tasarlanan buton için fonksiyon oluşturulacaktır.

Dokuzuncu aşamada rassal_karakter_turu_secimi etiketli Integer tipinde verileri taşıyabilecek bir veri paketi ve gecici_sifre etiketli String verilerini taşıyacak bir başka veri paketi tanımlanmıştır.

Onuncu aşamada 0’dan 6’ya kadar dönecek bir For Next döngüsü kurulmuştur. Bu döngü her seferinde rassal karakter üreterek geçici veri içeresine bu karakteri ekleyecektir. Böylece 6 karakterden oluşan geçici şifre oluşturulacaktır.

On birinci aşamada rassal_karakter_turu_secimi değişken paketi içerisine 1 ile 3 arasında Rnd komutu ile bir sayı üretip atanmıştır.

On ikinci aşamada bir önceki aşamada rassal_karakter_turu_secimi değişken paketine atanmış veri kullanılarak Select Case yapısı kurulmuştur.

On altıncı aşamada döngü Next komutu ile tekrar tetiklenecektir.

On yedinci aşamada Excel sayfasında A2 hücresine geçici şifre yazdırılarak buton fonksiyonu tamamlanmıştır.