VBA kullanarak kendi iletişim kutularınızı oluşturun. Veri giriş ve çıkış fonksiyonunun VBA Vba makrolarında Veri G/Ç

Yöntem hücreler belirtilen hücreyi aktif hale getirir. Yöntemin sözdizimi aşağıdaki gibidir:

Hücreler [(N satır, N sütun)]

N satır - geçerli Excel sayfasının satır numarası ,

Sütun N - geçerli Excel sayfasının sütun numarası (bu yöntemi kullanırken sütunlar numaralandırılmıştır).

Bu sözdizimi, etkin Excel sayfasında kesişme noktasında bulunan hücrenin N satır ve N sütun, aktif hale gelir.

Yöntemi kullanma hücreler daha sonra veri girmek veya görüntülemek için bir hücreyi aktif hale getirebilirsiniz.

Bu yöntemin kullanılması durumunda veri girişi bir çalışma sayfası hücresinden bir değişkene, ardından hücreler atama operatörünün sağ tarafında durur ve gerçekleştirilirse çıktı bir değişkenden bir çalışma sayfasının hücresine, ardından hücreler sol tarafında duruyor.

Giriş yapısı, yöntemini kullanarak hücreler sonraki:

< isim> = Hücreler ( ),

< isim> - basit değişken veya dizi öğesi.

Çıkış yapısı yöntemi kullanarak hücreler sonraki:

hücreler ( )= < ifade>,

< ifade> - görüntülenen herhangi bir değer.

Aşağıdaki programın bir örneğini düşünün:

Alt input_output_Cells ()

Hücreler (5, 1) = "c ="

Bu makroyu çalıştırmadan önce Excel çalışma sayfası şöyle görünüyordu (bkz. Şekil 13):

Ve makroyu çalıştırdıktan sonra şöyle görünür (bkz. Şekil 14):

VBA kontrol yapıları. Koşullu operatör. Koşulsuz Atlama Operatörü

Kontrol Yapıları program yürütme sırasını kontrol etmenizi sağlar. Kontrol deyimleri olmadan, tüm program deyimleri soldan sağa ve yukarıdan aşağıya doğru çalışacaktır. VBA kontrol yapılarından birini düşünün - koşullu operatör.

koşullu operatör belirli bir koşulun değerine bağlı olarak bir veya bir grup işleç yürütmek gerektiğinde kullanılır.

Koşullu ifade sözdizimi:

Kısa form Þ Eğer<условие>Sonra<оператор>

Eğer< условие >Sonra

< оператор > /< Группа операторов 1 >

Tam form Þ Eğer< условие >Sonra

< оператор 1 > / < Группа операторов 1 >

< оператор 2> < Группа операторов 2 >

Blok diyagramda koşullu operatör şu şekilde gösterilmektedir:

Koşul genellikle basit bir karşılaştırmadır, ancak hesaplanmış bir değere sahip herhangi bir ifade olabilir. Bu değer, sıfırsa False olarak yorumlanır ve sıfır olmayan her değer Doğru olarak kabul edilir. Koşul doğruysa, anahtar kelimeden sonraki tüm ifadeler yürütülür. Sonra... Koşul yanlışsa, anahtar kelimeden sonraki tüm ifadeler yürütülür. Başka.

Gerektiği kadar iç içe yerleştirme düzeyiyle birden çok iç içe yapılara izin verilir.

Başka bir kontrol yapısı düşünün - koşulsuz atlama operatörü... Sözdizimi:

Git etiket,

nerede etiket herhangi bir karakter kombinasyonudur.

Bu ifade, program yürütme sırasını zorla değiştirir. GoTo ifadesi, kontrolü etiketli ifadeye aktarır, yani. GoTo ifadesinin ardından, etiket tarafından belirtilen ifade yürütülecektir.

VBA kontrol yapıları. Döngü operatörleri.

Bazen belirli bir komut setini otomatik olarak tekrar tekrar yürütmek veya çalışma zamanında kullanıcı tarafından belirtilen değişkenlerin veya parametrelerin değerine bağlı olarak sorunu farklı şekilde çözmek gerekir. Bunun için koşul operatörü ve döngü operatörleri kullanılır.

VBA döngü ifadelerine bir göz atalım. Bilinen sayıda tekrarlı döngü(parametreli döngü) operatör kullanılarak VBA'da uygulandı Sonraki İçin aşağıdaki yapı:

İçin<параметр цикла>= <начальное значение> için<конечное значение>

<операторы VBA>

Sonraki<параметр цикла>

<параметр цикла>- döngü parametresinin adı (tanımlayıcısı);

<начальное значение> - döngü parametresinin başlangıç ​​değeri;

<конечное значение>- döngü parametresinin son değeri;

<шаг>- döngü parametresini değiştirme adımı (isteğe bağlı parametre, yoksa, değiştirme adımı 1'dir);

<операторы VBA>

Blok diyagramda bu operatör şu şekilde gösterilmektedir:

Bu döngünün gövdesinde operatörü kullanabilirsiniz. Çıkış İçin, bununla döngüyü tamamlayabilirsiniz Sonraki İçin parametre son değerini almadan önce.

Bilinmeyen sayıda tekrarlı döngüler VBA'da Do while… Loop, Do Before… Loop, Do… Loop while, Do… Loop Up ifadeleri kullanılarak uygulanır.

Do while ... Döngü ifadesinin yapısını düşünün.

Yaparken<условие>

<операторы VBA>

Buraya <условие> - mantıksal ifade;

<операторы VBA> - Döngünün gövdesini uygulayan VBA ifadeleri.

<условие>, Eğer<условие>True değerini alır, ardından ifadeler hizmet kelimesi Loop'a kadar yürütülür. Daha sonra koşul tekrar kontrol edilir ve bu durum False olana kadar devam eder.

Do Kadar ... Döngü ifadesinin yapısını düşünün.

kadar yap<условие>

<операторы VBA>

Operatör aşağıdaki gibi yürütülür. Kontrol<условие>, Eğer<условие>False değerini alır, ardından operatörler Loop hizmet kelimesine kadar yürütülür. Daha sonra koşul tekrar kontrol edilir ve bu durum doğru (True) olana kadar devam eder.

Blok diyagramda bu operatör şu şekilde gösterilmektedir:

Önceden koşullanmış bir döngü uygulayan döngü ifadelerini gördük.

Bir sonkoşullu bir döngü uygulayan döngü ifadelerini düşünün. Bunlar Do ... Loop while ve Do ... Loop Up deyimleridir. Bu operatörlerin yapısı aşağıdaki gibidir:

<операторы VBA>

Döngüye kadar<условие>

<условие>, Eğer<условие>False değerini alır, ardından Döngü hizmeti kelimesinden önceki operatörler yeniden yürütülür. Bu devam edene kadar<условие>(Doğru) olmayacak.

Blok diyagramda bu operatör şu şekilde gösterilmektedir:

<операторы VBA>

Döngü süre<условие>

Operatör aşağıdaki gibi yürütülür. Operatörler, hizmet kelimesi Döngü'ye kadar yürütülür. Sonra kontrol edildi<условие>, Eğer<условие>True değerini alır, ardından hizmet kelimesi Loop'a kadar olan ifadeler yeniden yürütülür. Bu devam edene kadar<условие>false (Yanlış) olmaz.

Blok diyagramda bu operatör şu şekilde gösterilmektedir:

VBA'da, bilinmeyen sayıda tekrarla erken döngülerden çıkmanıza izin veren bir operatör vardır. Bu döngülerden çıkmak için operatörü kullanın. Çıkış Yap.

Bu makalede, VBA Excel'de çeşitli bilgileri görüntüleyebilen bir mesaj kutusunun nasıl oluşturulacağını öğreneceksiniz.

İşlev Mesaj Kutusu bir mesaj kutusu görüntüler ve kullanıcının bir butona tıklamasını bekler ve ardından kullanıcının bastığı butona göre işlem gerçekleştirilir.

Sözdizimi

MsgBox (istem [, düğmeler] [, başlık] [, yardım dosyası, bağlam])

Parametre Açıklama

  • İstek gerekli bir parametredir. İletişim kutusunda mesaj olarak görüntülenen dize. Bir davetiyenin maksimum uzunluğu yaklaşık 1024 karakterdir. Mesaj birden fazla satıra yayılmışsa, satırlar her satır arasında bir satır başı (Chr (13)) veya satır besleme (Chr (10)) kullanılarak bölünebilir.
  • Düğmeler isteğe bağlıdır. Görüntülenecek düğmelerin türünü, kullanılacak simge stilini, varsayılan düğme kimliğini ve mesaj kutusunun modalitesini belirten sayısal ifade. Boş bırakılırsa, düğmeler için varsayılan değer 0'dır.
  • Başlık isteğe bağlıdır. Dize ifadesi, iletişim kutusunun başlık çubuğunda görünür. Başlık boş bırakılırsa, uygulama adı başlık çubuğuna yerleştirilir.
  • Yardım dosyası isteğe bağlıdır. İletişim kutusu için bağlama duyarlı yardım sağlamak üzere kullanılacak yardım dosyasını tanımlayan dize ifadesi.
  • Bağlam isteğe bağlı bir parametredir. İlgili Yardım konusu için Yardım'ın yazarına atanan Yardım bağlam numarasını tanımlayan sayısal ifade. Bağlam sağlanırsa, bir yardım dosyası da sağlanmalıdır.

Buttons parametresi aşağıdaki değerlerden herhangi birini alabilir:

  • 0 vbOKOnly - Yalnızca Tamam düğmesini görüntüler.
  • 1 vbOKCancel - Tamam ve İptal düğmelerini görüntüler.
  • 2 vbAbortRetryIgnore - Geri al, yinele ve yoksay düğmelerini görüntüler.
  • 3 vbYesNoCancel - Evet, Hayır ve İptal düğmelerini görüntüler.
  • 4 vbYesNo - Evet ve Hayır düğmelerini görüntüler.
  • 5 vbRetryCancel - Yinele ve geri al düğmelerini görüntüler.
  • 16 vbCritical - Kritik bir mesaj simgesi görüntüler.
  • 32 vbQuestion - Bir uyarı simgesi görüntüler.
  • 48 vbExclamation - Bir uyarı mesajı simgesi görüntüler.
  • 64 vb Bilgi. Bir bilgi mesajı simgesi görüntüler.
  • 0 vbDefaultButton1, ilk varsayılan düğmedir.
  • 256 vbDefaultButton2, ikinci varsayılan düğmedir.
  • 512 vbDefaultButton3 - Varsayılan olarak üçüncü düğme.
  • 768 vbDefaultButton4 - Dördüncü varsayılan düğme.
  • 0 vbApplicationModal Uygulama modu - mevcut uygulama, kullanıcı mesajı yanıtlayana kadar çalışmayacaktır.
  • 4096 vbSystemModal System modal - Kullanıcı mesajı yanıtlayana kadar tüm uygulamalar çalışmayacaktır.

Yukarıdaki değerler mantıksal olarak dört gruba ayrılmıştır: ilk grup (0 ila 5) mesaj kutusunda görüntülenecek düğmeleri belirtir. İkinci grup (16, 32, 48, 64), görüntülenecek simgenin stilini tanımlar, üçüncü grup (0, 256, 512, 768) hangi düğmenin varsayılan olması gerektiğini belirtir ve dördüncü grup (0, 4096), mesaj kutusunun modalitesini tanımlar.

Dönüş Değerleri

MsgBox işlevi, kullanıcının mesaj kutusunda tıkladığı düğmeyi tanımlamak için kullanılabilecek aşağıdaki değerlerden birini döndürebilir.

  • 1 - vbOK düğmesine basılır - Tamam.
  • 2 - vbCancel - İptal tıklandı
  • 3 - vbAbort - Durdur düğmesine basıldı
  • 4 - vbRetry - Yeniden dene düğmesine basıldı
  • 5 - vbIgnore - Yoksay düğmesine basıldı
  • 6 - vbYes - "Evet" düğmesine basılır
  • 7 - vbNo - Tıklama yok

Sub MessageBox_Demo () "Basit mesaj MsgBox (" Merhaba ")" Başlık ve butonlar evet, hayır ve iptal ile mesaj a = MsgBox ("Mavi rengi beğendiniz", 3, "Cevap seçin") "Basılan düğmenin kodu MsgBox (" Değer yanıtı "& a) End Sub

Adım adım MsgBox

Adım 1 - Yukarıdaki işlev, VBA penceresindeki Çalıştır düğmesine tıklayarak veya Excel sayfasına kendiniz eklediğiniz düğmeye tıklayarak gerçekleştirilebilir.

Adım 2 - Bir Hoş Geldiniz mesajı ve bir Tamam düğmesi ile basit bir metin kutusu görüntülenir

Yerleşik işlevler InputBox, MsgBox, kullanılarak yapılır. belirli nesnelerin belirli özelliklerini değiştirerek veya bunlara uygun yöntemler uygulayarak.

Veri girişi

Değişken değerler girilebilir:

    işlevi kullanmaGiriş Kutusu program çalıştığında kendi penceresini görüntüler. InputBox işlevi tarafından döndürülen değer dize türündedir. Bu nedenle, girilen değeri sayısal değişken olarak kullanmak için ayrıca Val işlevini kullanarak sayısal bir türe dönüştürmeniz gerekir. Örneğin, bir değişkene 5.25 değerini girmek için aşağıdaki program kodu satırını yazmanız gerekir:

a = Val (InputBox ("Enter a", "Veri girişi"))

2) Metin kutusu kullanmaMetin kutusu... Formda bir metin kutusu olmalıdır, örneğin Metin1 ve olay prosedüründe, örneğin bir komut düğmesine tıklamak için, Metin1 nesnesinin text özelliğini kullanan bir program kodu yazılmalıdır:

Özel Alt Komut1_Click ()

a = Val (Metin1.metin)

Text1 nesnesinin text özelliği de bir dize değerine sahiptir, bu nedenle Val işlevi kullanılarak sayısal bir değere dönüştürülmesi gerekir.

Sonuçların çıktısı

VB'de sonuçları görüntülemenin çeşitli yolları vardır.

    VB dilinde değişkenlerin değerlerinin çıktısını almak için ana operatör, nesne yönelimli programlama açısından şu şekilde kabul edilen Print operatörüdür. yöntem, listede belirtilen değerlerin görüntüleneceği nesneye göre hareket eder. Print yöntemine sahip ana nesneler Form ve pictureBox'tır.

Yazdır yönteminin uygulandığı nesne belirtilmemişse, aktif formda değerler listesi görüntülenir. Örneğin, bir kod satırı yürüttükten sonra:

    Yürütüldüğünde ekranda kendi mesaj kutusunu etkinleştiren MsgBox işlevini kullanarak bir değişkenin değerini görüntüleyebilirsiniz.

Özel Alt Komut1_Click ()

    Çıktı, Text özelliğini değiştirerek bir TextBox içine sarılabilir.

Metin1.metin = str (a)

Text özelliğinin bir karakter dizisi ile çalıştığı unutulmamalıdır, bu nedenle görüntülenen sayı str işlevi kullanılarak bir karakter dizisine dönüştürülür.

    Çıktı, Caption özelliği değiştirilerek Label üzerinde şekillendirilebilir:

Label1.Caption = ”Sonuç” & str (a)

& (+) işareti, iki dize değişkeninin birleştirilmesi anlamına gelir.

Biçim işlevi

Netlik sağlamak için, sonuçları görüntülerken, biçim açıklamasında belirtilen talimatlara göre biçimlendirilmiş bir ifadeyi içeren bir Değişken (Dize) değeri döndüren Biçim işlevi sıklıkla kullanılır.

Sözdizimi

Format (İfade [, Format [, FirstDayOfWeek [, FirstWeekOfYear]]])

İfade Gerekli - Biçimlendirilecek herhangi bir geçerli ifade.

Biçim - isteğe bağlı bağımsız değişken - herhangi bir geçerli adlandırılmış veya kullanıcı tanımlı biçim ifadesi (biçim şablonu).

Biçim şablonu belirtmeden sayıları biçimlendirirken, Biçim işlevi Str işleviyle aynı sonucu verir, yani. bir sayıyı temsil eden bir dize döndürür. Aradaki fark, Format işlevini kullanarak pozitif bir sayıyı dönüştürürken, dizenin başındaki (sayı işaretinin yerinde) boşluğun kaybolması, ancak Str işlevini kullanarak dönüştürme yaparken,

Sayısal değerler için özel biçimler oluşturmak için kullanılan biçim şablonlarına örnekler

Yazdır Biçim(6.789, "00.0000") "06.7890 döndürür

Yazdır Biçim(6.789, "##. 0000") "6.7890 döndürür

1. Giriş Kutusu işlevi

InputBox işlevi aşağıdaki sözdizimine sahiptir:

değişken = Giriş Kutusu(İstem [, Başlık] [, varsayılan] [, Xpos] [, Ypos] [, help_file, içerik])

Bu işlev yalnızca gerekli bağımsız değişkeni gerektirir. Davet argüman değeri Davet- bu işlev için gerekli olan tek argüman, giriş iletişim kutusunda mesaj olarak görüntülenen bir metin dizesidir. Bu metin çift tırnak içine alınmalıdır.

Argüman Başlık

Argüman varsayılan kullanıcı kendi değerini girene kadar giriş alanında varsayılan olarak görüntülenen değeri ayarlar. Bu argüman atlanırsa, giriş alanı boş olarak görüntülenir.

İsteğe Bağlı Bağımsız Değişkenler Xpos ve evet ekrandaki giriş kutusunun konumunu ayarlayın. Argümanlar help_file ve içerik

InputBox işlevinin dönüş değeri, kullanıcı tarafından giriş alanına girilen değerdir.

2. MsgBox işlevi

Mesaj kutusu, aşağıdaki sözdizimine sahip MsgBox işlevi tarafından oluşturulur:

değişken = Mesaj Kutusu(İstem [, Düğmeler] [, Başlık [, help_file, içerik])

argüman değeri Davet- bu işlev için gerekli olan tek argüman, iletişim kutusunda mesaj olarak görüntülenen bir metin dizesidir. Bu metin çift tırnak içine alınmalıdır. MsgBox sözdiziminde parantez kullanımına dikkat edin - bu durumda MsgBox'ın bir değer döndüren bir işlev olduğunu belirtirler. Parantezler atlanırsa, VBA için bu, verilen ifadenin bir değer döndürmediğinin bir işaretidir. Bir değer döndürmek istiyorsanız, aşağıdakine benzer bir kod kullanmanız gerekir:

Dim i Tamsayı Olarak

VBA'da bu tür bir kodun çalışmasının sonucu, "Evet", "Hayır", "İptal" düğmeli ve sarı üçgen içinde ünlem işareti simgesi olan bir iletişim kutusu olacaktır.

Argüman belirtilmemişse Düğmeler sonra VBA yalnızca bir Tamam düğmesi sunar. Argüman Düğmeler mesaj kutusunun aşağıdaki parametrelerini kontrol etmenizi sağlar:

¨ Penceredeki düğme sayısı.

¨ Buton çeşitleri ve pencerede x yerleşimi.

¨ Pencerede görüntülenen simgeler.

¨ Varsayılan olarak hangi düğme atanır.

¨ Mesaj kutusunun modu (modası).

Tablo 1, bu argüman için olası ayarları göstermektedir. İlk değer grubu, düğmelerin sayısını ve türünü belirler. İkincisi, pencerede görüntülenen simgeyi seçmenizi sağlar. Üçüncüsü varsayılan düğmeyi atar. Dördüncü grup, mesaj kutusu modunu ayarlar. Argümanın son değerini oluşturmak için Düğmeler artı işaretiyle birleştirerek her gruptan yalnızca bir değer kullanabilirsiniz.

Grup Devamlı Anlam Açıklama
Grup 1 vbOKOnly Yalnızca Tamam düğmesini görüntüler (varsayılan ayar)
VbOKİptal Tamam ve İptal düğmelerini görüntüler
VbAbortYeniden DeneYoksay Durdur, Tekrarla ve Atla düğmelerini görüntüler.
VbEvetHayırİptal Evet, Hayır ve İptal düğmelerini görüntüler
vbYesHayır Evet ve Hayır düğmelerini görüntüler
VbYeniden Deneİptal Yinele ve İptal düğmelerini görüntüler
2. Grup VbKritik yasaklayan simgeyi görüntüler
VbSoru
VbÜnlem Bir uyarı simgesi görüntüler
VbBilgi Bir bilgi simgesi görüntüler
Grup 3 VbDefaultDüğmesi1 İlk düğme varsayılan düğmedir
VbDefaultButton2 İkinci düğme varsayılan düğmedir
VbDefaultButton3 Üçüncü düğme varsayılan düğmedir
VbDefaultButton4 Dördüncü düğme varsayılan düğmedir
Grup 4 VbApplicationModal Uygulama modu: kullanıcının mevcut uygulamada çalışmaya devam etmeden önce mesaj kutusunu kapatması gerekir.
VbSystemModal Sistem modu: kullanıcı mesaj kutusunu kapatana kadar tüm uygulamalar kullanılamaz
Ek grup vbMsgBoxHelpButton Yardım düğmesini görüntüler
vbMsgBoxSetÖn Plan Mesaj kutusunu ön plan penceresi yapar
vbMsgBoxSağ Uygulama penceresine sağa hizalanmış bir mesaj kutusu görüntüler
vbMsgBoxRtlOkuma İbranice ve Arapça için metnin sağdan sola görüntülenmesi gerektiğini belirtir.

Sekme. 1. Bir argüman için ayarlama Düğmeler Mesaj Kutusu işlevleri

Argüman değerlerini girerken hata yapmamak için Düğmeler, "+" işaretini girdikten sonra görünen sabitler listesini kullanın. "+" işareti, karmaşık bir argüman belirtirken birden çok sabiti birleştirmek için kullanılır Düğmeler.

Argüman Başlık giriş penceresinin başlık çubuğuna sığacak metni ayarlamak için kullanılır. Bu bağımsız değişken belirtilmezse, başlık çubuğunda Microsoft Excel görüntülenir.

Argümanlar help_file ve içerik uygulamanız için kendi yardım sisteminizi oluşturursanız kullanılır.

Tablo 2, MsgBox işlevi tarafından döndürülen değerlerin bir listesini gösterir. . Dönüş değeri, kullanıcının bastığı düğmeye bağlıdır.

Geri dönüş değeri Buton
Tamam
İptal
Durmak
Tekrarlamak
Atlamak
Evet
Numara

Sekme. 2. MsgBox işlevi tarafından döndürülen değerler

En İyi Tür MsgBox dönüş değişkeni Tamsayı'dır.

Aralık ve Hücre Nesneleri

VBA'da, çalışma sayfası hücreleri bir Aralık nesnesi olarak kabul edilir. Bu en yaygın kullanılan nesnedir.

Range nesnesi, hücrelerle çalışırken A1 biçimini kullanır.

A1 formatı. Bir bağlantı, bir sütun adından (A'dan IV'e kadar harflerle belirtilir, maksimum 256 sütun) ve bir satır numarasından (1'den 65536'ya) oluşur. Örneğin, A77. Bir hücre aralığına atıfta bulunmak için, aralığın sol üst ve sağ alt hücrelerinin adresleri iki nokta üst üste ile ayrılarak belirtilir. Örneğin, B10: B20, 7:7 (7. satırdaki tüm hücreler), 5:10 (5. ve 10. satırlar arasındaki tüm hücreler dahil), D: D (D sütunundaki tüm hücreler), H: J (tümü H ve J sütunları arasındaki hücreler dahil). Mutlak referans, satır veya sütun adının önündeki dolar işaretiyle belirtilir.

Hücreler nesnesi, hücrelerle çalışırken R1C1 biçimini kullanır.

R1C1 formatı... R1C1 formatında, "R" harfinden sonra hücre satır numarası, "C" harfinden sonra - sütun numarası belirtilir. Örneğin, R1C1 mutlak referansı, A1 formatı için $ A $ 1 mutlak referansına eşdeğerdir. Göreceli bir referans ayarlamak için karışım, etkin hücreye göre belirtilir. Karıştırma köşeli parantez içinde belirtilmiştir. İşaret, ofsetin yönünü gösterir. Örneğin, R [-3] C (aynı sütunda üç satır daha yüksek olan bir hücreye göreli başvuru). RC (iki satır aşağıda ve iki sütun sağda bir hücreye göreli başvuru). R2C2 (ikinci satırda ve ikinci sütunda bulunan hücreye mutlak başvuru). R [-1] (geçerli hücrenin üzerindeki satıra göreli referans), R (geçerli satıra mutlak referans).

Tam hücre adresi, çalışanın adını ve kitabın adresini de içerebilir. Sayfa adından sonra "!" İşareti konur ve kitabın adresi köşeli parantez içine alınır. Örneğin: [Kitap1.xls] Sayfa5! D $ 2.

Range nesnesi ve şunlar olabilir:

§ ayrı bir hücre;

§ seçilen hücre aralığı;

§ seçilmiş birkaç hücre aralığı (yani, bitişik olmayan aralıkların bir koleksiyonu);

§ satır ve sütun;

§ üç boyutlu bir aralık (yani, farklı çalışma sayfalarında bulunan aralıklardan oluşan).

Aralık ve Hücreler Nesne Özellikleri

Özellikler Açıklama ve izin verilen değerler
Değer Bir hücreden veya aralıktan bir değer döndürür (bir hücreye veya aralığa): X = Aralık ("A1") Değer Aralığı ("A1") Değer = 10
İsim Aralığın adını döndürür: Aralık ("B1: B4") Ad = "Uygulama"
Adres Aralığın geçerli konumunu döndürür
Saymak Bir aralıktaki hücre sayısını döndürür
Telafi etmek Bir aralığın diğerine göre ofset değerini döndürür
yeniden boyutlandır Bir aralığın geçerli seçimini değiştirmenizi sağlar
Geçerli Bölge Belirtilen hücreyi içeren ve boş bir satır ve sütunla sınırlandırılmış geçerli aralığı döndürür.
Sarma Metni Doğru (Yanlış) - Bir aralığa yazarken metin kaydırmaya izin verir (izin vermez).
EntireColumn, EntireRow Bir satır ve sütun döndürür.
Sütun Genişliği, Satır Yüksekliği Bir aralığın sütun genişliğini ve satır yüksekliğini döndürür.
Yazı tipi Bir Yazı Tipi nesnesi döndürür. Örneğin: Çalışma Sayfaları ile (“Z3”) Aralık (“F10”) Yazı Tipi .Boyut = 22 .Kalın = Doğru .İtalik = İle Doğru Son
formül A1 formatında formül. Örneğin, C2 hücresine şu şekilde formül girebilirsiniz: Aralık (“C2”) Formül = ”= $ B $ 2 + $ A $ 2”
formülYerel Kullanıcının dilini dikkate alarak A1 formatında formül (Excel'in İngilizce olmayan sürümleri için). Örneğin: Aralık (“C1”) FormülR1C1 = “= PI ()”
formülR1C1 R1C1 formatında formül. Örneğin, Aralık (“C1”) FormülR1C1 = “= R1C1 + 2”
FormülR1C1Yerel Kullanıcının dilini dikkate alarak R1C1 formatında formül (Excel'in İngilizce olmayan sürümleri için).
Yatay hizalama Yatay hizalama. Olası değerler: xlHAlignGeneral (normal), xlHAlignCenter (orta), xlHAlignCenterAcrossSelection (seçimin merkezi), xlHAlignJustify (genişlik), xlHAlignRight (sağ), xlHAlignLeft (sol) ve diğerleri.
Dikey hizalama Dikey hizalama. Olası değerler: xlVALignBottom (altta), xlVALignCenter (ortada), xlVALignTop (üstte) ve diğerleri.

Aralık ve Hücreler Nesne Yöntemleri

yöntemler Hareketler
Adres Hücrenin adresini döndürür.
Otomatik Sığdır Sütun genişliğini ve satır yüksekliğini otomatik olarak ayarlar. Örneğin: Aralık (“B1: B3”) Sütunlar.Otomatik Sığdır Bu durumda Sütunlar veya Satırlar özelliğinin kullanılması gereklidir, çünkü aralık değeri satır veya sütun olmalıdır, aksi takdirde bir hata oluşturulur.
Açık Aralığı temizler. Örneğin: Aralık (“B1: B20”) Sil
kopyala Bir aralığı başka bir aralığa veya panoya kopyalar (Hedef parametresi belirtilmemişse). Örneğin, aralık değerlerini bir sayfadan (L1) diğerine (L2) bu şekilde kopyalayabilirsiniz: Çalışma Sayfaları (“Z1”) Aralık (“D1: D5”) Kopyalama Hedefi: = Çalışma Sayfaları (“P2” ) Aralık (“D5 ”)
Kesmek Silme (kesme) içeren bir aralığı başka bir aralığa veya panoya kopyalar (Hedef parametresi belirtilmemişse). Örneğin, bir hücre aralığını kopyalayıp panoya silelim: Çalışma Sayfaları (“Sayfa1”) Aralık (“D1: E5”).
Silmek Bir aralığı kaldırır. Shift parametresi, silme sırasında hücrelerin kayma yönünü belirler. Örneğin: Aralık (“B6: D6”) Shift'i Sil: = xlShiftToLeft
Sokmak Bir hücre veya hücre aralığı ekler. Örneğin, "Sayfa2" sayfasında altıncı satırdan önce bir satır ekleyebilirsiniz: Çalışma Sayfaları ("Sayfa2").Satırlar (6) .Insert
Seçme Bir aralık seçer: Aralık (“A1: C7”).

Excel Komutlarını Uygulayan Aralık ve Hücreler Nesne Yöntemleri

yöntemler Hareketler
Veri Serisi Bir ilerleme yaratır. DataSeries (rowcol, date, step, stop, trend) Manuel yöntem, Düzenle \ Doldur \ İlerleme komutu kullanılarak gerçekleştirilir.
Otomatik Doldur Otomatik tamamlama. Bir aralığın hücrelerini şu dizinin öğeleriyle otomatik olarak doldurur: Object (Range, Type).
Otomatik filtre Otomatik filtre. Bir çalışma sayfasındaki verileri filtrelemek için bir istek uygular: Object.AutoFilter (Alan, Koşul1, Operatör, Koşul2) Veri \ Filtre \ Otomatik Filtre komutuna karşılık gelir.
Gelişmiş Filtre Gelişmiş filtre. Veri \ Filtre \ Gelişmiş Filtre komutuna karşılık gelir.
konsolide etmek Birden çok aralıktaki verileri tek bir özet tabloda birleştirin. Veri \ Konsolidasyon komutuna karşılık gelir.
Bulmak Veri arayın. Düzenle\Bul komutu ile manuel olarak çağrılır.
TblHedef Ara Parametre seçimi. Service\Select parametre komutu kullanılarak manuel olarak gerçekleştirilir.
Çeşit Verileri sıralama. Veri \ Sıralama komutu kullanılarak manuel olarak gerçekleştirilir
ara toplam Alt toplamları ekler. Data \ Subtotals komutuyla manuel olarak çağrılır.

Not ... VBA'da (Excel'den farklı olarak) atama işleminin hücre durumundan bağımsız olarak gerçekleştirildiğine ve bunu değiştirmediğine özellikle dikkat edilmelidir. Onlar. bir hücreye değer atamak (veya değerini almak için), bu hücrenin aktif olması kesinlikle gerekli değildir (unutmayın, bir hücreye girmeden önce Excel'de etkinleştirilmelidir), aktif olmaz (eğer daha önce olmasaydı) ve ona herhangi bir anlam verdikten sonra.

  • Bir karakterin bilgisayar ekranında görüntülenmesi sürecinde ters kayıt yapılır, yani karakterin ikili kodu görüntüsüne dönüştürülür.
  • Herhangi bir prosedür üç bölümden oluşur: girdi, yürütme ve çıktı. Giriş - bu, prosedürü tamamlamak için gereken bilgilerdir; çıktı - işlem sonucunda böyle oldu.

    Nesne özellikleri, hücre değerleri ve değişken değerlerin tümü girdi örnekleridir. Giriş verileri, prosedürün yürütülmesi sırasında kullanıcıdan alınabilir. denir kullanıcı girişi.

    Kullanıcı girişinin en basit şekli, bir mesaj kutusundaki bir düğmeyi tıklamaktır. İletişim kutusunun giriş alanına bir değer girmek biraz daha karmaşıktır.

    4.1.1 Mesaj penceresi

    MsgBox () işlevinin mesaj kutusunu kullanarak bir soru sorabilir ve ardından cevaba bağlı olarak bir veya başka bir işlem gerçekleştirebilirsiniz.

    MsgBox () işlevinin beş bağımsız değişkeni vardır:

    MsgBox (İstem: = [, Düğmeler: =] [, Başlık: =] [, HelpFile: =, Bağlam: =])

    İstem bağımsız değişkeni, iletişim kutusunda görünen mesajı belirtir. Metninizi yazın (tırnak içinde). string türünde bir değişken kullanın veya Birleşik dize değişkenleri ve & ile dizeler, örneğin:

    "Bu ekran" & AppIication.UsableHeight & "puan" açısından yüksek

    Düğmeler bağımsız değişkeni, mesaj kutusunda hangi düğmelerin görüneceğini belirler. Bunları vbExclamation veya vbOK gibi sabitleri kullanarak belirtin. VBA, bu sabitleri sayı olarak temsil eder. Sabitler yerine Yapabilmek düğmeleri temsil etmek için sayıları kullanın, ancak size okunması kolay kod vereceği için sabitleri kullanmanızı öneririz. Button argümanının parametreleri birkaç gruba ayrılabilir. En önemli ikisi piktogramlar ve düğmeler. Mesaj kutusuna dört tür simge ve altı tür düğme yerleştirebilirsiniz. Diğer seçenekler, varsayılan olarak hangi düğmeye basıldığını ve iletişim kutusu göründüğünde hangi uygulamanın duraklatılacağını belirler - yalnızca Excel veya genel olarak tüm uygulamalar. Tablo 4.1 bu parametreleri listeler.

    Tablo 4.1 - MsgBox işlevi için Düğme bağımsız değişkeni sabitinin değerleri

    Devamlı Anlam Açıklama
    Yalnızca VbOK Bir düğme görüntüler Tamam
    VbOKİptal düğmeleri görüntüler Tamam ve İptal
    VbAbortYeniden DeneYoksay düğmeleri görüntüler Dur, Yinele ve Görmezden gelmek
    VbEvetHayırİptal düğmeleri görüntüler Tam olarak değil ve İptal
    VbEvetHayır düğmeleri görüntüler Evet ve Numara
    VbYeniden Deneİptal düğmeleri görüntüler Tekrarlamak ve İptal
    VbKritik Kritik Mesaj simgesini görüntüler
    VbSoru Soru işareti simgesini görüntüler
    VbÜnlem Ünlem simgesini görüntüler
    VbBilgi Bilgi simgesini görüntüler
    VbDefaultDüğmesi1 Varsayılan olarak ilk düğmeyi kabul eder
    VbDefaultButton2 Varsayılan olarak ikinci düğmeyi kabul eder
    VbDefaultButton3 Varsayılan olarak üçüncü düğmeyi kabul eder
    VbApplicationModal Excel, mesaj kutusunu kapatmayı durdurur
    VbSystemModal Mesaj kutusu kapanana kadar tüm uygulamalar duraklatılır

    Mesaj penceresinde birkaç düğmeyi görüntülemek için sabitleri artı işaretiyle bağlayın. Mesaj kutusunda iki simge görüntüleyemezsiniz, ancak Yapabilmek hem simgeyi hem de görünen düğmelerin türünü kontrol edin. Mesaj kutusu her zaman yalnızca ekranın ortasında görünür. Başka bir düğme belirtilmemişse, mesaj kutusunda yalnızca Tamam düğmesi görüntülenir.

    Başlık argümanı, mesaj kutusunun başlığını belirtir. İstem gibi, bu bağımsız değişken bir dize, dize değişkeni veya dizeler ile dize değişkenlerinin birleşimi olmalıdır. Bu bağımsız değişkeni atlayabilirsiniz, bu durumda mesaj kutusunun varsayılan adı Microsoft Excel olacaktır.

    Mevcut yardımı belirtmek için dördüncü ve beşinci argümanları kullanın (veya onları yok sayın). HelpFile bağımsız değişkeni, yardım dosyasının adıdır ve Bağlam bağımsız değişkeni, içindeki bölümü belirtir. Bu argümanlardan birini belirttiyseniz, ikincisini de belirtmelisiniz. Bunu yaparken Excel, mesaj kutusuna otomatik olarak bir Yardım düğmesi ekleyecektir.

    Aşağıdaki kod iki mesaj kutusu görüntüler: ilki - "System_inform" başlıklı - ünlem işaretli bir simge ve kullanılan ekran yüksekliği hakkında bir mesaj içerir; ikinci - "Sistem Bilgisi" başlıklı - kullanılan ekran genişliği hakkında bir mesaj içerir.

    Alt ShowMessageTamam ()

    MsgBox İstemi: = "Bu ekranın yüksekliği" _

    & Application.UsableHeight & "points", Düğmeler: = vbExclamation, Başlık: = "System_inform"

    MsgBox "Bu ekranın genişliği" & Application.UsableWidth & _

    "puanlar", vbInformation, "Sistem bilgisi"

    4.2 Karar verme

    Ekranda birkaç düğmeyi görüntülemek çok kolaydır: Tablo 3.1'de gösterilen sabitleri kullanın. Evet ve Hayır butonları, Evet, Hayır ve İptal butonları ile Stop, Redo, Ignore butonları ile mesaj kutularını görüntüleyebilirsiniz. Kodda MsgBox işlevi (Tablo 4.2) tarafından döndürülen değeri analiz ettikten sonra, hangi düğmeye basıldığını belirleyebilir ve programın yürütülmesini gerekli yol boyunca yönlendirebilirsiniz.

    Tablo 4.2 - MsgBox işlevi tarafından döndürülen değerler

    Devamlı Anlam Düğmeye basıldı
    VbOK Tamam
    VbCansel İptal
    VbAbort iptal
    VbYeniden Dene Tekrarlamak
    VbYoksay Atlamak
    VbEvet Evet
    VbHayır Numara

    Aşağıdaki kod örneği, Evet ve Hayır düğmelerine sahip bir mesaj kutusu görüntüler. Kullanıcı Evet'i tıklarsa, "Devam..." yazan başka bir mesaj kutusu görünür. Kullanıcı Hayır'ı tıklarsa, "İşlem iptal edildi" mesajı görünür. İkinci argüman vbQuestion artı vbYesNo kullanır: mesaj kutusunda bir soru işareti ve Evet ve Hayır düğmeleri bulunur.

    Alt VoprosEvetHayır ()

    Tamsayı olarak Dim İndik

    Indik = MsgBox ("Devam etmek istiyor musunuz?", VbQuestion + vbYesNo, "Kullanıcıya soru")

    Indik = vbYes ise

    MsgBox "Devam Ediyor...", VbInformation, "Sistem mesajı"

    MsgBox "İşlem sonlandırıldı", vbCritical, "Sistem mesajı"

    Bu kod örneği, MsgBox işlevini kullanmanın iki yolunu gösterir. İlk durumda, parantezler MsgBox kelimesinden hemen sonra ve üçüncü argümandan sonra yerleştirilir. Bu, MsgBox işlevinin dönüş değerinin kullanıldığı anlamına gelir. Sonraki iki işlev bir dönüş değeri kullanmaz, bu nedenle parantez kullanılmaz. Mesaj kutusunda bulunan butonlar dönüş değerini belirler. MsgBox fonksiyonunun dönüş değeri, vb ile başlayan ve OK veya Cancel gibi buton üzerinde yazılan kelime ile biten bir sabittir. Mesaj kutusunda Evet ve Hayır düğmeleri varsa, MsgBox işlevi vbYes veya vbNo döndürür.

    Bu kodda Indik değişkeni MsgBox fonksiyonunun sonucuna eşittir. If komutu, Indik'in vbYes'e eşit olup olmadığını kontrol eder; eğer öyleyse, uygun önlemi alır.

    4.3 Giriş penceresi

    InputBox() işlevi, MsgBox() işlevinden biraz daha karmaşıktır ve gerçek bir değer veya metin dizesi girmenize olanak tanır. InputBox() bir değer aldığından, giriş değerini kullanmadan kullanmanın bir anlamı yoktur. Bu nedenle, bu işlev her zaman parantez içinde yazılır.

    InputBox() işlevi en fazla yedi bağımsız değişken alabilir:

    InputBox (istem [, başlık] [, varsayılan] [, xpos] [, ypos] [, yardım dosyası, bağlam])

    Yalnızca ilki gereklidir - Penceredeki mesajı gösteren İstem. İkincisi Başlık.

    Üçüncüsü, giriş kutusunun varsayılan değeridir. Dördüncü ve beşinci argümanlar, giriş kutusunun konumunu belirtir. Atlanırlarsa, pencere ekranın ortasına yerleştirilecektir.

    Altıncı ve beşinci argümanlar yardım dosyasını ve onun bölümünü tanımlar. Bunlardan birini kullanıyorsanız, diğerini kullanmanız gerekir. Excel daha sonra giriş kutusuna bir Yardım düğmesi ekleyecektir.

    InputBox() işlevi her zaman bir dize döndürür. Kullanıcı bir sayı girse bile, aslında bir dizedir. Çoğu durumda, VBA bir dizeyi sayıya dönüştürür. Ancak, bazen çeviri yanlıştır. Bu durumda, dönüş değerini başka bir veri türüne dönüştürmeniz gerekir. Bunu yapmak için, örneğin döndürülen değeri bir tamsayıya dönüştüren Cint (değer) işlevi gibi çeviri işlevlerinden birini kullanın.

    İptal düğmesine tıklayarak dönüş değerinin vbCancel olmasını beklersiniz. Ancak bu doğru değil. InputBox () bir dize döndürdüğünden, İptal düğmesine tıklamak dizenin dönmesine neden olur. boş satır(bir dizi tırnak işareti - ""). Aşağıdaki örneği göz önünde bulundurun, eğer hiçbir şey girilmezse (boş satır), o zaman alt programdan çıkar.

    Alt Vvod_lnputBox ()

    Dim s As String, sreal As Single

    s = InputBox (İstem: = "Maaş nedir?:", _

    Başlık: = "Soru", Varsayılan: = 550)

    Eğer s = "" ise Sub'dan Çıkın

    sreal = CSng (ler)

    MsgBox "Maaş" & s & "vergiler" & sreal * 0.13

    Bazen kullanıcının yalnızca belirli bir veri türünü girmesi gerekir. Bu durumda InputBox() işlevi yerine InputBox() yöntemini kullanın. Uygulama koyarak. InputBox()'tan önce, VBA'ya bir VBA işlevi değil, Excel'in InputBox() yöntemini kullanmasını söylersiniz. InputBox() yönteminin ayrıca sekizinci bir bağımsız değişkeni olan Type vardır. Bir tür belirterek, (kullanıcıdan) yalnızca belirli bir veri türü girmesini zorunlu kılarsınız. Birden çok veri türünün girişine izin vermek için farklı veri türlerinin değerlerini ekleyin. Ancak, InputBox () yöntemini kullanırsanız, İptal düğmesine tıklamak boş bir dize değil False döndürür.

    4.4 Excel hücreleri ile G / Ç

    ActiveCell nesnesi, bir Excel çalışma sayfasının belirli hücrelerinden ilk verileri girmek ve ayrıca hesaplama sonuçlarını hücrelere çıkarmak için etkin bir şekilde kullanılabilir. Range nesnesi hücreleri belirtmek için kullanılır. ActiveCell nesnesi, klavye girişi sırasında odağa sahip olan hücreyi (veya Range nesnesini) işaret eder. Bunun için Value özelliği kullanılır. Örneğin, A5 adresli hücreye Rost değişkeninin değerini yazmanız gerekir:

    Aralık (“A5”) Seçin

    ActiveCell.Value = Rost

    Ters prosedür benzer:

    Rost = ActiveCell.Value

    Adresleri hesaplanabilen çeşitli hücrelerden çok sayıda verinin okunması gerekiyorsa, Offset (R, C) yönteminin kullanılması tavsiye edilir, burada R, R satırının satırına göre aşağı doğru ofsetidir. aktif hücre, C, aktif hücrenin sütununa göre sağdaki C sütunlarının bir kaymasıdır ... Örneğin, aşağıdaki satır Rost'un değerini B7 hücresine yazar.