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
- Dosya menüsünden Aç'ı seçin ve ardından Proje'ye tıklayın. Proje Aç iletişim kutusu görünecektir.
- Klasörde bulunan Constant Tester projesini açın. c:\vbnet03sbs\ch.5\sabit test cihazı.
- 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.
- Düğmeye çift tıklayın Sabiti Göster formlar. Button1_Click olay prosedürü, Kod Düzenleyicide görünür.
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.
- 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.
- 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. - 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ş dize– hü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 Altbir 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/eylemZamanı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ğiVerilen 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ırmakBir 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; #.#### E–00 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.