KULLANICI VERİ GİRİŞ PENCERESİ
&
APPLICATION.INPUTBOX

İÇİNDEKİLER

1 – Application.InputBox Nedir?

2 – Application.InputBox Ve Parametrelerinin İncelenmesi

        2.1 Left

        2.2 Top

        2.3 Type

        2.4 Return Value

        2.5 Remarks

        2.6 Veri Tipleri

            2.6.1 [0] A Formula

            2.6.2 [1] A Number

            2.6.3 [2] A Text

            2.6.4 [4] A Logical Value

            2.6.5 [8] A Cell Reference

            2.6.6 [16] An Error Value

            2.6.7 [64] An Array

1- Application.InputBox Nedir?

    Appliciation.InputBox yani Veri Giriş Penceresi, Appliciation nesnesine ait bir metottur. Ve InputBox diğer Office uygulamaları ile kullanılırken Appliciation.InputBox sadece ama sadece Excel’de kullanılabilen bir metottur. InputBox’a göre özellikle hem kullanış hem de çıktı olarak verdiği veri tipleriyle kullanıcıya daha geniş bir hareket alanı sağlamaktadır. 

    Appliciation.InputBox, veri giriş penceresi açıkken excel worksheet üzerinde hareket edebilmemize olanak verir. Yani veri giriş penceresi açıkken diğer excel ekranlarını kilitlemez, “non-model” bir metottur. InputBox ise açıkken başka bir alana tıklama olanağı vermez yani model’dır. Şimdi Help menüsünü kullanarak Appliciation.InputBox’ı, veri giriş penceresini detaylı olarak irdeleyelim. veri giriş penceresi veri giriş penceresi veri giriş penceresi

 

2 - Application.InputBox Ve Parametrelerinin İncelemesi

 

Appliciation.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

    Yukarıda metot ve metoda ait parametreleri görüyorsunuz. Parametrelerden bir çoğu zaten InputBox ile aynı, bu nedenle sadece Appliciation.InputBox metoduna ait olan parametreler üzerinde duracağız.

    Ek parametrelerden;

 

2.1 - Left

 

Left: Nokta olarak dialog kutucusunun ekranın sol üst köşesine görey atay olarak(x ekseni) yeri

 

2.2 - Top

 

Top: Nokta olarak dialog kutucusunun ekranın sol üst köşesine göre dikey olarak(y ekseni) yeri

2.3 - Type

 

Type: Appliciation.InputBox’ın belki de en önemli farkı bu parametredir. Çünkü burada hangi tip verinin veri giriş penceresinden giriş yapabileceğini ve çıkış yapabileceğini belirliyoruz. Ve biz hangi tip veri girilebileceğini belirledikten sonra ise farklı bir tip veri girildiği anda Appliciation.InputBox’a ait süper bir özellik ortaya çıkıyor.



Veri Giriş Penceresi Application.InputBox Örnek 1

    Bu kodu yazarak kullanıcıdan yaşını girmesini istiyoruz. Diyelim ki kullanıcının kafası karıştı veya yanlışlıkla OK tuşuna bastı. Yani bu poziyonda default olarak belirlenmiş olan “Buraya Giriniz”, InputBox’ta olduğu gibi otomatik olarak girdi olarak kabul edilmeye çalışıldı Appliciation.InputBox tarafından. Ancak burada bir farklılık var. Çünkü biz  kod yazarken Type:=1 diye Appliciation.InputBox’ın kabul edebileceği veri tipini sadece “A number” olarak sınırladık. Peki bu durumda Appliciation.InputBox nasıl bir tepki veriyor.

Veri Giriş Penceresi Application.InputBox Örnek 2    Başvuranın Yaşı isimli veri giriş penceresine burada kasıtlı olarak “Hello” yazıyoruz ve ‘OK’e basıyoruz. Burada Appliciation.InputBox metodu ise girdiğimiz verinin tipini kontrol ediyor ve bir sayı olmadığını tespit edip 2 numaralı uyarı penceresini açarak bizi uyarıyor.

    Bu özellik kullanıcıdan veri alırken, kullanıcıdan alınan verinin tipinin doğru olmasının sağlanması konusunda çok faydalı bir özelliktir. Özellikle bizim ‘Marka ve Modeline Göre Otomobil Fiyatları’ tablomuz gibi içinde matematiksel işlem yapılabilecek veya bir değer aratılabilecek tablolarda girilen verilerin tipleri, çok büyük önem taşımaktadır. Ve bizim tablomuz, oluşturulabilecek veri tabanı tablolarının yanında çok basit bir tablo olarak kalmaktadır. Tablolar ne kadar büyükse, bu tip özelliklerin değeri de doğru orantılı olarak artacaktır.

NOT:Bu arada eğer veri tipini biz belli etmezsek, aynen InputBox gibi çıktı olarak ‘Stirng’ tipi Appliciation.InputBox’ın çıktı veri tipi olacaktır.

    Şimdi Appliciation.InputBox metodu kullanırken, kullanıcıyı veri girişi konusunda yönlendirebileceğimiz veri tiplerini görelim. Şimdi siz de VBA Editor’de bir subroutine açın ve oraya yukarıdaki kodu yazdıktan sonra InputBox üzerine mouse ile bir kere tıkladıktan sonra ‘F1’ tuşuna basıp ‘Help’ menüsünü açın. Uygun olmayanlar için ben yine de aşağı menünün görselini ekliyorum.

Veri Giriş Penceresi Application.InputBox Örnek 3

    Yukarıda yer alan Appliciation.InputBox’ metoduna ait ‘Help’ menüsü görselini en baştan itibaren inceleyelim.

 

2.4 - Return Value

 

    Şimdiye kadar değişkenlerimizi tanımlarken hep kesin bir veri tipi ile eşleştirdik. Bu noktada ise olayı bir farklı boyuta taşıyacağız. Daha önceden ‘Değişken-Variable’ ile ilgili açıklamalar yaparken ‘Değişken’lerin farklı değer alabilen bir çeşit araç olduğundan bahsetmiştik. Örnek olarak ‘isim’ olarak bir değişken tanımladığımızda, isim değişkeni bir örnekte ‘Ali’ başka bir örnekte ise ‘ Veli’ isimlerini taşıyabilir. Şimdi değişkenin bir de veri tiplerine göre faklılık gösterebilen, farklı veri tiplerini barındırabilen bir değişken tipini göreceğiz. Bu değişken tipinin adı ise ‘Variant’tır. Peki variant nedir? Kısaca sonradan farklı veri tipleri taşıyabilecek olan değişkenleri tanımlarken veri tipini ‘Variant’ olarak belirleriz. Bu sayede o değişken duruma göre her tipte  veri taşıyabilecek hale gelir. Kısaca bütün veri tiplerinin yerine kullanılabilecek bir tiptir. kullanımı ise çok basittir. Sadece veri tipi yerine ‘Variant’ yazmanız yeterlidir.

Dim Isim as String——————->Dim Isim as Variant

Dim Yas as Integer——————->Dim Yas as Variant

    Örnekte de gördüğünüz üzere çok basit bir şekilde değişkenlerimizi tanımlarken veri tipini ‘Variant’ olarak atayabiliyoruz. Bu şekilde çalışmamızı şekillendirdiğimiz zaman dikkat etmemiz gereken şey ise yanlış girdiğimiz veriler için excel’in bizi uyarmayacak olmasıdır.

2.5 - Remarks

 

 

    “Help” sayfasının açıklamalarını oluşturan bu kısımda çok önemli bir detay açıklanıyor. Zaman zaman çok faydalı olabilecek olan bu bilgi ise veri tipi parametresi olarak birden fazla veri tipini seçebiliyor olmamız. Ve bunun kuralı ise sadece veri tiplerini ifade eden değerleri aralarında ‘+’ işareti koyarak yazmak, bu kadar basit.

Veri Giriş Penceresi Application.InputBox Örnek 5

    Görüdüğünüz şekilde veri tiplerini ifade eden değerler(1: number, 2:Text) yukarıdaki görselde olduğu gibi yazılırsa, Appliciation.InputBox hem ‘string’ hem de ‘sayı’ formatında olan veri girişlerini kabul edecektir.

2.6 - Veri Tipleri

 

 

    Appliciation.InputBox metodunun en büyük farklarından birinin kullanıcıya istediğimiz veri tipinde girişe zorlamak olduğunu artık biliyoruz. Şimdiyse bu veri tiplerini inceleyelim.

2.6.1 - [0] A Formula

 

 

0———- A Formula / Formül. Appliciation.InputBox’a formül girmek istediğimiz zaman kullandığımız veri tipidir.

    Yorum olan kod satırlarında workbook ve worksheet seçimini ayrı satırlarda nasıl yaptığımızı gösterilmektedir. Sonrasında ise workbook ve worksheet seçimini tek satırda nasıl bağlarız onu görüyoruz. Son satırda ise ‘Marka Ve Modeline Göre Otomobil Fiyatları’ tablomuzun J3 hücresine Appliciation.InputBox ile formül girişi yapılabilmesi için kodumuzu yazıyoruz. Şimdi görsel üzerinden bu kodu çalıştırdığımızda Appliciation.InputBox’ın  nasıl çalışacağını inceleyelim.

    Veri giriş penceremiz açıldıktan sonra 2 farklı şekilde formül girebiliriz. Mesela elimizle 230 000 / 12 yazabilir veya veri giriş penceremiz ‘non-model’ olup da worksheet üzerinde istediğmiz hücreye tıklamamıza izin verdiği için istediğimiz değerleri, hücrelere tıklayarak Appliciation.InputBox’a girebiliriz. Biz bu örnekte ilk önce otomobil fiyatının göründüğü hücreye tıklayarak o değeri seçtiksonra da bölüm işaretini ve taksit sayısını ise elimizle girdik.

    Ok tuşuna bastıktan sonra ise girdiğimiz formülün sonucunu’J3′ te görebiliyoruz. Burada dikkat etmenizi istediğim bir nokta var. 19 166,67 değerine tıkladığımız zaman, formül çubuğuna baktığımızda girmiş olduğumuz formülü görebiliriz.

    Kendimiz formül girebildiğimiz gibi, excel’in gömülü formül, fonksiyonlarından da fayda burada faydalanabiliyoruz. Örnek olarak =Sum fonksiyonunu işleyelim.

    Yukarıda kodu inceleyelim. Önemli olan tek fark Default:=”=Sum(” yazmış olmamız. Şimdi bu formülün veri giriş penceresinde nasıl durduğuna bakalım.

    Gördüğünüz gibi formülümüz tam anlamıyla sanki excelin formül çubuğundaki gibi görünüyor. Tek bir eksiği var. toplanacak verilerin bulunduğu aralık ve son olarak da ters parantez. Bu arada çok önemli bir detayı atlamadan hemen üzerinden geçelim. =Sum( gri renkte olması demek eğer gidip bir yere tıklarsanız veya bir şey yazmaya çalışırsanız silineceği anlamına gelir. Onun için ilk önce mouse ile veri giriş satırına, parantezin hemen sağına tıklıyoruz ve sonrasında aralık seçerek ters parantezi ekliyoruz. Şimdi bu işlemlerin görsellerine bakalım.

    Veri giriş penceresinin içine tıklayıp, formülü silinmeyecek şekle getiriyoruz. İmleç parantezin hemen bitiminde, hücrelerin geleceği yerde olmalı.

Şimdi içlerindeki değerlerin toplanmasını istediğimiz hücre veya hücreleri seçiyoruz

    Son olarak da parantezi kapatıp ‘OK’ tuşuna basıyoruz.

    Veri giriş pencerelerine formül giriş işlemleri yukarıdaki ve yukarıdaki işlemlerin türevlerinden oluşmaktadır. İlk aşamada bazen kafa karışıklığına yol açabilen bu işlemler ile ilgili herhangi bir sorunuz olursa [email protected] e-posta adresine mesaj gönderebilirsiniz.

 

2.6.2 - [1] A Number. Girdi Olarak Bir Sayı Kullanılmak İstediğinde

 

 

    Burada kullanıcıdan integer, double, long, short tiplerinde bir sayı girmesini istiyorsak Type:=1 şeklinde giriş işlemini sınırlandırırız.

2.6.3 - [2] A Text. Girdi Olarak Bir Yazı Kullanılmak İstediğinde

    Kullanıcının girmesini istediğimiz veri tipi ‘string’ / ‘text’ ise Type:=2 olarak kullanıcıyı sınırlandırabiliriz. Ancak Appliciation.InputBox metodunun kendi otomatik farbirak ayarı da zaten ‘string’ tir. Bu yüzden parametre girmemize gerek kalmaz.

2.6.4 - [4] A Logical Value. Girdi Olarak True/False Kullanılmak İstediğinde

    Kullanıcıdan sadece doğru veya yanlış anlamına gelen True False girmesini istediğimiz durumlarda kullanırız. Bu konuyu henüz işlemediğimiz için bu veri tipi üzerinde durmayacağız.

2.6.5 - [8] A Cell Reference. Girdi Olarak Bir Hücrenin Adresi Kullanılmak İstediğinde

 

     Bu veri tipi aslında bir hücrenin adresidir. Range(“A1”) gibi. Ancak bu adresi elle girmek yerine Appliciation.InputBox açıldığı zaman worksheet üzerinde herhangi bir hücreye tıklayarak adresini girmiş oluyoruz. Formul girme örneğimizle hücre referansı girme örneğimizi birleştirmeye çalışalım. Daha önceki örneğimizde belirlediğimiz bir hücrenin değerine =Sum() fonksiyonu ile seçtiğimiz aralıktaki değerlerin toplamını atamıştık. Şimdi de ilk önce toplama işlemini gerçekleştirelim, sonrasında ise sonucun aktarılacağı hücreyi Appliciation.InputBox ile seçelim.

    Subroutine’i daha iyi bir şekilde inceleyebilmek için bölümlere ayırdık ve her bir bölüme her zamanki gibi bir numara verdik.  Burada bir numaralı bölümde değişkenlerimizi tanımlıyoruz. İlk önce sonucun görüneceği, formülden çıkan neticenin aktarılacağı hücreyi temsil edecek olan ‘Sonuc’ değişkenini ‘Range’ olarak tanımlıyoruz. Sonrasında ise Formulü ‘String’ veri tipinde tanımlıyoruz. 

    İki numaralı bölümde formül değişkenini Appliciation.InputBox’ta girilen değere eşitlemek için kodumuzu yazıyoruz.

    Üç numaralı bölümde formül sonucunun gözükmesini istediğimiz hücreyi, Sonuç değişkenimize atıyoruz.

    Son olarak dördüncü bölümde ise  formülümüzü bir Range’e aktarabilmek için FormulaLocal Property’sini kullanıyoruz.

    Şimdi de subroutine çalıştırdığımız zaman sırayla açılan pencrelere bakalım.

    İlk açılan veri giriş penceresinde toplanacak verilerin bulunduğu alanı seçiyoruz ve sonradan da parantezi kapatıyoruz.

    Açılan ikinci pencere ise  toplama işleminin yazdırılacağı / aktarılacağı hücreyi seçmemiz isteniyor. Range(“H16”) hücresine tıklayarak, veri girişini tamamlıyor ve ‘OK’ tuşuna basıyoruz.

    Gördüğünüz gibi artık Appliciation.InputBox’a yaptırmış olduğumuz işleme ait sonuç, yine Appliciation.InputBox’a hücreye tıklayarak gösterdiğmiz adresde görülmektedir. 

    Şimdi konunun biraz daha pekişmesi adına Range Reference veri tipine ait bir örnek daha yapalım. Burada ise bir hesaplamadan ziyade basit bir kopyalama ve yapıştırma işlemini Appliciation.InputBox ve Appliciation.InputBox a ait Range Referance parametresini kullanarak gerçekleştirelim. Hazırlamış olduğumuz subroutine üzerinden ilerleyelim.

    Bu örnekteki amacımız ilk önce kopyalamk istediğimiz alanı seçmek sonrasında ise yapıştırmak istediğimiz alanı seçerek, kopyalanan verinin seçtiğimiz alana yapıştırılmasını sağlayabilmek. Bu işlem için kısa bir subroutine hazırladık ve bu paragrafın üzerine görsel olarak yapıştırdık. Şimdi bölümlere ayrılmış olan subroutini bölüm numarasının altında inceleyelim.    

     Bir numaralı subroutine bölümünde 2 adet  değişken tanımlıyoruz. Bu değişkenlerden bir tanesi kopyalamk istediğimiz alanı tanımlayacak olan ‘Kopyalanacak_Alan’, diğeri ise kopyalanan verilerin yapıştırılacağı ‘Kopyalama Adresi’.

    İki numaralı bölümde kopyalanacak alan değişkenini Appliciation.InputBox ile girilen alana eşitliyoruz.

    Üç numaralı alanda Appliciation.InputBox ile kullanıcadan alacağımız Cell Reference ile Kopyalama_Adresini eşitliyoruz.

    Artık elimizde hem kopyalanacak alan hem de kopyalama adresi var. Yapmamız gereken tek şey ise  basit kopyala ve yapıştır metotu ile işlemi gerçekleştirmek. Bu işlemi de 4 numara ile gösterdiğimiz subroutine’in bölümünde yapıyoruz. Şimdi açılan veri giriş pencerelerini görelim.

   Burada açılan pencereye kopyalanmasını istediğimiz alanı seçtikten sonra’OK’e basıyoruz.

    Burada ise kopyalama adresini olan hücreyi seçiyoruz.

    ‘OK’ tuşuna bastığımız anda kopyalama işlemi tam olarak tamamlanacaktır. Cell Reference ile ilgili örnekler gördüğünüz gibi çoğaltılabilir ancak biz örneklerimizi burda bitiriyoruz. Her zaman olduğu gibi aklınıza takılan herhangi bir şey ile ilgili [email protected] adresine elektronik posta gönderebilirsiniz. 

2.6.6 - [16] An Error Value. Girdi Olarak Hata Kodu Kullanılmak İstediğinde

    Bu veri tipi ile ilgili çalışma gerçekleştirilmeyecektir.

2.6.7 - [64] An Array Value. Girdi Olarak Array Kullanılmak İstediğinde

 

    Bu konuyu daha önceden işlemediğimiz için veri tipleri olarak ‘Arrays’a değinilmeyecektir.

   Genel kullanım olarak Appliciation.InputBox daha önceden de bahsettiğimiz gibi kullanıcıdan veri almayı sağlayan bir metottur. İleri derslerde daha farklı şekillerde ve amaçlarda kullanımını tecrübe edeceğiz. Kullanıcıdan şifre isteyip, doğru veya yanlış şifre girişine göre worksheet açıp kapatacağız, kullanıcıya yetki vereceğiz. Ancak şimdilik bu konuyla ilgili işleyeceğimiz konuları bitirmiş durumdayız. Diğer derslerimizde görüşmek dileğiyle….

Dünya Çapında Araştırmacılara Ait Çalışmaları Okumak İsterseniz https://www.researchgate.net/profile/Ender_Dagdelen adresini Ziyaret Edebilirsiniz. Ana Sayfaya Dönmek İsterseniz De Aşağıdaki Tuşu Tıklayınız.

Herkese İyi Çalışmalar…

Soru ve Önerileriniz İçin;

[email protected]