Değişken türleri görsel temel. Visual Basic programlama dili

Çünkü Visual Basic belirleyebilir değişken tipi onun tarafından Anlam(santimetre. varyant), değişkenin türü bildirilmeyebilir (belirtilmemiş). Fakat, değişken bildirimi iyi bir programlama pratiği kuralıdır ve ayrıca değişken adının programın farklı yerlerinde eşit olmayan şekilde yazılması, hesaplamalarda veri türlerinin gözetilmemesi gibi programdaki bazı hatalardan kaçınmanızı sağlar.

Değişken bildirildi kod penceresinin başında veya prosedürün başında operatörü kullanarak loş böyle bir giriş ile:

Değişken Adını Değişken Türü Olarak Karart

Sözcükler değişken türü olarak belirtilir Bayt, Uzun, Dizi ve tip tablosundan diğerleri (yukarıya bakın).

Örneğin:
Bayt Olarak Kısma
Değişken bildirildi A tip bayt. Böyle bir değişkene 0'dan 255'e kadar bir sayı koyabilirsiniz. Bir değişken atamaya çalıştığınızda Daha bir hata oluşur ve sahip olan sayı kesirli kısım yuvarlanacaktır.

Dim b Dize Olarak
Değişken bildirildi B tip Sicim. Bu değişken metin içerecektir (ancak metin sayı olabilir, ancak 2 artı 3 23'tür).

Birden çok değişken bildirirken, bunları kullanarak numaralandırabilirsiniz. virgül:
a Bayt Olarak, b Dizge Olarak Dim

Beyanname satırından sonra bir değişkene değer atayabilirsiniz.

Örneğin:
Bayt Olarak Kısma
bir=5

Visual Basic ayrıca kendi veri türlerinizi oluşturmanıza olanak tanır. Bu özellik, birbiriyle ilişkili ancak farklı veri kategorilerine ait bir grup veri öğesiyle uğraşırken önemlidir. Structure deyimi ile kendi tiplerinizi (UDT - kullanıcı tanımlı tip) oluşturabilir, Dim deyimi ile bu yeni tiplere ilişkin değişkenleri bildirebilirsiniz. Ancak, Yapı deyiminin bir olay prosedüründe bulunamayacağını unutmayın - diğer değişken bildirimleriyle birlikte form kodunun en üstünde veya modül kodunda bulunmalıdır.

Örneğin, aşağıdaki bildirim, belirli bir çalışanın adlarını, doğum tarihini ve istihdam tarihini saklayabilen, Çalışan adlı özel bir veri türü oluşturur:

Yapı Çalışan Dim Adı Dize Olarak Dim DateOfBirth Tarih Olarak Dim HireDate Tarih Olarak Bitiş Yapısı

Bir veri tipi oluşturulduktan sonra, onu formun kodunda veya modülün olay prosedürlerinde kullanabilirsiniz. Aşağıdaki ifadeler yeni Çalışan türünü kullanır. İlk ifade, Çalışan türünde ProductManager adlı bir değişken oluşturur ve ikinci ifade, bu değişkenin Ad bileşenini "Eric Cody" adına ayarlar:

ProductManager'ı Çalışan Olarak Dim ProductManager.Name = "Eric Cody"

Özellikleri ayarlamak gibi geliyor, değil mi? Visual Basic, kullanıcı tanımlı veri türleri ve değişken bileşenler arasındaki ilişkilerde olduğu gibi, nesneler ve özellikler arasındaki ilişkiler için aynı gösterimi kullanır.

Sabitler: değişmeyen değişkenler

Programınızdaki bir değişken asla değişmeyen bir değer içeriyorsa (sabit bir matematiksel varlık olan pi sayısı gibi), bu değeri değişken yerine sabit olarak saklamayı düşünebilirsiniz. Sabit, hiçbir zaman değişmeyen bir sayı veya test dizisinin yerine geçen anlamlı bir addır. Sabitler, program kodunun okunabilirliğini artırmaları, sayıyı azaltmaları açısından yararlıdır. yazılım hataları ve kodda genel değişiklikler yapmayı kolaylaştırır. Sabitler, değişkenler gibi davranır, ancak program çalışırken değerlerini değiştiremezsiniz. Aşağıdaki örnekte gösterildiği gibi, Const anahtar sözcüğü ile bildirilirler:

Çift Olarak Sabit Pi = 3.14159265

Bu ifade, program kodunda pi değeri yerine kullanılabilen Pi adlı bir sabit oluşturur. Bir sabiti formunuzdaki tüm nesneler ve olay prosedürleri için kullanılabilir hale getirmek için, bu ifadeyi formunuzun tüm olay prosedürleri kapsamına giren diğer değişken ve yapı bildirimleriyle birlikte form kodunuzun en üstüne yerleştirin. Bir sabiti tüm formlardan ve program modüllerinden (yalnızca Form1'den değil) kullanılabilir hale getirmek için, modül kodunda önek ekleyerek bir sabit oluşturun. anahtar kelime halk. Örneğin:

Public Const Pi Çift Olarak = 3.14159265

Aşağıdaki alıştırmada, olay prosedüründe sabitleri kullanacağız.

Bir olay prosedüründe sabit kullanma
  1. Dosya menüsünden Aç'ı seçin ve ardından Proje'ye tıklayın. Proje Aç iletişim kutusu görünecektir.
  2. Klasörde bulunan Constant Tester projesini açın. c:\vbnet03sbs\ch.5\sabit test cihazı.
  3. Proje formu görüntülenmiyorsa, Çözüm Gezgini'nde Form1.vb'ye tıklayın ve ardından Tasarımcıyı Görüntüle düğmesine tıklayın. Windows Forms Designer'da bir form görünecektir sabit test. Constant Tester, programın "iskeletidir". Kullanıcı arayüzü tamamlandı, ancak program kodunu girmeniz gerekiyor.
  4. Düğmeye çift tıklayın Sabiti Göster formlar. Button1_Click olay prosedürü, Kod Düzenleyicide görünür.
  5. Button1_Click olay prosedürüne aşağıdaki ifadeleri girin:

    Sabit Pi As Double = 3.14159265 Label1.Text = Pi

    Tavsiye. Sabitleri veya değişkenleri nasıl kullanmayı planladığınıza bağlı olarak bildirimlerinizin konumunu seçin. Genellikle, programcılar bildirimlerin kapsamını mümkün olduğunca küçük tutmaya çalışırlar, ancak aynı zamanda gerektiğinde kodun tüm bölümlerinde kullanılabilir olmalıdır. Örneğin, bir sabite yalnızca tek bir olay prosedüründe ihtiyaç duyulursa, o sabitin bildirimini o olay prosedürünün içine yerleştirmelisiniz. Ancak, formunuzun tüm olay prosedürleri için kullanılabilir hale getirmeniz gerekiyorsa, bildirimini form kodunuzun en üstüne yerleştirin.

    Programı çalıştırmak için standart araç çubuğundaki Başlat düğmesine tıklayın.

    Düğmeye bas Sabiti Göster. Pi sabiti, aşağıda gösterildiği gibi etiket alanında görünecektir.

    Programı durdurmak için düğmesine tıklayın çıkış.

    Sabitler, özellikle hesaplama yaparken program kodunda kullanışlıdır. matematiksel formüller. Bir sonraki bölümde, formül yazmak için işleçlerin ve değişkenlerin nasıl kullanılacağı açıklanmaktadır.

PROGRAMLAMA DİLİ GÖRSEL TEMEL. VERİ TİPLERİ. DEĞİŞKENLER, SABİTLER, DİZİLERİN TANIMI

veri tipi verilerin bir bilgisayar sisteminde saklanma ve sunulma şeklidir.

Aşağıdaki veri türleri Visual Basic dilinde saklanabilir ve işlenebilir.

Bayt, negatif olmayan bir tam sayıdır. 0 ile 255 arasındaki değerleri kabul eder, 1 bayt yer kaplar.

Boole - mantıksal bir değer. True ve False olmak üzere iki değerden birini alır, 2 bayt yer kaplar.

Para birimi - ondalık genişletilmiş sayı. Sabit sayıda ondalık basamaklı parasal hesaplamalar yapmak için kullanılır, 8 bayt yer kaplar. (Ondalık virgülü solunda 15 haneye kadar ve ondalık virgülü sağında 4 haneye kadar).

Tarih - tarih. Tarihleri/saatleri saklamak için kullanılır, 8 bayt yer kaplar.

Çift - çift duyarlıklı ondalık sayı, 8 bayt yer kaplar.

Tamsayı - kısa tamsayı değeri, 2 bayt yer kaplar. -32768 ile 32767 arasındaki tamsayıları temsil etmek için kullanılır.

Uzun - uzun tamsayı, 4 bayt yer kaplar. -2147483648 ila 2147483647 aralığındaki tam sayıları temsil etmek için kullanılır.

Tek - ondalık normal hassasiyet sayısı, 4 bayt kaplar. -3,402823E 38 ila -1,401298E-45 aralığındaki negatif sayıları ve 1,401298E-45 ila 3,402823E 38 aralığındaki pozitif sayıları temsil etmek için kullanılır.

Dize - değişken uzunluklu dize. Dolu bellek doğrusal olarak dizideki karakter sayısına bağlıdır.

Dize * uzunluk - sabit uzunluktaki dize.

Varyant - isteğe bağlı değer. İçin kullanılır veri depolama herhangi bir tür. Değer bir dize ise 16 bayt artı karakter başına bir bayt yer kaplar.

Nesne - bir nesne. Yalnızca nesnelere yapılan başvuruları depolamak için kullanılır, 4 bayt yer kaplar.

Değişken programın yürütülmesi sırasında değişen verileri depolamak için tasarlanmış, adlandırılmış bir bellek alanıdır. Bu hafıza alanının içeriğine ulaşmak için değişkenin adını bilmek yeterlidir.

Bir değişken adı (tanımlayıcı), bu değişkeni diğer program nesnelerinden ayıran (programdaki değişkeni tanımlayan) bir karakter dizisidir.

Değişkenleri adlandırırken aşağıdaki kurallara uyulmalıdır:

Adın ilk karakteri bir harf olmalıdır. Kalan karakterler harfler ve rakamlardır (büyük ve küçük harfler farklıdır). "_" karakterini kullanabilirsiniz;

  • "." karakteri adında kullanılamaz;
  • isimdeki karakter sayısı 255'i geçmemelidir;
  • değişken adı, dilin ayrılmış (hizmet) sözcükleriyle çakışmamalıdır.

Visual Basic aşağıdaki özelliklere sahiptir. değişken tipi bildirimleri.

  1. Değişken hiç bildirilmemiş olabilir. Bu durumda, varsayılan tür Varyant olacaktır. Ancak bu, yavaş, verimsiz program çalışmasına ve boşa giden bellek kullanımına yol açabilir.
  2. Bir değişken, değişken tanımı deyimi kullanılarak açıkça bildirilebilir:Dim DeğişkenAdı [ DeğişkenTürü Olarak],
    örneğin: Dim d as Long.
    Değişkenleri her zaman açıkça bildirmek için, mevcut formların, modüllerin veya sınıfların (Genel) (Bildirimler) bölümündeki Açık Seçenek seçeneğini kullanın. Bu seçeneği ayarladıktan sonra, Visual Basic değişkenlerin açık bildirimini gerektirir ve kodda bildirilmemiş bir değişken kullanılırsa bir hata iletisi oluşturur.
  3. Bir değişken dolaylı olarak bildirilebilir:

    Tip bildirim operatörü ile:

DefType İlk harf [- Bitiş harfi];

OrgType yerine, türü ifade eden anahtar kelimelerden biri belirtilir:

Deflnt (Tamsayı türü için);
- DefLng (Uzun tip için);
- DefSng (Tek tip için);
- DefStr (String tipi için) vb.;

Bir değişkenin türü bazen değişken adına eklenen sonekten anlaşılabilir. Yalnızca altı tür değişkenin son eki olabilir:

- % - Tamsayı türü;
- & - Uzun tip;
-! - Tek tip;
- # - Çift tip;
- $ - Dize türü;
- @ - Para birimi türü.

Türü örtük olarak bir sonekle gösterilen bir değişken, bir programda birden çok kez geçiyorsa, bu durumda sonek, değişken programda ilk kez kullanıldığında yalnızca bir kez belirtilebilir.

sabitler- değerleri değiştirilemeyen miktarlar. Değişkenler gibi, sabitler de program kodu metninin başında operatör tarafından bildirilir:

Sabit SabitAdı = Değer, örneğin: Sabit Pi = 3,14159

Değer olarak yalnızca aritmetik ve/veya mantıksal operatörler dahil olmak üzere sabit değerler ve bunların kombinasyonları kullanılabilir.

sıralamak her biri kendi seri numarasına sahip olan ve dizin adı verilen belirli bir türdeki öğeler kümesidir.

Bir dizinin tanımı operatör tarafından gerçekleştirilir:

Dim VariableName([LowerLimitTo]
Üst sınır) .

Örneğin: Dim b (a'dan 15'e) - 15 öğeden oluşan b dizisi bildirimi.

Visual Basic, varsayılan olarak, bir dizinin öğelerini sıfırdan başlayarak dizine ekler, yani dizin 0 dizinin ilk öğesini, dizin 1 ikinci öğesini vb. gösterir. Option Base 1 deyimi, 1'den bir dizi indeksleme belirtmenizi sağlar. Bu ifade, (Genel) (Bildirimler) bölümünde olmalıdır.

Bu bölümde, VBA tarafından manipüle edilebilecek veri türlerini, VBA'nın geçici verileri nasıl depoladığını, yeni değerler oluşturmak için değişkenleri ve sabitleri nasıl birleştireceğinizi ve yerleşik işlevleri ifadelere nasıl dahil edeceğinizi öğreneceksiniz.

Laboratuvar çalışması numarası 3. VB veri türlerine genel bakış. değişkenler ve

sabitler. Veri türü uyumluluğu. atama operatörü. Aritmetik ve mantıksal operatörler. Yerleşik İşlevler

dersin amacı: Veri türlerini bilir. Değişken oluşturmayı bilin. Veri türlerinin değişkenlere nasıl atanacağını bilin. Adlandırılmış sabitler oluşturabilme. Kapsamı bilin

değişkenler ve sabitler. Tip dönüştürmeyi bilir. Atama operatörünün nasıl kullanılacağını bilin. Aritmetik ve mantıksal işlemleri bilir. Dize birleştirmenin nasıl kullanılacağını öğrenin. Yerleşik VBA işlevlerini nasıl kullanacağınızı öğrenin. Ders için malzemeler: Excel 2003.

Veri türlerine genel bakışGörselTemel (VB)

Değişkenler hakkında bilgi edinmeden önce, VBA'nın farklı bilgi türlerini nasıl depoladığını anlamalısınız. VBA, diğer birçok programlama sistemi gibi, işlenen verileri sayılara, tarihlere, metinlere ve diğer türlere ayırır. Veri tipi(veri tip), VBA'nın depoladığı ve işleyebileceği belirli veri türlerini ifade eden bir terimdir. Masada. 9 genelleştirilmiş tip VBA verileri, her türün ne kadar bellek kapladığını gösterir, veri türlerini kısaca açıklar ve türün saklayabileceği değer aralığını verir.

Tablo 9– VBA veri türleri

Tip adı

boyutbayt

0'dan 255'e kadar tamsayı pozitif sayılar

-32768 ile 32767 arasındaki tamsayılar

-2147483648'den 2147483647'ye uzun tamsayılar

Sıradan hassasiyetin gerçek sayıları ile

kayan nokta.

Negatif sayılar:

-3.402823E38'den -1.401298E-45'e.

Pozitif sayılar:

1.401298Е-45'ten 3.402823Е38'e

ile çift duyarlıklı gerçek sayılar

kayan nokta.

Negatif sayılar:

-1.79769313486232E308'den -1.79769313486232E308'den

4.94065645841247E-324.

Pozitif sayılar:

4.94065645841247E-324'ten

1,79769313486232E308

Ondalık noktasından önce en fazla 15 hanesi ve sonrasında 4 hanesi olan sayılar (para birimi). -922337203685477.5808 ila 922337203685477.5807

Boole değerlerini saklamak için; yalnızca Doğru (Doğru) veya Yanlış (Yanlış) değerleri içerebilir

Tip adı

boyutbayt

Açıklama ve değer aralığı

Tarih ve saat bilgilerinin bir kombinasyonunu saklamak için. Tarih aralığı 1 Ocak 100 ile 31 Aralık 9999 arasında olabilir. 00:00:00 ile 23:59:59 arasındaki zaman aralığı

Dize (değişken uzunluklu dize)

10 bayt + Metin depolamak için kullanılır. 0 karakterden (yaklaşık) 2 milyar karaktere kadar dize uzunluğu olabilir

Dize (dize

sabit uzunluk)

Uzunluk Metni depolamak için kullanılır. Can dizeleri (bir karakter karakteri başına birden (yaklaşık olarak) 65400 bayt içerir)

16 bayt + 1 bayt/karakter

Varyant tipi, diğer herhangi bir veri tipini saklayabilir. Varyant verilerinin aralığı, saklanmakta olan gerçek verilere bağlıdır. Metin durumunda, aralık dize tipine karşılık gelir; sayılar söz konusu olduğunda, aralık, Double türüyle aynıdır

VBA tarafından tanınan herhangi bir nesneye erişmek için kullanılır. Bir nesnenin adresini bellekte saklar

Masada. 9 adlı bir veri temsiliyle karşılaştınız. üstel gösterim(ilmi gösterim), harici cihazlarda (monitör, yazıcı vb.) çok büyük ve çok küçük sayıları kompakt bir biçimde görüntülemek için kullanılır. Üstel gösterimde değerler başında veya sonunda sıfır olmadan yazılır ve ondalık noktanın solunda yalnızca bir basamak vardır. Sayı, ondalığın gerçekte nerede olduğunu göstermek için bir dereceye kadar 10 ile çarpılır.

VBA'nın altı farklı sayısal veri türü vardır: bayt, tamsayı, Uzun, Bekar, Çift Ve Para birimi. Sayısal veri türleri, sayıları belirli türe bağlı olarak çeşitli biçimlerde depolamak (ve işlemek) için kullanılır.

Tipik olarak bir VBA programı (diğer herhangi bir program gibi), çeşitli koşulların doğru olup olmadığını kontrol ederek kararlar "verir". Test koşullarını basitleştirmek ve bu tür testlerin sonuçlarının kaydedildiğinden emin olmak için VBA bir Boolean veri türü sağlar. Boole değerleri Doğru Ve YANLIŞ isminde mantıksal(boole) değerler. Adları, matematiksel mantık sistemini geliştiren matematikçinin adıyla ilişkilidir. VBA boolean veri türü, veri türü olarak da adlandırılır. boole. VBA boole türü, iki bayt bellek gerektirir ve iki değerden birine sahip olabilir: Doğru veya YANLIŞ. türü görüntülerseniz boole ekranda, VBA otomatik olarak şu kelimeyi içeren bir dizgeye dönüştürecektir: Doğru, veya YANLIŞ. Boole değerleri şu şekilde elde edilir:

karşılaştırma işleminin sonucu.

VBA türü kullanır Tarih tarihleri ​​ve saatleri saklamak için. VBA'nın tür verilerini nasıl depoladığı konusunda endişelenmenize gerek yok. Tarih, - tarihleri ​​kolayca görüntüleyebilir, kaydedebilir veya değiştirebilirsiniz; VBA, bir seri numarasını yıl, ay, gün ve saate dönüştürmenin tüm ayrıntılarını otomatik olarak yönetir. VBA türü Tarih bir tiptir ardışık tarihler(seri tarih). Ardışık tarihler, tarihi verilen başlangıç ​​tarihinden itibaren gün sayısı olarak depolar. VBA türü için temel tarih Tarih dır-dir 30 Aralık 1899. VBA, 30/12/1899 tarihinden önceki tarihleri ​​temsil etmek için negatif sayıları ve 30/12/1899 tarihinden sonraki tarihler için pozitif sayıları kullanır. 0 sayısı 12/30/1899 tarihini temsil eder. Bu şemada 1 Ocak 1900 tarihi 2 olarak yazılır (1/1/1990, 30/12/1899 tarihinden sonraki 2 gündür), fakat -2 tarihi 12/28/1899 (12/30/1899 tarihinden iki gün öncesidir) . Bunu doğrulamak için basit bir prosedür yazın.

1. Egzersiz. Bir tarih mesajı görüntüleyen bir prosedür yazın.

Bunun için:

Bir prosedür yazın (Liste 3):

Listeleme 3 prosedürtarih testi

1 Alt TarihTest()

2 Dim d Tarih Olarak 3

Bu işlemin sonucunda temel tarih ekranda görüntülenecektir (Şek. 15).

Pirinç. 15 Sıralı bir tarih değerinde, tamsayı kısmı (virgülün solundaki haneler) temel tarihten itibaren günlerin toplam sayısıdır. Bir VBA seri tarihi, ondalık noktanın sağında rakamlara sahip olabilir; bu sayılar günün bir parçası olarak günün saatini belirtir. Bir saat, günün 1/24'üdür (yaklaşık 0,0416. Benzer şekilde, bir dakika günün 1/1440'ı, saniye ise 1/86400'üdür. Bir tarihi diğerinden çıkarabilir, bir tarih ekleyebilir veya değerleri değiştirmek için sayıları çıkarın.Örneğin, iki tarih arasındaki gün sayısını belirlemeniz gerekiyorsa, daha önceki tarihi sonrakinden çıkarmanız yeterlidir.Çünkü bunlar türdeki değerlerdir. Tarih, VBA, hesaplamanın amacının bu iki tarih arasındaki gün farkını elde etmek olduğunu "bilir". Benzer şekilde, belirli bir tarihten 60 gün sonra bir tarih belirlemeniz gerekiyorsa, o tarihe 60 eklemeniz yeterlidir.

VBA'nın yıl, ay, gün, saat, dakika ve saniyeyi ayrı ayrı ayıklamak için (bu bölümde açıklanan) birkaç yerleşik yordamı vardır. tip değişkeni Tarih.

Bir VBA programında saklanan herhangi bir metin verisine denir. çizgiler(Teller). VBA'daki dizeler, bir veri türü kullanılarak depolanır Sicim. Dizeler, metin verileri genellikle karakter dizileri olarak ele alındığından bu şekilde adlandırılır. satır içerebilir metin karakterleri herhangi bir türden: alfabe harfleri, sayılar, noktalama işaretleri veya çeşitli semboller. Dizilerin iki kategorisi vardır: boyut olarak büyüyen veya küçülen değişken uzunluktaki diziler ve her zaman aynı boyutta kalan sabit uzunluktaki dizeler. Sabit uzunluklu bir dize belirtmediğiniz sürece, VBA'daki tüm dizeler değişken uzunluklu dizelerdir. Çoğu kullanıcı giriş verisi (içinde diyalog kutuları, çalışma sayfası hücreleri) dize verisidir. Ayrıca, ekranda yalnızca metin görüntüleyebileceğiniz için, diğer tüm veri türlerinin görüntüleyebilmeniz için önce dize verilerine dönüştürülmesi gerekir. Birçok yerleşik VBA prosedürü (örneğin mesaj kutusu) bağımsız değişkenlerinin tamamında veya bir kısmında dize verilerini kullanır. VBA, aşağıdakiler için çeşitli operatörler sağlar: birleştirme(birleştirmek), yani birleştirmek ve dizeleri karşılaştırmak için. VBA ayrıca, daha uzun dizilerden alt dizileri ayıklamaya, bir dizideki karakterleri veya sözcükleri bulmaya, bir dizideki harflerin durumunu değiştirmeye vb. yardımcı olan birkaç yerleşik rutine sahiptir. Bu bölüm, VBA dizi operatörlerini ve VBA dizilerini işlemek için prosedürleri açıklamaktadır.

Veri tipi varyant Tabloda gösterilen türlerden herhangi birini saklayabilen özel bir veri türüdür. 9, tip hariç Nesne. VBA türü kullanır varyant Bu bölümde daha sonra açıklandığı gibi, değişkenin türünü açıkça bildirmediğiniz sürece tüm değişkenler için. Veri yazın varyantşu anda depoladıkları belirli türün özelliklerini alırlar. Örneğin, eğer veri türü varyant dize verileri içerir, varyant String tipinin özelliklerini alır. veri türü ise varyant sayıları içerir, varyant bazı sayısal türlerin özelliklerini alır, genellikle - Çift türleri olmasına rağmen varyant tip özelliklerine de sahip olabilir tamsayı, Uzun, Bekar veya Para birimi. Her ne kadar türleri varyant kullanışlıdırlar ve prosedürleri yazarken işin bir kısmını kurtarırlar, büyük diziler dışında diğer tüm veri türlerinden daha fazla bellek gerektirirler. Ayrıca matematiksel işlemler ve veri türündeki karşılaştırma işlemleri varyant diğer türdeki veriler üzerindeki benzer işlemlerden daha yavaştır. Genel olarak, değişken kullanmaktan kaçınmalısınız. varyant: gibi değişkenlere güveniyorsanız varyant, özensiz programlama alışkanlığı geliştirebilir ve programlarınızdaki hataları bulup düzeltmekte zorlanabilirsiniz.

Değişkenler

Değişken(değişkenler) programcının alana verdiği isimdir.

bir tür veriyi depolamak için kullanılan bilgisayar belleği. VBA değişkenleri, Tablo 1'de listelenen veri türlerinden herhangi birini depolayabilir. 9.

tanımlayıcı(tanımlayıcı) değişkenler gibi oluşturduğunuz prosedürler ve modüllerdeki öğelere verdiğiniz addır. Tanımlayıcı terimi, oluşturduğunuz adların bellekteki (değişken adı söz konusu olduğunda), talimat gruplarını (makro veya prosedür adı söz konusu olduğunda) veya diğer program öğelerindeki belirli konumları tanımlamasına dayanır.

Değişken adları büyük küçük harf duyarlı değil"(Olumsuz dava- hassas), yani değişken adını büyük harfle yazmak veya büyük harflerönemli değil

Bir değişken oluşturmanın en kolay yolu, onu bir VBA deyiminde kullanmaktır. VBA bir değişken oluşturur ve değişken bir ifadede ilk kez göründüğünde (genellikle bir değişkende bir veri değeri depolayan bir ifade) değişkenin bellek konumu için bellek ayırır.

Bir veri değerinin bir değişkende saklanmasına denir değişken atama(atama the değişkenler veya yapımı BİR atama). Atama, eşittir işaretiyle (=) temsil edilen atama operatörü kullanılarak gerçekleştirilir. Aşağıdaki satır, bir değişkene değer atamanın bir örneğidir:

Bu operatör, 25 sayısal değerini değişken adıyla belirtilen bellek konumunda saklar. MyVar'ım.

Bir ifadede kullanarak bir değişken oluşturmaya denir örtülü değişken bildirimi(örtük değişkenler deklarasyon). Bir ifadede bir değişken kullanarak, dolaylı olarak VBA'ya o değişkeni oluşturmak istediğinizi söylüyorsunuz (bildiriyorsunuz). VBA'nın örtük değişken bildirimi ile oluşturduğu tüm değişkenlerin bir veri türü vardır varyant. Örtülü değişken bildirimi, değişken bildirimi olarak da bilinir "anında"(Açık- the- uçmak).

Örtük değişken bildirimi uygundur, ancak potansiyel sorunları vardır. Örneğin, adında bir değişkeniniz olduğunda MyVar'ım ve daha sonra yazarak adında bir hata yapın MVar. Kodunuzda yanlış değişken adının nerede göründüğüne bağlı olarak, VBA bir çalışma zamanı hatası verebilir veya yalnızca yeni bir değişken oluşturabilir. VBA yeni bir değişken oluşturursa, tespit edilmesi çok zor problemlerle karşılaşabilirsiniz.

Bu ve diğer nedenlerden dolayı, VBA size şunları yapma yeteneği verir: açık(açık) değişken bildirimi.

Değişkenleri açıkça bildirmek için VBA deyimini kullanın loş aşağıdaki söz dizimi ile:

loş isim1 [, isim2 ]

isimN herhangi bir geçerli değişken tanımlayıcısıdır. Bu anahtar kelime formuyla oluşturduğunuz tüm değişkenler loş, değişkenlerdir

tip varyant.

Bir değişken, tek bir prosedürde veya modülde yalnızca bir kez bildirilebilir. Dim deyimi, değişkeni gerçekten kullanan tüm deyimlerden önce geldiği için, onu yordamın herhangi bir yerine yerleştirebilirsiniz. Programlama pratiğinde, bir prosedürün başında tüm açık değişken bildirimlerini tek bir yerde toplamak iyi bir kuraldır.

Görev 2. Prosedürü Değiştir merhaba excel önceki kısımdan, açık bir değişken tanımı kullanarak.

Bunun için:

prosedürü değiştir merhaba excel (Liste 4):

Listeleme 4 prosedürmerhaba excel

1 Alt HelloExcel()

MsgBox 3 için 2 Dim HelloMsg " değişkeni

Şebeke loş Liste 4'ün (2. satırında) bir değişken bildirir MerhabaMsg ve bunun için bir bellek alanı ayırır (bu alt programda MerhabaMsg bir tür değişkenidir varyant). 2. Satır, bu değişkenin amacını gösteren bir açıklama içerir. Satır 4, bir değişkene atamadır MerhabaMsg çizgiler "Merhaba,mükemmel!" . Sonra (5. satırda) HelloMsg değişkeni, prosedürün argümanlarından biri olarak kullanılır. Mesaj Kutusu. İşlev Mesaj Kutusu öncekiyle aynı mesaj kutusunu görüntüler. Rağmen Mesaj Kutusu şimdi ilk bağımsız değişkenini bir değişkenden alıyor, bu değişken daha önce (önceki bölümün listelerinde) doğrudan ifadeye yazılmış olan aynı dizi bilgisini içeriyor Mesaj Kutusu.

VBA'daki tüm değişkenler, açık ya da örtülü olarak bildirilmiş olsun, siz onu bildiren ifadede değişkenin türünü belirtmediğiniz sürece Variant türündedir. duyuru için daktilo operatörü kullanarak değişken ve türü loş değişkenden sonra As anahtar sözcüğünü ekleyin ve ardından bu değişken için veri türünün adını girin. İşte operatörü kullanmak için genel sözdizimi loş yazılan değişkenleri bildirirken:

loş varnamel [, varname2 ]

varnameN herhangi bir geçerli VBA değişken adını temsil eder; tipN - VBA veri türü adlarından herhangi biri.

Yazılan bir değişken bir kez bildirildiğinde, değişken ister açık ister örtülü olarak bildirilsin ve türün nasıl belirlendiği fark etmeksizin, bu değişken var olduğu sürece aynı türü korur. Bir değişkeni yeniden bildiremez veya türünü yeniden tanımlayamazsınız.

Örtük bir bildirimle, bir değişkenin türünü ekleyerek de belirleyebilirsiniz.

adlı özel bir karakter tip tanımı sembolü(tip- tanım karakter) değişken adının sonuna. Masada. Tablo 10, VBA tipi tanım sembollerini ve temsil ettikleri tipleri listeler. Tablo 10– Tip tanımlama sembolleri

Tip

tanım sembolü

Tip

Sembol tanımlar

tamsayıUzun

Para birimiÇift

Tip tanımı karakterleri yalnızca bir değişken adının sonunda yer alabilir. Tip tanımı sembollerinin ne olduğunu ve nasıl kullanıldığını bilmeniz gerekse de, bunları nadiren kullanmanız gerekir - As anahtar sözcüğüyle Dim deyimini kullanmak çok daha kolay ve anlaşılırdır. Çoğu VBA programcısı tip tanımlama sembolleri kullanmaz.

Görev 3. Prosedürü Değiştir merhaba excel yazılan bir değişkenin tanımını kullanarak Görev 3'ten.

Bunun için:

prosedürü değiştir merhaba excel (Liste 5):

Listeleme 5 prosedürmerhaba excel

1 Alt HelloExcel()

2 HelloMsg'i Dize 3 Olarak Kısın

    HelloMsg = "Merhaba Excel!"

    Title$ = "İlk programım"

    MsgBox MerhabaMsg, Başlık$

Prosedürün bu versiyonu merhaba excel öncekilerle hemen hemen aynı şekilde çalışır. Satır 1 prosedür bildirimini içerir. Satır 2 bildirimi loş açıkça bir değişken bildirir MerhabaMsg. Operatör olduğundan loş anahtar kelime içerir Gibi ve adı yazın Sicim, değişken MerhabaMsg tipi var Sicim. 4. satır, mesajın metnini bir dizi değişkenine atar MerhabaMsg. Satır 5 dolaylı olarak bir değişken bildirir Başlık$ ve aynı zamanda mesaj kutusunun başlık metnini değişkene atar. Çünkü değişken adı Başlık$ sonunda string için bir tip tanımlama karakteri vardır, bu değişken de String tipindedir. Son olarak, 6. satır deyimi kullanır Mesaj Kutusu bir mesaj kutusu görüntülemek için; bu açıklamada hem mesajın metni hem de pencerenin başlık çubuğu değişkendir: MerhabaMsg Ve Başlık$, sırasıyla.

Bir değişkene tip tanımı karakteri ekledikten sonra, değişken adını her kullandığınızda tip tanımı karakterini dahil etmeniz gerekir.

Tür değişkenlerinin bildirilip bildirilmediği Sicim operatörü kullanarak loş veya $ tür tanımı karakterini ekleyerek, oluşturduğunuz dize değişkenleri varsayılan olarak değişken uzunluklu dizelerdir.

Değişken uzunluklu dizi değişkenleri, değişken tarafından depolanan dizenin uzunluğuna bağlı olarak uzunluğu değiştirir. Bazen hattı kullanmanız gerekebilir sabit uzunluk(sabit- uzunluk). Sabit uzunluklu dizeler her zaman aynı uzunluğa sahiptir. Aşağıdaki satır, sabit uzunlukta bir dizi oluşturmak için genel sözdizimini gösterir:

loş varname Dize Olarak * N

varname herhangi bir geçerli değişken adıdır, bir N 1 ile 65400 karakter arasında herhangi bir sayıdır

Kapsam: Değişken Erişilebilirlik

Terim kapsam(kapsam) verilen değişkenin, prosedürün veya diğer tanımlayıcının mevcut olduğu bir VBA prosedürünün veya modülünün kapsamını ifade eder. Bu bölüm, kapsamın iki temel düzeyini açıklamaktadır: prosedürel ve modüler. Yalnızca bir prosedürde kullanılabilen değişkenler, prosedürler ve tanımlayıcılar prosedür düzeyinde kapsama sahipken, bir modüldeki tüm prosedürlerde kullanılabilenler modül seviyesinde kapsama sahiptir.

Bir prosedürde bildirilen bir değişkene yalnızca o prosedür tarafından erişilebilir. Örneğin, bir değişken MerhabaMsg Liste 5'in 2. satırından yalnızca bir prosedürde mevcuttur merhaba excel; başka hiçbir prosedürün bu değişkene erişimi yoktur.

Bu nedenle, değişken olduğunu söylüyoruz MerhabaMsg sahip prosedürel kapsam(prosedür- seviye kapsam). Aslında, değişken MerhabaMsg yalnızca VBA'nın prosedürü gerçekten yürüttüğü sırada gerçekten var olur merhaba excel.

Görev 4. Kapsamı prosedür düzeyinde değişkenler olan iki prosedür oluşturun.

Bunun için:

İki eksiksiz prosedür girin (Liste 6):

Listeleme 6 prosedürmerhaba excel

1 Alt HelloExcel()

2 HelloMsg'i Dize 3 Olarak Kısın

    HelloMsg = "Merhaba Excel!"

    MsgBox HelloMsg, "İlk programım"

8 Alt HelloDave()

9 HelloMsg'i Dize Olarak Kısma 10

    HelloMsg = "Merhaba Excel!"

    MsgBox HelloMsg, "Başka bir mesaj kutusu"

1-6 arasındaki satırlar aynı prosedürü içerir merhaba excel Tamamen aynı şekilde çalışan Liste 4'ten. Modüle bir prosedür eklendi MerhabaDave, Liste 6'nın 8. satırında başlar. Prosedür MerhabaDave prosedürle aynı şekilde çalışır merhaba excel, sadece iletişim kutusunda farklı bir metin mesajı ve başlık görüntüler. 2. ve 9. satırlarda, her iki prosedür de deyimi kullanır loş yerel olarak adlandırılmış değişkenleri bildirmek için MerhabaMsg.

Bazen birkaç prosedürün aynı değişkene erişimi olması gerekir. Bir değeri bir kez hesaplamak, bir değişkende saklamak ve ardından bu değişkeni birden çok prosedürde kullanmak, aynı değeri tekrar tekrar hesaplamaktan daha etkilidir.

VBA, birden çok prosedür için kullanılabilen değişkenleri bildirmenize olanak tanır. Bir modüldeki tüm prosedürler için bir değişken mevcut olduğunda, değişkenin kapsama sahip olduğu söylenir. modüler seviye(modül seviye). VBA, modül düzeyinde bir değişkenin kapsamını, değişkenin bildirildiği modülle sınırlar (VBA, bir değişkenin kapsamını daha da genişletmek için yollar sağlar; bu yöntemler daha sonra açıklanacaktır).

Bir değişkeni belirli bir modüldeki tüm prosedürler için kullanılabilir hale getirmek için ifadeyi koyun. loş bunun için modülün başında, herhangi bir prosedür bildiriminden önce.

1. Egzersiz

İki prosedür ve tek bir modül düzeyinde değişken bildirimi oluşturun (deyimi 1. satıra taşıyın) loş değişken ile MerhabaMsg 2. ve 9. satırları liste 6'dan çıkarmak).

Bir değişken adı, kapsamı içinde benzersiz olmalıdır. Ancak, aynı isimde değişkenlere sahip olmak mümkündür. farklı kapsam seviyeleri. Değişkenler aynı ada ancak farklı kapsamlara sahip olduğunda, VBA en fazla değişkeni kullanır. yerel(yerel) kapsam.

Açık Değişken Bildirimi Gerektirme

Değişkenlerin üstü kapalı olarak bildirilmesi (değişkenleri basitçe kullanarak bildirmek) uygun olsa da bununla ilgili bazı problemler vardır. Değişkenler dolaylı olarak bildirildiğinde, var olan bir değişkeni gerçekten kullanmanız gerektiğinde yanlışlıkla yeni bir değişken oluşturma veya kullanıcı yeni bir değişken oluşturmayı planladığında var olan bir değişkeni kullanma riski vardır. Bu durumların her ikisi de kodda izlenmesi çok zor olan hatalara yol açar.

Herhangi bir zamanda değişkenlerin örtük bildirimi ile ilgili hataları tespit etmeyi kolaylaştırmak için VBA şu komutu sağlar: SeçenekAçık. kullanma SeçenekAçık VBA, tüm değişkenlerin bildirilmesini gerektirir ( loş) bir modülde kullanmadan önce.

VBA'nın bir modüldeki tüm değişkenler için açık bildirim gerektirdiği modu ayarlamak için şu komutu ekleyin: SeçenekAçık modülün bildirim alanına, yani modülün başında, herhangi bir değişken veya prosedür bildiriminden önce. gibi komutlar SeçenekAçık, arandı derleyici yönergeleri(derleyici direktifler).

Takım SeçenekAçık yalnızca göründüğü modülü etkiler. Bu modülü içeren proje başka modüller de içeriyorsa, komuttan etkilenmezler. SeçenekAçık. Açık değişken bildirimleri gerektiren her modüle bir Açık Seçenek komutu eklemelisiniz.

Çünkü içerme SeçenekAçık tüm modüller için çok kullanışlıdır, VB Düzenleyici, bu komutu oluşturulduğunda her yeni modüle otomatik olarak dahil etmenin bir yolunu sağlar. VB Editörünün bir komut eklemesi için SeçenekAçık her yeni modülde şu adımları izleyin:

y bir komut seçin Aletler/ Seçenekler (Hizmet/Parametreler); VB editörü bir iletişim kutusu görüntüler Seçenekler;

ve sekmeye tıklayın Editör (Editör) gerekirse düzenleme seçeneklerini görüntülemek için;

y onay kutusunu seçin Gerekmek değişken beyanname (Değişkenlerin açık bildirimi);

sen seç TAMAM. VB editörü iletişim kutusunu kapatır Seçenekler.

Alıştırma 2

Komutu otomatik etkinleştirme olarak ayarlayın Seçenek Açık oluşturulduğunda her yeni modüle.

sabitler

Devamlı(devamlı) bir VBA programında değişmeyen bir değerdir. Yukarıda verilen örnek prosedürler, türdeki dize sabitlerini kullanır. "Merhaba,mükemmel!" Ve "İlk programım". Bunun gibi sabitlere denir değişmez sabitler(değişmez sabitler) çünkü değişmez değer doğrudan koda yazılır.

VBA kodunda değişmez sayısal sabitler ve tarihler de yazabilirsiniz; sayısal değişmez sabitlerin örnekleri sayıları içerir 25 , 3.14 . Değişmez tarih sabitlerinin örnekleri tarihleri ​​içerir #12/31/96# veya #28 Ekim 1997#(Bu bölümün ilerleyen kısımlarında tarih sabitlerini yazmak hakkında daha fazla bilgi edineceksiniz).

VBA oluşturmanıza izin verir adlandırılmış sabitler(adlı sabitler). Bir değişken gibi adlandırılmış bir sabitin kendisine verilen bir adı vardır; bu ad belirli bir değişmez değeri temsil eder. Ancak, bir değişkenin aksine, adlandırılmış bir sabitin değeri asla değişmez. Aşağıdaki satır, adlandırılmış sabitleri bildirmek için genel sözdizimini gösterir:

sabit isim = değerli [Şebeke isim2… ] _

[, yol =değer3 [Şebeke isim4 ] … ]

isimN herhangi bir geçerli tanımlayıcıyı temsil eder, değerN – herhangi bir veri değeri: sayısal, dize veya tarih, a Şebeke önceden açıklanan sabitlerin iki adı arasındaki bir aritmetik veya karşılaştırma işlemidir. Sonraki satırlar birkaç adlandırılmış sabit bildirim göster: Const Pi = 3.14, text = "Merhaba Excel!"

Sabit Pi2 = 2*Pi

sabitlerin kapsamı

Değişkenlerde olduğu gibi, adlandırılmış sabitleri prosedürlerde veya bir modülün başındaki bildirim alanında bildirebilirsiniz. Bir prosedürde bildirilen bir sabit, prosedür düzeyinde kapsama sahipken, bir modül bildirimi kapsamında bildirilen bir sabit, modül düzeyinde bir kapsama sahiptir. Adlandırılmış sabitler, değişkenlerle aynı kapsam kurallarına uyar.

Değişmez sabitleri yazma

VBA kodunda hazır bilgi dizesi sabitleri yazarken şu kuralları izleyin:

ü string sabitleri çift tırnak içine alınmalıdır (");

b boş bir dizi sabitidir (adlandırılır boş dizehükümsüz sicim veya boş sicim) aralarında hiçbir şey olmayan iki çift tırnak işaretiyle gösterilir ("");

b string sabitinin tümü aynı satırda olmalıdır.

VBA kodunda değişmez sayısal sabitleri yazarken şu kuralları izleyin:

ü sayısal sabitler yalnızca 0 ile 9 arasındaki sayısal karakterlerden oluşmalıdır;

ü sayısal bir sabit (-) işaretiyle başlayabilir ve bir ondalık nokta içerebilir;

b Sayısal sabitler için üstel notasyonu kullanabilirsiniz.

VBA, birkaç farklı formattaki tarih sabitlerini tanır; tüm tarih sabitlerini diyez işaretleri (#) arasına yerleştirmelisiniz. Aşağıdaki satırlar, VBA'nın tanıdığı bazı tarih sabiti biçimlerini göstermektedir: #2-5-97 21:17:34# #February 5, 1997 9:17:34pm# #Mag-31-97# #15 April 1997#

Bir hazır bilgi Date sabitinin hangi biçimde yazıldığına bakılmaksızın, VBA, Date sabitinin bilgi içerip içermediğine bağlı olarak, bu sabiti (sabit yazıldıktan sonra ekleme noktası satırdan kaldırıldığında) aşağıdaki iki biçimden biriyle eşleşecek şekilde yeniden biçimlendirir. zaman hakkında: #2/5/1997 9:17:34 PM# #2/5/1997# Yalnızca iki geçerli Boolean sabiti vardır: True ve False.

Bir sabitin türünü ayarlama

Adlandırılmış bir sabit bildirdiğinizde veya değişmez bir sabit kullandığınızda, VBA bu sabit tarafından temsil edilen değerin sahip olduğunu "düşünür".

sabite atanan ifadeyle en yakından eşleşen veri türü.

VBA'da bir sabitin türünü ayarlayabilirsiniz. Yazılı bir sabiti bildirmek için genel sözdizimi aşağıdaki gibidir:

sabit isim Gibi tür = değer[, isim Gibi tür = değer]

isim herhangi bir geçerli sabit addır, tip herhangi bir VBA veri türünün adıdır ve değer sabite atadığınız değerdir.

Aşağıdaki satır, belirli bir türe sahip bir sabitin doğru bildirimini gösterir:

Çift Olarak Sabit Pi = 3.14

Dahilisabitler

VBA birkaç sağlar dahili sabitler(içsel sabitler), olarak da adlandırılır önceden tanımlanmış sabitler(önceden belirlenmiş sabitler). Dahili sabit, VBA geliştiricileri tarafından tanımlanmış, adlandırılmış bir sabittir. VBA tarafından tanımlanan dahili sabitlerin tümü harflerle başlar vb Visual Basic for Applications (veya Visual Basic) dili tarafından tanımlandıklarını belirtmek için. Örneğin, sabitler vbOKOnly, vbOKİptal VBA tarafından tanımlanır. Excel 2002 dahili sabitleri harflerle başlar xl Excel tarafından tanımlandıklarını açıkça belirtmek için. Dahili sabitler sayesinde, deyim gibi bazı yerleşik VBA prosedürlerini kullanmak daha kolaydır. Mesaj Kutusu, zaten bildiğiniz ve operatör Giriş Kutusu, bu bölümde daha sonra tartışılacaktır.

Mesaj kutularını göster. Kullanıcıdan veri alma

Kullanıcıdan veri almak, onu bir değişkende saklamak ve üzerinde yapılan işlemlerin sonuçlarını görüntülemek, etkileşimli prosedürler yazmak için gereken temel unsurlardır. Etkileşimli(etkileşimli) Prosedür, kullanıcıyla iletişim kuran bir prosedürdür, yani prosedür, mesajları görüntüleyerek ve girdi alarak kullanıcıyla etkileşime girer.

İşlev Mesaj Kutusu bir mesaj kutusunun görüntülenmesi aşağıdaki sözdizimine sahiptir:

Mesaj Kutusu(Çabuk [, düğmeler ] [, Başlık ] [, YardımDosyası , Bağlam ])

argüman Çabuk Mesaj Kutusu bu dizeyi bir iletişim kutusunda görüntüler; her zaman bir argüman sağlamalıdır Çabuk, çünkü bu gerekli argüman(gerekli argüman). Argüman düğmeler (isteğe bağlı bağımsız değişken), iletişim kutusunda görüntülenecek düğmeleri ve mesajları belirten sayısal bir ifadedir. Argüman Başlık herhangi bir dize değerini (değişmez, sabit veya değişken) temsil eder. Mesaj KutusuBaşlık, İletişim kutusunun başlık çubuğunda VBA görüntülenir Mesaj Kutusu kelime " Microsoftmükemmel" . Argüman YardımDosyası - yardım dosyası Bağlam - yardım dosyasındaki bölüm. Mesaj metni parantez içine alınabilir, ancak işlev kullanıldığında parantezler isteğe bağlıdır. Mesaj Kutusu

operatör olarak kullanılır.

Kullanıcı girişi denir giriş verileri(giriş). Bir yordamın kullanıcısından girdi almak için işlevi kullanın Giriş Kutusu. İşlev(işlev), bir değer döndüren özel bir VBA prosedürü türüdür. İşlev Giriş Kutusu kullanıcıdan bir değer girmesini isteyen bir metin içeren bir iletişim kutusu ve bu değeri girmek için bir metin kutusu görüntüler. Görüntülenen iletişim kutusu Giriş Kutusu, komut düğmelerini de içerir TAMAM Ve İptal etmek.

İşlev Giriş Kutusu aşağıdaki sözdizimine sahiptir:

stringvar=GirişKutusu( Çabuk[, Başlık] [, Varsayılan] [, XPos] [, YPos] _

[, YardımDosyası, Bağlam])

Burada stringvar bir dizgiyi (veya türde bir değişkeni) depolayabilen herhangi bir değişkeni temsil eder. Sicim, veya - varyant). Argüman Çabuk herhangi bir dize değerini (değişmez, sabit veya değişken) temsil eder. Giriş Kutusu bu dizeyi bir iletişim kutusunda bilgi istemi olarak görüntüler; her zaman bir argüman sağlamalıdır Çabuk, çünkü bu gerekli argüman; diğerleri isteğe bağlıdır. Argüman Başlık için ikinci argüman Giriş Kutusu. Başlık herhangi bir dize değerini (değişmez, sabit veya değişken) temsil eder. Giriş Kutusu bu satırın metnini iletişim kutusunun başlık çubuğunda görüntüler. Argümanı atlarsanız Başlık, iletişim kutusunun başlık çubuğunda VBA görüntülenir Giriş Kutusu kelime " Microsoftmükemmel" . Argüman Varsayılan – kullanıcı başka bir dizi girmezse giriş alanında varsayılan olarak görüntülenen dize ifadesi; bu bağımsız değişken atlanırsa, giriş alanı boş olur. Argümanlar XPos Ve YPos herhangi bir sayısal ifade olabilir. Bu bağımsız değişkenler, giriş kutusunun etkin pencerede nerede görüneceğini ve iletişim kutusunun sol üst köşesinin koordinatlarını belirlemenizi sağlar: XPos – pencerenin sol kenarından yatay mesafe; YPos pencerenin üst kenarından dikey uzaklıktır. Her iki mesafe de twip cinsinden ölçülür ( tipler); bir twip, bir noktanın 1/20'sine eşittir (nokta, baskı yazı tipinin ölçüsüdür). Bir nokta bir inçin 1/72'si olduğundan, bir twip yaklaşık olarak 0,0007 inçtir. İşlev için isteğe bağlı son iki bağımsız değişken Giriş Kutusu- Bu YardımDosyası Ve Bağlam. Benzer işlev bağımsız değişkenleriyle aynı amaca sahiptirler. Mesaj Kutusu.

Adlandırılmış İşlev Bağımsız Değişkenlerini Kullanma

Fark etmiş olabileceğiniz gibi, özelliğin yardımına rağmen, isteğe bağlı bağımsız değişkenlere veya birden çok bağımsız değişkene sahip işlevlerde, sondaki virgülleri yanlışlıkla atlamak veya bağımsız değişken değerlerini yeniden düzenlemek kolaydır. Oto Hızlı (Kısa bilgi) VB editörü. Bir işlevin bağımsız değişken listesindeki bağımsız değişkenleri atlamak veya yeniden düzenlemek, tür uyuşmazlığı hatalarına neden olabilir. Hata (daha da kötüsü) algılanmayabilir. Programlama hatalarını önlemek ve isteğe bağlı argümanlara sahip fonksiyonların kullanımını kolaylaştırmak için VBA, bir argüman listesindeki değerleri belirli bir sırayla listelemeye bir alternatif sunar. Ayrıca transfer edebilirsiniz

işlev argümanı değerleri kullanılarak adlandırılmış argümanlar(adlı argümanlar) fonksiyonlar. Aşağıdaki satırlar iki ifadeyi göstermektedir Mesaj Kutusu aynı sonuca sahip olan; ilk ifade, normal bağımsız değişken numaralandırma yöntemini kullanır ve ikinci ifade, adlandırılmış bağımsız değişken yöntemini kullanır:

MsgBox AnyMsg, AnyTitle

MsgBox İstemi:=AnyMsg, Başlık:=AnyTitle

Adlandırılmış bağımsız değişkene (:=) değer atayan karakter, tam olarak aynı sıradan atama işleci (=) değildir. Adlandırılmış bir bağımsız değişkene bir değer atarken iki nokta üst üste (:) işaretini atlarsanız, VBA mutlaka bir sözdizimi hatası algılamaz, ancak ifadeyi doğru şekilde yorumlamayabilir. VBA bu ifadeyi yürüttüğünde, birkaç olası çalışma zamanı hatasından birini, genellikle bir tür uyuşmazlığı hatası görüntüler.

Aynı işlev çağrısında adlandırılmış bağımsız değişkenleri normal bir bağımsız değişken listesiyle karıştıramazsınız. Her bir işlev çağrısı için adlandırılmış bağımsız değişkenler veya normal bağımsız değişkenler listesi kullanmalısınız.

Görev 5. Bir çemberin alanını hesaplayan, ancak çemberin yarıçapını prosedürün kullanıcısından alan bir prosedür yazın.

Bunun için:

Prosedürü girin (Liste 7):

Liste 7 – Operatörü kullanarak giriş verilerini almaGiriş Kutusu

    Sabit Pi As Single =3.14" pi değeri yaklaşımı

    Dim CircleArea As Single " daire 3'ün hesaplanan alanını kaydeder

4 Alt Liste3_07()

    Const BoxTitle = "Daire alanı"!}

    Tek Olarak Kısma Yarıçapı, Dize 7 Olarak Sıcaklık

    Temp = InputBox("Yarıçapı Girin" & Chr(13) & "daire", BoxTitle)

    Yarıçap = CSng(Sıcaklık)

    CircleArea = Pi * Yarıçap * Yarıçap

    MsgBox CircleArea, vbInformation + vbOKCancel, BoxTitle

Liste 7'nin 1. ve 2. satırları bir sabit bildirir pi ve değişken daire alanı modüler seviye. Satır 4, gerçek prosedür bildirimini içerir. Satır 5, prosedürel bir seviye sabiti bildirir Kutu Başlığı; bu sabitin prosedürde yalnızca yerel erişimi vardır Liste3_07. 8. satırda, ifade işlevi çağırır Giriş Kutusu. İlk bağımsız değişkenini bir iletişim kutusunda metin olarak görüntüleyerek kullanıcıdan bir tür değer girmesini ister. Bu operatörde Giriş Kutusu "Çemberin yarıçapını girin" metnini görüntüler (Chr(13) işlevi, Yeni hat) yordamın kullanıcılarına hangi değeri girmeleri gerektiğini söylemek için. Giriş Kutusu ikinci argümanı kullanır,

12 Son Alt

bir sabit ile temsil edilir Kutu Başlığı, iletişim kutusunun başlığı olarak. ifadeyi yürütürken Giriş Kutusu bir iletişim kutusu görüntülenir (Şek. 16)

dairenin alanı

Çemberin yarıçapını girin

Pirinç. 16 Kullanıcı metin kutusuna bir sayı girer ve bir komut düğmesi seçer TAMAM veya İptal etmek diğer Windows pencereleri gibi iletişim kutusunu kapatmak için. Herhangi bir işlevi her çağırdığınızda, işlev tarafından döndürülen değeri bir şekilde kullanmanız gerekir. Bir fonksiyonun döndürdüğü değere denir fonksiyon sonucu(işlev sonuç). Fonksiyon durumunda 8. satırda gösterildiği gibi Giriş Kutusu sonucu bir değişkene atanan Sıcaklık. fonksiyon sonucu Giriş Kutusu her zaman bir dizedir (bu yüzden değişken Sıcaklık olarak ilan edildi Sicim). değişken beri Sıcaklık olarak açıkça beyan edilmiştir. Sicim, matematiksel hesaplamalarda kullanılabilmesi için dize değerinin sayısal bir değere dönüştürülmesi gerekir. Liste 7'nin 9. Satırı, yerleşik VBA işlevini kullanarak tam da bunu yapar csng kullanıcı girişini bir dizi türe dönüştürmek için Single.

ifadelerGörselTemel

İfade(ifade) tek bir değeri ifade eden bir değer veya değerler grubudur. her ifade kadar hesaplanmış(veya sonuçlanır) ayrı bir değer. İfadeler, aşağıdaki parçalardan bir veya daha fazlasından oluşur: sabitler (gerçek veya adlandırılmış), değişkenler (herhangi bir veri türünden), işlem işaretleri, diziler, dizi öğeleri, işlevler.

Tüm ifadeler, belirli bir veri türünün tek bir değeriyle sonuçlanır. İfadeler ayrıca özel değerlerden biriyle sonuçlanabilir. Boş(başlatılmamış bir tür değişkeni varyant veya başlatılmamış bir tür değişkeni içeren bir ifadenin sonucu varyant) veya Hükümsüz(Hükümsüz geçersiz veri içeren bir ifadeyi temsil eder). Bir ifadede herhangi bir karakter kullandığınızda, üzerinde işlem yapılan veri öğeleri (değişkenler veya sabitler) çağrılır. işlenenler(işlenenler); çoğu işlem iki işlenen gerektirir.

Veri türü uyumluluğu. Otomatik veri dönüştürme

Tüm veri türleri birbiriyle uyumlu değildir ve uyumsuz veri türlerini aynı ifadede kullanamazsınız. Örneğin, bir dizenin bir sayıya aritmetik olarak eklenmesi mantıklı değildir, çünkü böyle bir ifade anlamlı değildir ve VBA bunu değerlendiremez.

Birçok veri türü birbiriyle uyumludur. Örneğin, şunları yapabilirsiniz:

farklı sayısal veri türlerini aynı ifadede birleştirin; VBA, çeşitli sayısal türlerde gerekli tür dönüşümlerini otomatik olarak gerçekleştirir. VBA ayrıca bazen diğer veri türlerini otomatik olarak dönüştürebilir, böylece bu her zaman mümkün olmasa da bir ifadedeki tüm türler uyumludur. Bir ifadenin türünü kontrol etmek ve bilmek çok önemlidir, çünkü ifadeler uyumsuz türler içeriyorsa, VBA bir çalışma zamanı hatası - bir hata verir. tür uyumsuzlukları(tip- uyumsuzluk). Farklı veri türlerini içeren bir ifadeyi işlerken, VBA önce ifadedeki değerleri uyumlu veri türlerine dönüştürerek herhangi bir tür farkını çözmeye "girer". Tür dönüştürme herhangi bir farkı çözemezse, bir çalışma zamanı hatası görüntülenir ve yordamın yürütülmesi durur. Örneğin, 25 & "Bilgisayar Bilimi" ifadesinde VBA, değişken türlerinden bağımsız olarak her zaman dizi birleştirme (iki diziyi birleştirir) gerçekleştirir; sonuç tür Sicim; bu ifade hiçbir zaman bir tür uyuşmazlığı hatası oluşturmaz.

VBA tipik olarak bir ifadedeki tüm sayısal veri türlerini en yüksek kesinliğe sahip türe dönüştürür ve ardından bu türü ifadenin sonucuna verir. Örneğin, ifade türleri olan sayısal değerler içeriyorsa tamsayı Ve Bekar, ifadenin sonucu bir türdür Bekar– bu ifadedeki en yüksek kesinliğin türü. Sayısal bir ifadenin sonucunu, ifadenin sonucunun gerçek türünden daha az kesinliğe sahip bir değişkene atarsanız, VBA, kesinliği beklenen türle eşleşene kadar ifadenin sonucunu yuvarlar. Örneğin, şuna benzer bir sayıyla sonuçlanan bir sayısal ifade atarsanız: Çift, tip değişkeni tamsayı, Yazmak için VBA yuvarlak çift duyarlıklı sayı tamsayı.

Bir sayıyı bir dizeye dönüştürürken, VBA o sayının tüm basamaklarını ve bir ondalık noktayı (sayıda bir tane varsa) içeren bir dize oluşturur. Örneğin, 3413.72 sayısı (kodda bir sayı yazmak için nokta kullanılır), "3413.72" dizisine dönüştürülür. Sayı çok büyük veya çok küçükse, VBA, sayının bilimsel gösterimde dize gösterimini oluşturabilir; örneğin, 0.0000000004927 sayısı "4.927E-11" dizisine dönüştürülür.

Dize, sayının ondalık veya üstel biçimde karakter temsilini içerdiği sürece, VBA yalnızca bir dizeyi sayıya dönüştürebilir. "988.6", "812", "-186.7", "1,3E10" dizileri sayıları temsil eder ve VBA bunları sayılara dönüştürebilir. "1.045", "74.550$" ve "Günaydın!" sayılara dönüştürülemez.

VBA tür değerlerini dönüştürdüğünde boole sayılara, anlam Doğru 1'e dönüştürülür ve değer YANLIŞ– 0'a. VBA bir sayıyı bir türe dönüştürdüğünde boole, sıfır dönüştürülür YANLIŞ ve diğer herhangi bir değer şuna dönüştürülür: Doğru. VBA tür değerlerini dönüştürdüğünde boole dizelere, VBA "True" dizesini kullanır. Doğru ve "Yanlış" için YANLIŞ.

VBA ne zaman bir veri türünü dönüştürür? Tarih bir sayıya, sonuç sayısal bir değerdir - bir sayı türü Çift 30 Aralık 1899'dan bu yana geçen günlerin sayısını içerir (negatif bir sayı, 12/30/1899'dan önceki bir tarihi gösterir). Sayının ondalık kısmı (varsa), saatin bir parçası olarak günün saatini ifade eder.

gün; 0 gece yarısı ve 0.5 öğlen. VBA'da sayısal veri türlerini türlere dönüştürme Tarih tür dönüştürmenin tam tersidir Tarih numaraya.

Atama operatörü (=)

Bu işleç, bir ifadenin sonucunu bir değişkene atamak için kullanılır. Atama operatörü formunun sözdizimi aşağıdaki gibidir:

varname = ifade

değişken varname - herhangi bir değişken, bir ifade - herhangi bir ifade

Bir atama deyimini yürütürken, VBA önce atama deyiminin (=) sağındaki ifadeyi değerlendirir ve sonra ifadenin sonucunu atama deyiminin solunda adı olan değişkende saklar.

Atama operatörünün akış şemasındaki görüntüsü:

varname = ifade

Bir ifadenin sonucunu, belirli bir veri türündeki bir değişkene atadığınızda, bu sonuç, yeni değeri alan değişkenin türüyle uyumlu bir veri türü olabilir. Çoğu durumda, VBA, bir ifadenin sonucunun veri türünü, ifadenin sonucunun ve değişkenin önceden uyumlu türleri yoksa, yeni değeri alan değişkenin türüyle uyumlu bir türe dönüştürebilir. Değişken tipi varyant herhangi bir veri türü atanabilir.

Aritmetik işlemler

VBA, tüm olağan aritmetik işlemleri gerçekleştirebilir (aritmetik ifadelerle gerçekleştirilir): toplama, çıkarma, çarpma ve bölmenin yanı sıra sayıları belirli bir güce yükseltme ve tamsayı bölme ve modulo bölme için ek özel matematik işlemleri sağlar (Tablo 11). .

Tablo 11- VBA aritmetik ifadelerinde kullanılan operatör işaretleri (notasyonlar) (Ni, geçerli herhangi bir VBA sayısal ifadesidir)

İmza

Sözdizimi

Ad/Açıklama

Ek. N1'den N2'ye ekler

Çıkarma. N2'yi N1'den çıkarır

Çarpma işlemi. N1'i N2 ile çarpar

Bölüm. N1'i N2'ye böler.

Tamsayı bölümü. N1'i N2'ye böler ve herhangi bir kesirli kısmı atarak sonucun bir tamsayı olmasını sağlar.

Modulo bölümü. N1'i N2'ye bölerek yalnızca bölme işleminin geri kalanını döndürür.

Üs alma. N1'i N2'nin gücüne yükseltir.

Her iki işlenen de VBA'nın bir sayıya dönüştürebileceği sayısal ifadeler veya dizeler olmalıdır.

Karşılaştırma işlemleri

Karşılaştırma işlemleri bazen ilişki işlemleri(ilişkisel operatörler). Çoğu zaman, karşılaştırma işlemleri, bir karar verme kriterlerini belirlemek veya bir talimat grubunun tekrarlanması gereken koşulların bir tanımını formüle etmek için kullanılır (döngü).

Herhangi bir karşılaştırma işleminin sonucu, türünde bir değerdir. boole: Doğru veya YANLIŞ. Karşılaştırma işleçleri, herhangi bir benzer türdeki hazır bilgi, sabit veya değişken değerleri karşılaştırmak için kullanılır (Tablo 12).

Ad/Açıklama

eşitlik. Doğru , EğerElE2'ye eşittir, aksi halde -YANLIŞ

Daha az. Doğru , EğerElE2'den daha az, aksi halde -YANLIŞ

Az veya eşit.Doğru E1 küçük veya eşit ise

E2, aksi takdirde -YANLIŞ

Bundan fazla. Doğru , eğer E1, E2'den büyükse, aksi halde -YANLIŞ

Büyüktür veya eşittir.Doğru E1 büyük veya eşitse

E2, aksi takdirde -YANLIŞ

Eşit değil.Doğru, eğer E1, E2'ye eşit değilse, aksi halde - YANLIŞ

Nesne. Doğru El ile aynı nesneyi ifade ediyorsa E2, aksi takdirde -YANLIŞ Benzerlik. Her iki işlenen de türde olmalıdır

Tablo 12– Karşılaştırma işlemlerinin işaretleri (notasyonu) (bu tablodaki E herhangi bir geçerli VBA ifadesini temsil eder)

Operasyon/Şebeke

Sözdizimi

F

örnek,

Sicim. Doğru, eğer El eşleşirse

İkili ve metin dizesi karşılaştırması

VBA, farklı vaka karakterlerini karşılaştırmak için iki farklı yol sağlar. VBA'nın dizeleri karşılaştırmak için kullandığı ilk yönteme denir. ikili (ikili) veya ikili karşılaştırmadır ve varsayılan karşılaştırma yöntemidir. VBA'da bulunan dizi karşılaştırma yöntemini (ikili veya metin) seçmek için yönergeyi kullanın. SeçenekKarşılaştırmak:

Seçeneği Karşılaştır [ İkili | Metin]

Bir metin karşılaştırmasında, VBA büyük harfleri küçük harflere eşdeğer olarak "davranır".

Dize birleştirme

VBA size daha uzun diziler oluşturmak için dizeleri birleştirme (yapıştırma) yeteneği verir. Bir diziyi diğerine birleştirme denir birleştirme(birleştirme) çizgiler. & işareti yalnızca dizi birleştirme için kullanılabilir. & işaretinin genel sözdizimi şöyledir:

işlenen1 & işlenen2 [& işlenen3… ]

işlenen1 Ve işlenen2 – herhangi bir geçerli dize veya sayısal ifade. İşlenenlerden biri veya her ikisi de sayısal ifadelerse, VBA birleştirme işlemini gerçekleştirmeden önce sayıları dizelere dönüştürür. Dize birleştirme sonucunun veri türü her zaman türdür Sicim.

Mantıksal operatörler

VBA mantıksal ifadelerinin en yaygın kullanımı, bir prosedürde karmaşık karar kriterleri oluşturmak için bireysel karşılaştırma ifadelerinin sonuçlarını birleştirmek veya bir grup ifadenin tekrarlanması gereken koşullar yaratmaktır (Tablo 13).

Tablo 13– Boole işleçleri (bu tablodaki E, karşılaştırma işlemi gibi Boole sonucu olan herhangi bir geçerli ifadeyi temsil eder)

Operatör Sözdizimi Adı/Açıklaması

Ve El Ve E2 Bağlaç. Doğru hem E1 hem de E2'nin bir değeri varsa

Doğru , aksi takdirde -YANLIŞ Veya El Veya E2 Ayrılık. Doğru eğer bir ifade veya her ikisi (E1 ve

E2) eşittirDoğru ; aksi takdirde -YANLIŞ El Değil olumsuzlama. Doğru E1 önemliyse YANLIŞ; YANLIŞ,

EğerEleşittirDoğru

İstisna. Doğru E1 ve E2 farklıysa

değerler; aksi takdirde -YANLIŞ

denklik. Doğru E1 aynı ise

E2 olarak değer; aksi takdirde -YANLIŞ

ima. YANLIŞ E1 eşit olduğunda Doğru Ve

E2YANLIŞ ; aksi takdirde -Doğru .

Karmaşık İfadeleri Değerlendirirken İşlem Öncelikleri

karmaşık(kompozit) ifade(karmaşık ifade) iki veya daha fazla ifadeden oluşan herhangi bir ifadedir. Yazdığınız ifadelerin çoğu, özellikle prosedürlerdeki kod yürütme sırasını kontrol ediyorlarsa veya çeşitli matematiksel formülleri temsil ediyorlarsa, karmaşık ifadelerdir (Tablo 14).

Tablo 14– En yüksek öncelikten en düşük önceliğe operatörler/işlemler hiyerarşisi

Operatör/işaret Açıklamaları

üs alma, en yüksek öncelik

tekli eksi

Çarpma ve bölme eşit önceliğe sahiptir; ifadede soldan sağa göründükleri gibi değerlendirilirler

Toplama ve çıkarma eşit önceliğe sahiptir; ifadede soldan sağa göründükleri gibi değerlendirilirler

Herhangi bir dize birleştirme, ifadedeki herhangi bir aritmetik işlemden sonra ve herhangi bir karşılaştırma veya karşılaştırma işleminden önce gerçekleştirilir. mantıksal işlemler

<, <=, >, >=,

gibi, =,<>, Dır-dir

Tüm karşılaştırma işleçleri eşit önceliğe sahiptir ve ifadede soldan sağa doğru değerlendirilir. İfadelerde karşılaştırma işleçlerini gruplandırmak için parantez kullanın

İşlevleri kullanmaVisual Basic

Yerleşik VBA işlevlerini zaten kullandınız: Giriş Kutusu Ve Mesaj Kutusu. İşlev(işlev), ifadeler üzerinde çalışan ve bir değer üreten yerleşik bir formüldür. Bir işlev her zaman, işlev adının göründüğü noktada VBA'nın programa eklediği bir değer döndürür. VBA işlevleri, gerçekleştirdikleri işlem veya hesaplama türüne göre birkaç gruba ayrılır. terimleri karıştırmayın işlev Ve prosedür. Tipik olarak, bir yordam belirli bir görevi (veya görev grubunu), Excel, Word veya başka bir uygulamadaki belirli bir menü komutunun belirli bir görevi gerçekleştirdiği şekilde gerçekleştirir. Bir işlev, bir veya daha fazla değer üzerinde çalışır ve bazı sonuç değerleri döndürür (Excel çalışma sayfası hücresindeki bir formül gibi). Bir işlevi kullanmak için, işlevin gerektirdiği tüm bağımsız değişkenlerle birlikte, işlevin sonucunu kullanmanız gereken ifadedeki noktaya işlevin adını bir VBA ifadesine girmeniz yeterlidir. İşlevi çağırmak için bir VBA deyimine bir işlev adı koymak denir meydan okumak(arama) fonksiyonlar.

Yerleşik VBA işlevleri, işlevlerin genel amacına göre (matematik, veri dönüştürme, tarih ve saat, dizi ve disk işleme) birkaç kategoriye ayrılır.

Matematik fonksiyonları

VBA, standart bir dizi matematiksel işlev sağlar (Tablo 15). Tablo 15– VBA matematik işlevleri (N, herhangi bir sayısal ifade anlamına gelir)

iade/eylem

fonksiyonlar(ar-

gumentler)

mutlak değeri döndürürN

karın kası(N)

bir açının kosinüsüN, NeredeN

Çünkü(N)

Bir açının sinüsünü döndürür;Nradyan cinsinden ölçülen açıdır

Günah(N)

Bronzlaşmak(N)

Bir açının tanjantını döndürür;N- radyan cinsinden açı

atn(N)

ark teğetini döndürürNradyan cinsinden bir açı olarak

bir sabit döndürür e, kuvvet N'ye yükseltildi ( e doğal logaritmaların temelidir ve (yaklaşık olarak) 2,718282'ye eşittir)

N'nin tamsayı kısmını döndürür. Düzeltme, sayıyı yuvarlamaz, ancak herhangi bir kesirli kısmı atar. N negatifse, Fix en yakın negatif tamsayıyı döndürür büyük veya eşitN

Kayıt(N)

N'nin tamsayı kısmını döndürür. Int, sayıyı yuvarlamaz, ancak herhangi bir kesirli kısmı atar. N negatifse, Int en yakın negatif tamsayıyı döndürür az veya eşitNDoğal logaritmayı döndürürN

rastgele

argüman

dır-dir

İadeler

isteğe bağlı. Rnd işlevini yalnızca şu durumlarda kullanın:

operatör tarafından VBA rasgele sayı üretecinin başlatılması

Rastgele yap

Bir sayının işaretini verir: N negatifse -1; 1 eğer N ise

pozitif; 0 eğerN0

N'nin karekökünü döndürür. VBA bir hata görüntüler

yürütme süresi, eğerN- olumsuz

Veri dönüştürme işlevleri

Visual Basic, bir veri türünü diğerine dönüştürmek için çeşitli işlevler sağlar (Tablo 16). Tür uyuşmazlığı hatalarını çözmek ve ifadelerdeki veri türleri üzerinde açık denetim sağlamak için bu işlevleri kullanın.

Tablo 16– Veri dönüştürme işlevleri (N herhangi bir sayısaldır, S herhangi bir dizedir ve E herhangi bir ifade türüdür)

İşlev(ar- İade/Eylemgumentler)

İlk harfe karşılık gelen karakter kod numarasını döndürür çizgilerS. Örneğin "A" harfinin karakter kodu 65'tir.

işlev(argümanlar)

iade/eylem

0 ile 255 (dahil) arasında bir sayı olması gereken N karakter koduna karşılık gelen tek bir karakter dizisi döndürür. Örneğin karakter kodu 65, "A" harfini döndürür (Chr(13) bir satır başı karakteridir, Chr(10) bir satır kaydırma karakteridir)

S'de yer alan talimatlara göre biçimde, E ifadesiyle temsil edilen değeri içeren bir dize döndürür.

N'nin onaltılık gösterimini içeren bir dize döndürür

Oct(N) N'nin sekizlik temsilini içeren bir dize döndürür

türünde bir tamsayı döndürür Uzun Görüntünün ana renklerinin değerini temsil eden A. Her bağımsız değişkendeki N, 0 - 255 (dahil) aralığında bir tamsayı olmalıdır. Argümanlar (soldan sağa) kırmızı, yeşil ve mavinin değerleridir.

Str(N) N sayısal ifadesinin eşdeğer dizesini döndürür

Yalnızca basamak ve bir ondalık nokta içermesi gereken S dizisi tarafından temsil edilen sayıya karşılık gelen sayısal değeri döndürür, aksi takdirde VBA bunu bir sayıya dönüştüremez. VBA, dizeyi S'ye dönüştüremezse, Val işlevi 0 döndürür

CBool(N) N sayısal ifadesinin Boole eşdeğerini döndürür

bayt(0'dan 255'e kadar); E, bir sayıya dönüştürülebilen herhangi bir geçerli sayısal veya dize ifadesidir.

Sayısal bir tür değeri döndürür Para birimi

türünde bir değer döndürür Tarih. E, aralıktaki bir tarihi temsil eden herhangi bir geçerli ifade (dize veya sayı) olabilir. 1/1/100 12/31/9999 , dahil

Sayısal bir tür değeri döndürür Çift, bir sayıya dönüştürülebilir

Sayısal bir tür değeri döndürür tamsayı; E, bir sayıya dönüştürülebilen herhangi bir geçerli sayısal veya dize ifadesidir.

Sayısal bir tür değeri döndürür Uzun; E, bir sayıya dönüştürülebilen herhangi bir geçerli sayısal veya dize ifadesidir.

işlev(argümanlar)

iade/eylem

Sayısal bir tür değeri döndürür Bekar; E, bir sayıya dönüştürülebilen herhangi bir geçerli sayısal veya dize ifadesidir.

türünde bir değer döndürür Sicim; E - herhangi bir geçerli sayısal veya dize ifadesi

türünde bir değer döndürür varyant; E - herhangi bir geçerli sayısal veya dize ifadesi

Tarih ve saat işlevleri

VBA tarih ve saat işlevleri, geçerli tarih ve saati almak, bir tarih değerini bileşen parçalarına bölmek veya dizeleri ve sayıları türdeki değerlere dönüştürmek için yaygın olarak kullanılır. Tarih(Tablo 17).

Tablo 17– Tarih ve saat işlevleri (N herhangi bir geçerli sayısal ifadedir ve D, aşağıdaki gibi herhangi bir geçerli ifadedir) Tarih(gibi değerler dahil Tarih, sayılar veya VBA'nın tarihe dönüştürebileceği dizeler); aksi belirtilmedikçe tüm işlev bağımsız değişkenleri gereklidir)

iade/eylem

fonksiyonlar(ar-

gumentler)

Sistem tarihini döndürür. Bu işlevi, bilgisayarın sistem saatini ayarlamak için bir prosedür olarak da kullanabilirsiniz. Yardımda daha fazla ayrıntı bulunabilir sistemlerVBA

Bilgisayarın sistem saatini bir tür değeri olarak döndürür Tarih. Bu işlevi, sistem saatini ayarlamak için bir prosedür olarak da kullanabilirsiniz. Daha fazla ayrıntı bulunabilir itibaren yardım sistemi VBASistem tarihini ve saatini döndürür

Tarih Ve

Bir tür ifadesinin parçası olan bir tamsayı döndürür Tarih,

dahil

Bir tür ifadesinin parçası olan bir tamsayı döndürür Tarih Ve

Hafta içi(D) Saat(D)

dahil

Bir tür ifadesi için haftanın gününü içeren bir tamsayı döndürür

Tarih. Haftanın günü 1 ile 7 arasında bir sayı olarak döndürülür,

dahil; 1 Pazar, 2 Pazartesi vb.

Zamanın bir parçası olarak saatleri içeren bir tamsayı döndürür,

0 ile 23 (dahil) arasında bir sayı. D ifadesi değilse

zaman değerlerini içerir, ardındanSaat0 döndürür

fonksiyonlar(ar-gumentler)

TarihEkle(S, N, D)

DateSerial(N, N, N)

ZamanSeri(N, N, N)

iade/eylem

Zamanın bir parçası olarak dakikaları içeren bir tamsayı döndürür.

tip ifadesi Tarih. Dakika 0 arasında bir sayı olarak döndürülür

ve 59, dahil. D ifadesi bir değer içermiyorsa

zamanDakika0 döndürür

Zamanın bir parçası olarak saniye içeren bir tamsayı döndürür.

tip ifadesi Tarih. Saniyeler arasında bir sayı olarak döndürülür

0 ve 59 dahil. D ifadesi bir değer içermiyorsa

zamanSaniye0 döndürür

Değeri döndürür [tür varyant(Tarih)], tarihi içeren

DateDiff(S, D1, Değer döndürür [tür varyant(Uzun)] geçici sayı D2[,Nl [, N2 ]]) iki belirli tarih arasındaki aralıklar DatePart(S, D, [, Belirtilen kısmı [türünü döndürür) varyant(tamsayı)] N1 [, N2]]) verilen tarih

verilen zaman aralığının eklendiği

Verilen tarih için sıralı tarih değerini döndürür. Soldan sağa bağımsız değişkenler yılı, ayı ve günü temsil eder. Yıl bağımsız değişkeni 100 ile 9999 arasında, aylar 1 ile 12 arasında, günler 1 ile 31 arasında bir tam sayı olmalıdır (tüm aralıklar dahil)

Bir seri zaman değeri döndürür. Soldan sağa bağımsız değişkenler saatleri, dakikaları ve saniyeleri temsil eder. Saat bağımsız değişkeni, 0 ile 23 arasında bir tamsayı olmalıdır, bağımsız değişkenler dakika ve saniyenin her ikisi de 0 ile 59 arasında birer sayı olmalıdır türünde bir değer döndürür Tarih, bir dize, sayı veya olması gereken E bağımsız değişkeni tarafından verilen tarihe eşdeğerdir. bir tarihi temsil eden bir sabit

bilgisayarın sistem saatine göre gece yarısı Bu işlevlerden bazıları bu kitaptaki örneklerde zaten kullanılmıştır, diğerleri daha sonra kullanılacaktır.

Dize İşlevleri

VBA dizi işlevleri genellikle diğer diziler içinde verilen dizileri bulmak, bir diziyi diğeriyle karşılaştırmak ve dizilerin seçilen bölümlerini kopyalamak için kullanılır (Tablo 18).

türünde bir değer döndürür Tarih E bağımsız değişkeni tarafından belirtilen ve bir dize, sayı veya sayı olabilen zamanı içeren A zamanı temsil eden bir sabit saniye sayısını temsil eden bir sayı döndürür.

Tablo 18– Dize işlevleri (N, herhangi bir geçerli sayısal ifadedir ve S, herhangi bir geçerli dize ifadesidir)

gument)

S2'nin S1'deki konumunu döndürür. N1 başlangıç ​​konumudur

aramak; N2, karşılaştırma türünü tanımlar. N1 ve N2 isteğe bağlıdır. N2 atlanırsa, akım kurulumSeçenek Karşılaştırmak InStrRev(Sl, S2 S2 dizisinin S1 içinde göründüğü konumu döndürür

[, Nl[, N2]]) LCase(S)

Len(S) LTrim(S)

Boşluk(N) StrComp(Sl, S2, N)

sonundan (veya N1) dizinin başına doğru. N2, karşılaştırma türünü tanımlar. N2 atlanırsa, arama şunu kullanır: mevcut kurulumSeçenek Karşılaştırmak

Bir dize döndürür (tür Sicim) tüm büyük harflerin karakterlere dönüştürüldüğü S'nin bir kopyasını içerir küçük harf

Bir dize döndürür; soldan başlayarak S'den N karakter kopyalar aşırı karakterS

Baştaki ve sondaki dahil olmak üzere S'deki karakter sayısını döndürür boşluklar

dizenin sol tarafından (öndeki boşluklar) Bir dize döndürür; N1 bağımsız değişkeni tarafından belirtilen S'deki karakter konumundan başlayarak S'den N2 karakterleri kopyalar. N2 isteğe bağlıdır; N2 atlanırsa Orta tümünü döndürür bir dizideki karakterlerSpozisyondanN1 satırın sonuna kadar String türünde bir değer döndürür; S'den N karakter kopyalar,

en sağdaki karakterden başlayarakS

Boşluk karakterlerini çıkardıktan sonra S dizisinin bir kopyasını döndürür

dizenin sağ tarafından (terminal karakterler)

Uzunluktaki boşluklardan oluşan bir dizi döndürürNkarakterler

S1 ile S2'yi karşılaştırır ve karşılaştırmanın sonucunu gösteren bir sayı döndürür: SI ise -1< S2; 0, если SI = S2; 1, если SI >S2. N isteğe bağlıdır ve karşılaştırmanın büyük/küçük harfe duyarlı olup olmayacağını belirtir. N atlanırsa, dizeler geçerli ayar kullanılarak karşılaştırılır. SeçenekKarşılaştırmak

dönüştürülen bir dize döndürür yeni form N bağımsız değişkeni tarafından belirtilen sayısal koda bağlı olarak VBA, StrConv işleviyle kullanım için dahili sabitler sağlar; en kullanışlı olanları: vbProperCase(bir dizeyi, bir kelimeyi başlatan her harf büyük olacak şekilde dönüştürür), vbAlt Harf(dizeyi küçük harflere dönüştürür) ve vbUpperCase(dizeyi büyük harflere dönüştürür)

İşlev(ar- İade/Eylemgument)

String(N, S) Karakterden oluşan N karakter uzunluğunda bir dizi döndürür

ilk karakter tarafından verilirS Kırp(S) S dizisinin baştaki ve sonrasındaki bir kopyasını döndürür ve

bu dizeden sondaki boşluk karakterleri UCase(S) S'yi tüm küçük harflerle döndürür,

büyük harf karakterlere dönüştürülür Birkaç Tabloda listelenmiştir. 16 veri türü dönüştürme işlevi ayrıca dizi işleme için de geçerlidir: Özellikle Chr, Format, CStr.

Veri Değerlerini Biçimlendirme

VBA, MsgBox işleviyle görüntülemek veya bir Excel çalışma sayfasına eklemek için her tür veriyi otomatik olarak bir dizeye dönüştürebilse de, VBA'nın seçtiği veri biçimi istediğiniz gibi olmayabilir. Bir sayıyı bir dizeye dönüştürürken, VBA dizeye binlik ayırıcı, dolar işareti veya diğer sayısal biçimlendirme eklemez. Ayrıca, sayı çok büyük veya çok küçükse, VBA sayıyı üstel biçimde temsil eden bir dize oluşturur. Tarihleri ​​dönüştürürken, VBA her zaman bilgisayarın işletim sistemi tarafından kullanılan kısa tarih ve saat biçimini kullanır ve her zaman hem tarih hem de saati görüntüler.

Sayıları veya tarihleri ​​dizelere dönüştürürken hemen hemen her tarih biçimini elde etmek için işlevi kullanabilirsiniz. Biçim; işlevi bile kullanabilirsiniz Biçim dize verilerini belirli bir kalıba göre biçimlendirmek için. Verilerin belirli bir biçimde görünmesine ihtiyacınız varsa, özel ekran biçimleri de oluşturabilirsiniz. Biçim operatörünün sözdizimi şöyledir:

Biçim( ifade [, Biçim[, Haftanın ilk günü [, yılın ilk haftası]]])

ifade – herhangi bir geçerli ifade (zorunlu); Biçim – geçerli bir adlandırılmış veya kullanıcı tanımlı biçim ifadesi (isteğe bağlı); Haftanın ilk günü – haftanın ilk gününü belirten bir sabit (isteğe bağlı); yılın ilk haftası – yılın ilk haftasını belirten bir sabit (isteğe bağlı).

argümanlar için Haftanın ilk günü Ve yılın ilk haftası VBA, Tarih Sabitleri altında VBA yardım sisteminde öğrenebileceğiniz adlandırılmış sabitlere sahiptir.

işlevi kullanmak için Biçim, önceden tanımlanmış bir biçim belirtebilirsiniz (adlandırılır adlandırılmış biçim(adlı biçim) veya adı verilen özel bir karakter grubunun kombinasyonlarını kullanarak belirli bir biçimde bir görüntü oluşturun. yer tutucular(yer tutucular). Sayılar, tarihler veya saatler için özel biçimler oluşturmanız gerekirse, işlevin kullanması gereken biçim görüntüsünü belirtmek için yer tutucu karakterler içeren bir dize oluşturmanız gerekir. Biçim değerleri bir diziye dönüştürürken (Tablo 19). Ek olarak, Tabloda. 19 kullanılmış

örnek olarak, sayısal değer 1234.5'tir.

özel oluşturmak için

Tablo 19– Yer tutucuları biçimlendirin

yer tutucu karakter

Aksiyon

Sayısal karakter, o konumda bir rakam varsa bir rakam, yoksa 0 gösterir. Tamsayılar için baştaki sıfırları ve ondalık sayılar için sondaki sıfırları görüntülemek için 0 karakterini kullanabilirsiniz; 00000.000 00124.500 görüntüler

Sayısal karakter, o konumda bir rakam varsa gösterir, aksi halde hiçbir şey göstermez. Dolgu karakteri #, baştaki ve sondaki sıfırların görüntülenmemesi dışında 0'a eşdeğerdir; #####.###, 1234.5'i görüntüler

$ Bir dolar işareti görüntüler; $###,###.00, 1.234,50 $ görüntüler

Ondalık yer tutucu, ondalık noktayı yer tutucu dizgisi 0'da belirtilen konumda görüntüler; #.##.##, 1234.5'i görüntüler

Yüzde karakteri, değeri 100 ile çarpar ve 0 yer tutucuları ile gösterilen konuma bir yüzde işareti ekler; #0.00% 0,12345 sayısını %12,35 olarak görüntüler (12,345, 12,35'e yuvarlanır)

, (virgül)

Binlik ayırıcı, 0 ve # yer tutucu karakter dizilerinde binlik ayırıcı olarak virgül ekler; ###,###,###. 00 1.234,50 görüntüler

Değerleri yalnızca negatif değerler için üs işaretiyle üstel biçimde görüntüler; #.#### E00 1.2345E03'ü görüntüler; 0,12345, 1,2345E-01 olarak görüntülenir

Değerleri, pozitif ve negatif değerler için bir üs ile üstel biçimde görüntüler; #.#### E+00 1.2345E+03'ü görüntüler

Tarih değerlerini biçimlendirmek için günü, ayı ve yılı ayırır. mm/ dd/ yy 06/06/97'yi görüntüler. "/" karakterleri, 06-06-97 olarak görüntülenmesi için tire karakterleriyle değiştirilebilir

Ayların tarihlerde nasıl görüntüleneceğini belirtir; M 2 görüntüler, mm– 02, hmmm– şubat mmmm- Şubat

Günlerin tarihlerde nasıl görüntüleneceğini belirtir; D 1 görüntüler, dd 01'i görüntüler, gdd– Cum, dddd- Cuma

y Yılın gününü 1 ile 366 arasında bir sayı olarak görüntüler.

Yılların tarihlerde nasıl görüntüleneceğini belirtir; yy 99 görüntüler, uuuu– 1999

Yılın çeyreğini 1 ile 4 arasında bir sayı olarak görüntüler

Haftanın gününü bir sayı olarak görüntüler (1, Pazar'dır)

Yılın haftasını 1 ile 54 arasında bir sayı olarak görüntüler

yer tutucu karakter

Aksiyon

: (iki nokta üst üste) Saat, dakika ve saniyeleri saat biçimi değerlerinde ayırır; hh: mm: ss 02:02:02 görüntüleniyor

Saatin nasıl görüntüleneceğini belirtir; zaman değeri için 02:01:38 H 2 görüntüler, hh 02 görüntüler

Zaman için dakika yer tutucusu; zaman değeri için 02:01:08 N 1 görüntüler ve nn 01 görüntüler

Zaman için saniye yer tutucusu; zaman değeri için 02:01:08 S 8 görüntüler ve ss 08 görüntüler

Saati, AM ve PM eklenmiş olarak 12 saatlik formatta görüntüler; H: nnAM/PM 16:00'yı gösterir. Alternatif biçimler arasında am/pm, A/P ve a/p bulunur

Karakter yer tutucu, biçimlendirilmekte olan dizide eşleşen bir karakter yoksa bir boşluk görüntüler (varsayılan doldurma sırası sağdan soladır)

Tüm karakterleri büyük harfle görüntüler

Tüm karakterleri küçük harfle görüntüler

Ana bilgisayar uygulama özelliklerini kullanma

Visual Basic for Applications içinde yerleşik olan işlevlere ek olarak, bazı VBA ana bilgisayar uygulama işlevleri VBA kodundan edinilebilir. Ev sahibi-başvuru Word, Excel, PowerPoint, Outlook veya FrontPage gibi VBA prosedürleri geliştiren bir uygulamadır. Örneğin Excel, çalışma sayfalarındaki veriler üzerinde matematiksel, mantıksal, finansal ve istatistiksel işlemler gerçekleştiren çeşitli işlevlere sahiptir. Bu Excel işlevlerinin çoğuna (hepsine olmasa da) VBA kodundan erişilebilir. VBA'nın kullanabileceği ana bilgisayar uygulama işlevleri, VBA'nın parçası değildir, ana bilgisayar uygulamasının parçasıdır. Bir ana bilgisayar uygulamasında VBA'ya sunulan işlevler başka bir ana bilgisayar uygulamasında bulunmayabilir.

Bazı ana bilgisayar uygulamalarına ait bir işlevi kullanmak için, işleve bir program nesnesi aracılığıyla bakın. Başvuru. Uygulama VBA nesnesi, ana bilgisayar uygulamasını ve tüm kaynaklarını temsil eder. Nesneler Bölüm 6'da daha ayrıntılı olarak açıklanmaktadır.

Görev 6. Max Excel işlevini kullanan bir prosedür yazın.

Bunun için:

Prosedürü girin (Liste 8):

Listeleme 8 – Bir Excel İşlevini Kullanmamaks.

1 Alt Liste3_08()

2 MsgBox Application.Max(9, 17, -18, 20)

kelimenin arkasında Başvuru ardından bir nokta (.) ve ardından işlevin adı maks. boşluksuz. Bu nokta denir sınırlayıcı nokta(nokta ayırıcı) operatörün bir işleve atıfta bulunduğunu gösterir maks. nesnenin bir parçası olan

Başvuru.

Bir Excel işlevinin sonucu göz ardı edilemez. Bir Excel işlev çağrısına her zaman parantez eklemeniz ve işlevin sonucunu her zaman bir şekilde kullanmanız gerekir: bir ifadede değer olarak, başka bir işlev veya yordamın bağımsız değişkeni olarak veya bir atama ifadesinde.

Ana bilgisayar uygulamasının her özelliği VBA'da mevcut değildir. VBA için belirli bir ana bilgisayar uygulaması özelliğinin mevcut olup olmadığından emin değilseniz, şunu kullanın: Nesne Tarayıcı listenin içerip içermediğini kontrol etmek için Üyeler (Bileşen) bu işlev, seçilen Çalışma SayfasıFonksiyonu listede sınıflar (sınıflar) ve listede seçilen ana bilgisayar uygulamasıyla proje/ Kütüphane (Proje / Kütüphane). Eğer istenilen fonksiyon listelenmemiş, VBA'da mevcut değil.

Kontrol soruları

    "Veri türleri" kavramını tanımlayın. VBA'da hangi veri türleri kullanılır?

    tanımlayıcı nedir?

    değişken nedir? "Bir değişkeni dolaylı olarak tanımlayın" ifadesi ne anlama gelir ve "açıkça" ne anlama gelir?

    VBA'da hangi sabitler kullanılır? Dahili sabitler nelerdir?

    InputBox ve MsgBox işlevleri ne işe yarar?

    ifade nedir?

    Atama operatörünün sözdizimini tanımlayın.

    İlişkisel işlemler nelerdir?

    Matematiksel işlemlerin önceliği nedir?

    Erişirken kullanmak için VBA'da hangi anahtar kelime var? Excel işlevleri? Nesne Tarayıcı penceresini ne için kullanabilirsiniz?

  • boole- boolean veri türü yalnızca iki değer depolayabilir: True veya False, true veya false. Tamsayı değişkenleri yerine kullanmak iyi bir programlama stilidir.
  • bayt- bayt türü Visual Basic 5'te yenidir ve 0 ile 255 arasındaki tamsayıları depolamak için tasarlanmıştır. Kullanımı, RAM'den büyük ölçüde tasarruf etmenizi ve dizilerin boyutunu küçültmenizi sağlar. önceki sürümler Visual Basic. Ayrıca ikili dosyalarla çalışırken kullanılır.
  • Para birimi - verilen tip GW-BASIC ve QuickBASIC sürümlerinde yoktur. Dönüştürme hatalarını önlemek için tasarlanmıştır. ondalık sayılar ikili forma ve tersi. (1/10'u 1/2, 1/4, 1/8, 1/16 vb.'nin toplamı olarak temsil etmek imkansızdır.) Bu türde ondalık noktadan sonra en fazla 4 basamak ve önce en fazla 14 basamak olabilir. BT. Bu aralık içinde, hesaplamalar doğru olacaktır. Tanımlayıcı "@" karakteridir. Toplama ve çıkarma dışındaki tüm aritmetik işlemler, çift kesinlikli değişkenlerde olduğu gibi yavaş yapıldığından, finansal hesaplamalar için bu tür tercih edilir. (Merak edenler için bu tip 19 basamaklı tamsayılar kullanır ve bunlar daha sonra 10000'e bölünür. Bu, 15 ondalık basamak ve 4 ondalık basamak sağlar.)
  • Tarih- Bu veri türü, 1 Ocak 100 gece yarısı ile 31 Aralık 9999 gece yarısı arasında saat ve tarih değerlerini saklamanıza olanak tanır. Bu tür değerler program metninde "#" karakterleri ile gösterilir, örneğin: YeniYıl = #1 Ocak 2000# Yalnızca bir tarih değeri girilirse, Visual Basic saatin 00:00 olduğunu varsayar.
  • Ondalık en güçlü sayısal türdür. Bu tür bir değişkeni depolamak için 16 bayt tahsis edilir. Bu değişkenin olası değerlerinin bulunduğu aralığın negatif ve pozitif sınırları mutlak değerde aynıdır ve tamsayılar kullanılıyorsa +/- 79 228 162 514 264 337 593 543 950 335'e eşittir. Kesirli değerlerin saklanması gerekiyorsa, geliştiricinin kaç ondalık basamak kullandığına bağlı olarak olası değerlerin sınırları birkaç büyüklük sırasına göre kaydırılacaktır. Bu tür yalnızca ondalık sayıları saklamak için kullanılabilir. Geliştirici en fazla 28 ondalık basamak kullanabilir.
  • Çift- Bu tür değişkenler, sayıları 16 haneye kadar doğrulukta ve 300 karaktere kadar uzunlukta saklamanıza olanak tanır. Tanımlayıcı "#" dir. Onlarla yapılan hesaplamalar da yaklaşıktır ve hızları nispeten küçüktür. Çift değişkenler çoğunlukla bilimsel hesaplamalar için kullanılır.
  • tamsayı- Tamsayı değişkenleri yalnızca nispeten küçük tamsayıları saklayabilir (-32768 ile +32767 arasında). Aritmetik işlemler bu tür sayıların üzerinden çok hızlı bir şekilde gerçekleştirilir. "%" karakteri bu türü belirtmek için kullanılır: IntegerPerem% = 3
  • Uzun- bu tür ilk olarak QuickBASIC dilinde ortaya çıktı. Bu tür değişkenler, -2 147 483 648 ile +2 147 483 647 arasındaki tamsayı değerlerini saklar. "&" simgesiyle gösterilir. Bu tür sayılar üzerinde aritmetik işlemler de çok hızlıdır ve 386DX veya 486DX işlemci ile çalışırken Long ve Integer arasında hesaplama hızında yalnızca küçük bir fark vardır. UzunPerem& = 123456789
  • Nesne- aslında, bu türden bir değişken yalnızca bir nesnenin belirli bir örneğine yapılan bir başvurudur. Değişken 4 baytta saklanır.
  • Bekar- bu numaraların tanımlayıcısı "!" Sembolüdür. Bu değişken türü, yedi haneye kadar kesirli sayıları saklamanıza izin verir. Bu, sonuç 12345678.97 ise, 8.97 kısmının doğru olmadığı anlamına gelir. Sonuç, örneğin 12345670.01 olabilir. Sayılar en fazla 38 karakter uzunluğunda olabilir. Bu değişkenlerle yapılan hesaplamalar da yaklaşık değerler olacaktır. Ayrıca, aritmetik, tamsayı değişkenlerinden daha yavaştır.
  • Sicim- string değişkenleri karakterleri saklar. Bu tür bir değişkeni belirlemenin bir yolu, adının sonuna bir "$" karakteri eklemektir, örneğin: StringPerem$. Teorik olarak, böyle bir değişken 2 milyar karaktere kadar içerebilir. Her durumda, belirli bir bilgisayarda, sınırlı hacimler nedeniyle bu sayı çok daha az olacaktır. rasgele erişim belleği, Windows kaynakları veya formda kullanılan karakter sayısı. Dize değişkenlerinin en temel kullanımlarından biri, girdi alanlarından bilgi seçmektir.

Örneğin, metin kutusu 1'deki metni değiştirirseniz, metin kutusu sağdaki son karakter olmadan aynı metni görüntüler:

Seçenek Açık Dim strText As String Özel Alt Form_Load() Text1.Text = "" Text2.Text = "" End Sub Private Sub Text1_Change() Hata Durumunda Devam Et Sonraki Text2.Text = strText strText = Left(Text1.Text, Len(Text1) .Metin) - 1) Alt Yazıyı Bitir

varyant- bu tür Visual Basic 5'te sürüm 2.0'dan eklenmiştir. Tür varyantı değişkeni, herhangi bir türde veri içerebilir. Visual Basic alınan verinin türünü bilmiyorsa, varyantı kullanmalısınız. Bilginin türü önemli değildir, çünkü değişken her türlü veriyi (sayısal, tarih/saat, dizi) içerebilir. Visual Basic, gerekli veri dönüşümlerini otomatik olarak yapar, bu yüzden bu konuda endişelenmenize gerek yoktur. Öte yandan, tür varyantı değişkeninde depolanan veri türünü kontrol etmek için yerleşik işlevleri kullanabilirsiniz. Kullanıcının bilgileri doğru girip girmediğini kontrol etmeyi kolaylaştırırlar. Değişken gibi bir veri türünün kullanılması, tür dönüştürme işlemleri için zaman ve kaynak gerektirdiğinden programı yavaşlatır. Ek olarak, birçok programcı, otomatik veri türü dönüşümlerini kullanmanın özensiz programlara yol açtığının farkındadır. Tek neden değişken kullanımında, doğrudan programcı tarafından tür dönüştürmede olası hatalar yatmaktadır.

Bazen bazı operatörleri, API işlevlerini kullanırken veya sadece kendi ihtiyaçlarınız için kendi veri türlerinizi oluşturmanız gerekir. Genellikle yapılar olarak adlandırılırlar. Özünde bir yapı, tek bir değişkene sığdırdığımız tek boyutlu bir dizi gibidir. Ancak farklı türde verileri içerebilir.

Kendi veri türünüzü oluşturmak, form kodunun Genel bölümünde kullanılan Type deyimi kullanılarak yapılır.