EXCEL VBA'DA INPUT BOX İFADESİ

VBA Giriş Kutusu, kullanıcıların gereksinime göre bir şey girmelerine izin verilen bir açılır pencere oluşturur. VBA projelerini çeşitli aşamalarda geliştirdiğimizde, projede daha ileri gitmek için onlardan birkaç girdi toplamamız gerekebilir. Bu nedenle, bu durumlarda giriş kutusunu tasarlayabiliriz.

Ayrıca, çeşitli ölçütlere dayalı bir giriş kutusu da oluşturabiliriz. Örneğin, kullanıcının yalnızca sayısal sayılar girmesini istiyorsak, giriş kutusunu bu şekilde tasarlayabiliriz. Benzer şekilde, kullanıcının yalnızca tarih değerleri girmesini kısıtlayabiliriz.

ÖNEMLİ NOKTALAR

  • VBA Giriş Kutusu bir açılır penceredir ve kullanıcılardan girdi almak için kullanılır.
  • VBA Giriş Kutusu tipleri, veri doğrulama seçeneklerine sahip Genel Giriş Kutusu ve Uygulama.Giriş Kutusu'dur.
  • Application.Input kutusunda çeşitli veri doğrulama tekniklerinin bulunduğunu unutmayın.
  • Ayrıca, tip argüman değerini 8 olarak vererek kullanıcının giriş değerini sadece hücre referansından veya hücre aralığından seçmesini kısıtlayabiliriz.
  • Değişken sadece atanan veri tipindeki değeri tutabilir.

VBA Giriş Kutusunun Sözdizimi

VBA Input Box'ın sözdizimi iki şekilde gelir.

Birincisi şu şekildedir:

INPUT(Prompt, [Title], [Default], [XPos], [YPos], [HelpFile], [Context])

İstem(PROMPT): Zorunlu bir argümandır. Kullanıcıya Giriş Kutusuna girmesi gereken veri türü hakkında bilgi verebiliriz.

[Başlık](TİTLE): Bu argümanda giriş kutusu için bir başlık verebiliriz. Bu isteğe bağlı bir argümandır ve bu nedenle bunu yoksayarsak, giriş kutusunun başlığı olarak uygulama adını alırız, yani Microsoft Excel.

[Varsayılan](DEFAULT): Giriş kutusunun giriş alanında, gereksinime göre varsayılan değeri gösterebiliriz.

[XPos]: Bu isteğe bağlı bir argümandır. Bu argümanda, giriş kutusunun koordinatını X eksenine yerleştirecek bir sayı gireceğiz.

[YPos]: Bu isteğe bağlı bir argümandır. Bu argümanda, giriş kutusunun koordinatını Y eksenine yerleştirecek bir sayı gireceğiz.

[HelpFile]: Bu argümanda, giriş kutusuyla kullanılacak yardım dosyasının konumunu vereceğiz. Bu isteğe bağlı bir argümandır ancak [Context] argümanını kullanırsak zorunlu hale gelir.

[Bağlam]: Bu argüman, yardım dosyasıyla ilişkili bağlam kimlik numarasını içerir. İsteğe bağlı bir argümandır ancak [YardımDosyası] argümanını kullanırsak zorunlu hale gelir.

Aşağıdaki görselde VBA'daki tipik giriş kutusu gösterilmektedir.

VBA Giriş Kutusu - Veri toplama

Şimdiye kadar gördüğümüz giriş kutusunun sözdizimi, sınırlı özelliklere sahip temel olanıdır. Excel'de veri doğrulamasını kontrol etmenin gelişmiş özelliklerini elde etmek için “Application.InputBox” işlevini kullanmamız gerekir.

VBA Giriş Kutusu - Uygulama

Sözdizimi, önceki bölümde gördüğümüz genel giriş kutusuyla aynıdır. Application.InputBox'ı kullandığımızda elde ettiğimiz ek özellik Type argümanıdır.

[Tür]: Bu, veri doğrulamasını yapmamıza olanak tanır. Bu arada, bu isteğe bağlı bir argümandır.

Örneğin, kullanıcının yalnızca Excel'deki hücre referansından değer girmesini istiyorsak , bu doğrulamayı devreye sokabiliriz. Bu, tüm geliştiriciler için bir cankurtarandır çünkü bir geliştirici olarak, veri doğrulamasını yapmak için birden fazla satır kod yazmamıza gerek yoktur.

İhtiyaca göre aşağıdaki sayısal değerler girilebilir.

  • 0 – Sadece formül girilebilir.
  • 1 – Sadece rakam girilebilir.
  • 2 – Sadece metin dizisi girilebilir.
  • 4 – Sadece mantıksal bir değer girilebilir, TRUE veya FALSE
  • 8 – Giriş olarak yalnızca hücre referansı verilebilir.
  • 16 – Sadece #N/A gibi bir hata girilebilir.
  • 64 – Bir dizi değer girilebilir.

Yukarıdaki veri doğrulamaları yapıldıktan sonra, kullanıcılar hala herhangi bir veriyi girebilir. Ancak, giriş kutusu, kullanıcı OK'e tıkladıktan sonra veri doğrulamasını yapar ve girilen veri, girilen doğrulamaya uygun değilse daha fazla ilerlemesine izin vermez.


Değişkenli VBA Giriş Kutusu

Giriş Kutusu ile çalışmanın en iyi yolu bir değişken kullanmaktır. Şimdi, VBA giriş kutusu kullanarak bazı örnekler görelim.

Örnek 1 – Giriş Kutusu Olan Dize Değişkeni

İlk giriş kutumuzu oluşturmak için burada listelenen adımları izleyin.

Adım 1: İlk olarak ALT + F11 kısayol tuşlarına basarak Visual Basic Editor penceresini seçin .

Adım 2: Ardından Ekle sekmesine gidin ve Modül'e tıklayın .

VBA Girişi - Örnek 1 - Adım 2

Adım 3: Şimdi, bu modülü ekleyecek ve ardından ona bir isim vererek alt prosedürü başlatacaktır.

VBA Giriş Kutusu - Örnek 1 - Adım 3

Adım 4: Daha sonra giriş fonksiyonunu girin (parantezleri açmayın).

VBA Giriş Kutusu - Örnek 1 - Adım 4

Adım 5: Sonra, giriş kutusunun istem argümanı için, kullanıcıya ne girmesi gerektiği hakkında bir mesaj vermemiz gerekir. Örneğin, kullanıcı adları topladığımızı varsayalım; o zaman, Adınız nedir? gibi bir soru verebiliriz .

VBA Giriş Kutusu - Örnek 1 - Adım 5

Adım 6: Benzer şekilde, giriş kutusunun Başlık argümanı için , bağlama uygun bir başlık vermemiz gerekiyor. Şimdi, bu durumda, bu Kullanıcı Adı Koleksiyonu olacak .

VBA Giriş Kutusu - Örnek 1 - Adım 6

Adım 7: Sonra kullanıcıya varsayılan mesaj olarak " Adınız buraya gir" gibi bir isim verin .

VBA Giriş Kutusu - Örnek 1 - Adım 7

Şimdi Çalıştır butonuna tıklayarak veya F5 kısayol tuşuna basarak makroyu çalıştırabilirsiniz.

VBA Giriş Kutusu - Örnek 1 - Adım 7 - Çalıştır

Bu arada bu butonu çalıştırdığımızda karşımıza aşağıdaki girdi kutusu penceresi gelecektir.

VBA Giriş Kutusu - Örnek 1 - Adım 7 - kutu

Gördüğümüz gibi varsayılan mesajı seçmiş. Bu yüzden girmek için backspace veya delete tuşuna basmamız gerekiyor.

VBA Giriş Kutusu - Örnek 1 - Adım 7 - geri tuşu

Şimdi giriş alanına isminizi girin.

Örnek 1 - Adım 7 - XLMOJO

Daha sonra Tamam'a tıklayın , giriş kutusu kaybolacaktır.

Ancak giriş kutusundan alınan girdiyi saklamak için, tutabileceği veri türünü belirten bir değişken tanımlamamız gerekir.

İsimleri topladığımız için string veri türünü aşağıdaki gibi atayabiliriz .

VBA Giriş Kutusu - Örnek 1 - Dize

Şimdi bu değişken adını eşittir (=) işaretiyle birlikte girin ve giriş kutusunu eşittir işaretinden sonra yerleştirin.

Örnek 1 - N-Giriş

Fakat tüm metin veya kod kırmızı renkte olduğu için bir hata alıyoruz.

Bunun sebebi, giriş kutusu tarafından verilen bir değeri atadığımızda giriş kutusu fonksiyonunu parantezleri kapalı olarak girmemiz gerekmesidir.

VBA Giriş Kutusu - Örnek 1 - N.jpg

Açıkça, parantezin normal işlevleri olduğunu görebiliriz.

Şimdi değişken değerini aşağıdaki görseldeki gibi mesaj kutusunda gösterelim.

Örnek 1 - Mesaj Kutusu

Daha sonra kodu çalıştırdığımızda aşağıdaki girdi kutusunu elde edeceğiz.

VBA Giriş Kutusu - Örnek 1 - giriş kutusu

Daha sonra gerekli ismi giriniz.

VBA Giriş Kutusu - Örnek 1 - isim

Şimdi Tamam'a tıklayın ve giriş kutusuna girilen değeri gösteren bir mesaj kutusu açılacaktır.

VBA Giriş Kutusu - Örnek 1 - çıktı

Şimdi, bir yerde gösterilecek çıktıyı aldık. Bu yüzden, girdi kutusuna girilen değeri depolamak için aşağıdaki kodu kullanın.

Sub Input_Box_Example1()
Dim N As String
N = InputBox(“Adınız ne?”, “User Name Collection”, “Buraya adınızı girin”)
Range(“A1”).Value = N
End Sub

Bu, giriş kutusuna girilen değeri A1 hücresinde saklayacaktır.


Örnek 2 – Giriş Kutusu Olan Sayı Değişkeni

Kullanıcının sadece sayısal değer girmesini istiyorsak, sayısal verileri tutabilecek bir veri türü atamamız gerekir.

Farklı sayısal veri türleri mevcuttur. Bunlar:

  • Byte – 0 ile 255 arasında değer tutabilir.
  • Integer – -32768 ile 32768 arasındaki sayıları tutabilir.
  • Long – -2.147.483.648 ile 2.147.483.648 arasındaki sayıları tutabilir
  • Single – Negatif değerler için -3.402823E+38 ile -1.401298E-45 arasındaki sayıları, pozitif değerler için 1.401298E-45 ile 3.402823E+38 arasındaki sayıları tutabilir.

Örneğin, kullanıcıların yaş verilerini topluyorsak, 0'dan 255'e kadar değerleri tutabildiği için Byte veri tipini kullanmamız gerekir.

Örnek 2

Daha sonra giriş kutusunu aşağıdaki gibi tasarlayarak giriş kutusunun değerini atayın.

Sub Input_Box_Example2()
Dim N As Byte
Age = InputBox(“Yaşınız kaç?”, “Yaş Verisi”, “Yaşınızı buraya girin”)
Range(“A1”).Value = Age
End Sub

Şimdi bu kodu çalıştırdığımızda aşağıdaki girdi kutusunu alacağız.

VBA Giriş Kutusu - Örnek 2 - Kodu çalıştırın

Daha sonra 0 ile 255 arasında bir yaş girin.

Örnek 2 - yaş

Şimdi Tamam'a tıklayalım ve A1 hücresine girdiğimiz değeri alalım.

VBA Giriş Kutusu - Örnek 2 - A1 hücresi

Şimdi yaş rakamını 0 ile 255 aralığında olmayan bir değerde girdiğimizi varsayalım.

Ardından Tamam'a tıklayın

Örnek 2 - aralık dışı

Şimdi aşağıdaki hata mesajını alacağız.

Örnek 2 - Taşma

Girdiğimiz sayının, atadığımız veri tipinin kapasitesinin üzerinde olması nedeniyle hatanın Overflow olduğunu açıkça görebiliyoruz .

Şimdi bu hataları düzeltmek için Application.InputBox metodu şeklinde veri doğrulama tekniğini kullanmamız gerekiyor .


Kullanıcıdan Gelen Girişin Doğrulanması

VBA Input Box'ı Application metoduyla kullandığımızda daha fazla verim alırız. Bu metodu kullandığımızda aşağıdaki sözdizimini elde ederiz.

VBA Giriş Kutusu - Application.jpg

Söz dizimi genel giriş kutusuyla aynı görünüyor, ancak sonunda Type adında ekstra bir söz dizimimiz var.

Type argümanını kullanarak kullanıcı girişini kısıtlayacağız. Şimdi, aşağıdaki bölümde tüm doğrulama kodu tiplerini göreceğiz.

1 – Sadece Sayısal Değer

Şimdi, kullanıcıya sadece rakam girmesine izin vermek istediğimizi varsayalım, o zaman aşağıdaki kod gibi tipi 1'e eşitleyebiliriz.

Sub Input_Box_Example2()
Dim Age As Byte
Age = InputBox(“Yaşınız kaç?”, “Yaş Verisi”, “Yaşınızı buraya girin”)
Range(“A1”).Value = Age
End Sub

Bu kod sayılardan başka herhangi bir girdi değeri almayacaktır. Örneğin, bunu çalıştırdığımızda sayı dışında bir değer girmiş oluruz.

Yaş verileri

Daha sonra hata mesajını görmek için Tamam'a tıklayın .

VBA Giriş Kutusu - Doğrulama 1 - sayı geçerli değil

Görüldüğü gibi hata mesajında ​​Sayı geçerli değil yazıyor , yani giriş kutusuna girilen değer bir sayı değil.


#2 – Yalnızca Mantıksal Değerler (DOĞRU veya YANLIŞ)

Benzer şekilde, kullanıcıların sadece mantıksal değer girmesini istiyorsak, tip argümanını 4 olarak ayarlayabiliriz.

Alt Input_Box_Example4()
Dim Question As String
Question = Application.InputBox(Prompt:=”Yarın geliyor musun?”, Başlık:=”Kişisel Veri Toplama”, Tür:=4)
Range(“A1”).Value = Question
End Sub

Şimdi mantıksal değerin dışında bir değeri girdi kutusuna girelim.

Doğrulama 2 - Mantıksal değerler

Daha sonra Tamam'a tıkladığımızda aşağıdaki hatayı alacağız.

Doğrulama 2 - Hata

TRUE veya FALSE dışında bir değer girdiğimizden, Mantıksal değer geçerli değil hata mesajını alıyoruz . Bu nedenle, yalnızca TRUE veya FALSE girmemiz gerekiyor.

3 – Yalnızca Hücre Referansları

Kullanıcıların giriş değeri olarak sadece hücre referansını seçmesini istiyorsanız, o zaman tür argümanını 8 olarak ayarlamamız gerekir.

Kod:

Sub Input_Box_Example5()
Dim Price As Long
Price = Application.InputBox(Prompt:=”What is the SP Value?”, Title:=”Product Selling Price”, Type:=8)
Range(“A1”).Value = Price
End Sub

Unutmayın, yukarıdaki kod kullanıcının giriş değerini yalnızca hücre referansı biçiminde seçmesine izin verecektir. Bu nedenle, hücre referansı dışında bir giriş değeri girersek, aşağıdaki hata mesajını alırız.

VBA Giriş Kutusu - hücre referansları - SP
VBA Giriş Kutusu - hücre referansları - SP Hatası

Referansın geçerli olmadığı söyleniyor.

Şimdi ya hücreyi seçebiliriz ya da doğrudan hücre adresini girebiliriz.


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...