Excel’de VBA programlama (Visual Basic Application) Ders 7 Kullanıcı Formları
Kullanıcı Formları Metin Kutuları Görüntüleme ve düzenleme Onay Kutuları Seçenek işaretleme Liste Kutuları Görüntüleme ve seçme Etiket Görüntüleme İlave Kontroller örn. takvim veya video veya Activex
Her kullanıcı formu bir UserForm nesnesi ile temsil edilir Her kullanıcı formu bir UserForm nesnesi ile temsil edilir. Her kullanıcı formu UserForms koleksiyonunda bulunur. Bir projeye yeni bir kullanıcı formu eklemek için Insert menüsünden UserForm komutu seçilir.
Kullanıcı formuna yerleştirilebilecek denetimlerin bulunduğu araç kutusu Kullanıcı formunun özellikleri
Kullanıcı Formu Özellikleri Kullanıcı Formunun Önemli Özellikleri Kullanıcı formu bir çok özelliğe sahiptir. Bu özellikler ya tasarım yada kod kullanılarak çalışma zamanında düzenlenir. Properties penceresinden bir özellik seçip F1 tuşuna basılarak ilgili özellik hakkında ayrıntılı bilgi edinilebilir. Kullanıcı Formunun Önemli Özellikleri Caption Formun başlık kısmında görüntülen metni Height Punto cinsinden formun yüksekliği ( 1 punto = 1/72 inç) MousePointer Formun üzerine geldiğinde fare imlecinin görüntüsü Name Koleksiyona başvurmak için kullanılan isim Picture Arka plan resmi olarak kullanılacak resim dosyası PictureAlignment Bir resmin formdaki yerini belirler. PictureSizeMode Resim büyüklüğünün nasıl değiştirileceğini belirtir. ShowModal True ise uygulamanın diğer bölümleri çalıştırılmadan önce form kapatılmalıdır. False ise uygulamanın diğer kısımları çalışırken form ekranda kalabilir.
Kullanıcı Formuna Kontrol Eklemek Kullanıcı formunun en önemli kısmını oluşturur. Araç kutusunda her kontrol tipi için bir simge yer alır. Önemli Kontroller Label Kullanıcı tarafından düzenlenemeyen bir metin görüntüler. TextBox Kullanıcı tarafından düzenlenebilen bir metin görüntüler. ListBox İçinden seçim yapılabilecek öğe listesi görüntüler. ComboBox Textbox ve ListeBox kontrollerinin işlevlerini birleştirir. CheckBox Açılıp kapatılabilen bir seçenek görüntüler OptionButton CheckBox’a benzer. Ancak aynı anda bir seçenek etkin olabilir. Bir grup oluştururken önce Frame kontrolü yerleştirilir. ToggleButton Açık yada kapalı konumları olabilen düğme. Frame OptionButton gibi diğer kontrolleri gruplamak için kullanılır. CommandButton Bir işlemi gerçekleştirmek için kullanılan düğme. Image Bir resim görüntüler.
Kontrollerin Adlandırılması Bir kontrol kullanıcı formuna eklendiği zaman varsayılan bir isim atanır. Ancak anlaşılır bir isimle değiştirmek programın denetlenmesi açısından faydalıdır. Bu durum Name özelliği ile sağlanır.
Kontrollerde Sekme Sırası Çalıştırma işlemi esnasında belirli kontrolü etkinleştirilebilir. Kullanıcı Tab yada Shift+Tab ile etkin kontrolü değiştirebilir. Etkinlik durumu sekme sırasına göre kontrolün TabIndex özelliği ile belirlenir. Bu özellik 0 ile n-1 arasında değer alabilir. Bir kontrolün TabStop özelliği False olarak ayarlanır ise Tab tuşu ile ilerlenirken bu kontrol atlanır. SetDefaultTabOrder metodunu çalıştırarak Tab sırası değiştirilebilir. Bu komut 7. tab sırasında
Kullanıcı Formlarının Kodları ve Olay Yordamları Kullanıcı Formları kontroller ile birlikte hertürlü VBA kodu içerebilir. Değişkenler, Kullanıcı tanımlı tipler ve sabit deklarasyonlar Özellik yordamları Altyordamlar, Fonksiyon Yordamları Olay Yordamları Kullanıcı Formu ve kontrollerine atanabilir. Olay Yordamı Kullanıcı formu ve kontrollerinin oluşturduğu her nesne algılayabileceği olaylara sahiptir. Bütün olay yordamları özeldir. Private Sub Nesneismi_olayismi() …. End Sub
Olaylar Herhangi bir tuşa basmak, mouse’u hareket ettirmek, mouse’un herhangi bir tuşuna bir veya iki kere basmak, herhangi bir nesnenin value özelliğini değiştirmek, herhangi bir nesne etkin iken enter tuşuna basmak gibi olaylardır. Change Bir nesnenin value özelliği değiştiğinde oluşur. Mesela, CheckBox kontrolüne tıklanması, TextBox kontrolündeki metnin düzenlenmesi yada ScrollBar kontrolünün hareket ettirilmesi gibi. Click Kullanıcının ilgili nesneye mouse’nin sol tuşuna veya enter tuşuna basılması ile oluşur. CheckBox kontrolünün değeri boşluk çubuğuna basıldığında değişir. Kullanıcı bir nesneye tıkladığında önce MouseDown ve MouseUp olayları gerçekleşir.
DblClick Enter,Exit KeyDown, KeyUp Bir nesne çift tıklandığında gerçekleşir. DblClick olayını tekrar kullanmak için Cancel değeri yordam içinde True olarak ayarlanır. Enter,Exit Bir kontrol etkin iken aynı formun başka kontrolü etkinleştirildiğinde gerçekleşir. Enter olayı etkinlik değiştirilirken, exit ise değiştirildiğinde gerçekleşir. Enter olayı kullanıcıya etkinleştireceği kontrol hakkında bilgi vermk için kullanılabilir. Exit olayında Cancel argümanı True olarak ayarlanırsa etkinliğin başka kontrole gitmesi engellenir. KeyDown, KeyUp Bir kontrol etkin durumda iken herhangi bir tuşa basıldığında veya bırakıldığında gerçekleşir. Keycode basılan tuşa ait tuş kodunu veren bir tamsayıdır.
KeyPress Yazdırılabilir bir tuşa basıldığında etkinleşir. Yazdırılabilir herhangi bir tuş Bu tuşlarla birlikte ctrl tuşu Özel karakterlerle birlikte ctrl tuşu Backspace tuşu ESC tuşu’ na basıldığında gerçekleşir. TAB ENTER Bir ok tuşu gerçekleşmez