Mitä DIM tarkoittaa Visual Basicissa ja BASICissa? Peruskielen rutiinit.

Dimillä oli erilaisia ​​merkityksiä hänen ansioksi.

Löysin viittauksia Dim-arvoon "Ilmoita muistoksi" Asiaankuuluvampi linkki on tämä Dim Statement -asiakirja, jonka Oracle on julkaissut osana Siebel VB Language Reference -julkaisua. Voit tietysti väittää, että jos et ilmoita muuttujia muistissa, missä teet sen? Voi olla "Ilmoita moduulissa" - hyvä vaihtoehto Dimia käytetään.

Luulen, että "Declare in Memory" on itse asiassa muistomerkki, joka on suunniteltu helpottamaan Dimin käytön oppimista. Näen "Ilmoita muistissa" muodossa parempi merkitys koska se kuvaa mitä se tekee nykyiset versiot kieltä, mutta tämä ei ole oikea merkitys.

Itse asiassa alkuperässä Basic Dim käytetään vain taulukoiden ilmoittamiseen. Tavallisille muuttujille ei käytetty avainsanoja, vaan niiden tyyppi pääteltiin niiden nimestä. Esimerkiksi jos muuttujan nimi päättyy merkkijonoon $, se on merkkijono (tämän olet ehkä nähnyt jopa VB6:ta edeltävissä metodien nimissä, kuten Mid$). Joten käytit vain Dimiä taulukoiden koon mittaamiseen (huomaa, että ReDim muuttaa taulukoiden kokoa).

Onko sillä oikeastaan ​​väliä? Tarkoitan, että tämä avainsana on järkevä keinotekoisella kielellä. Sen ei tarvitse olla englannin tai muun luonnollisen kielen sana. Joten se voi tarkoittaa vain sitä, mitä haluat sen tarkoittavan, sillä on merkitystä, että se toimii.

Joka tapauksessa tämä ei ole täysin totta. Koska BASIC on osa kulttuuriamme ja ymmärtää miksi se on niin kuin se on, toivon, että se auttaa parantamaan näkemystämme maailmasta.

Istun tietokoneellani halussani auttaa säilyttämään tämän pienen palan kulttuuristamme, joka näyttää kadonneelta ja joka on korvattu arvauksemme kanssa siitä, mikä se oli. Joten kaivoin MSDN:n sekä nykyisille että vanhoille CD-levyille vuoden 1998 versiosta. Etsin myös dokumentaatiota vanhalle QBasicille [olisi pitänyt käyttää DOSBoxia] ja onnistuin saamaan Dartmouthin käyttöoppaan nähdäkseni kuinka he puhuvat Dimistä. Pettymykseksi he eivät kerro, mitä Dim tarkoittaa, vaan sanovat vain kuinka sitä käytetään.

Mutta ennen kuin toivoni oli hämärtynyt, onnistuin löytämään tämän BBC Microcomputer -käyttöoppaan (joka väittää olevan vuodelta 1984, eikä minun pitäisi epäillä sitä). BBC:n mikrotietokoneessa käytettiin BASIC-versiota nimeltä BBC BASIC, ja se on kuvattu asiakirjassa. Vaikka hän ei sanokaan, mitä Dim tarkoittaa, hän sanoo (sivulla 104):

Voit mitata N$ saadaksesi niin monta merkintää kuin haluat. Esimerkiksi DIM N $(1000) luo merkkijonotaulukon, jossa on tilaa 1000 eri nimelle.

Kuten sanoin, siinä ei sanota, että Dim tarkoittaa ulottuvuutta, mutta se tarjoaa todisteita siitä, että Dimin yhdistäminen ulottuvuuteen oli yleistä tätä kirjoitettaessa.

Nyt sain myöhemmin ylimääräisen yllätyksen (sivulla 208), DIM-avainsanaa kuvaava osion otsikko (huom: tätä ei ole listattu sisällössä) sanoo:

DIM-ryhmän koko

Nyt en saanut "Dim on arvoinen..." -lainausta, mutta mielestäni on selvää, että jokainen suolansa arvoinen henkilö, joka pystyy lukemaan tämän asiakirjan, luulisi, että Dim tarkoittaa ulottuvuutta.

Uudella toivolla päätin löytää tavan valita Dim. Jälleen, en löytänyt tili tästä aiheesta, mutta onnistuin löytämään lopullisen lainauksen:

Ennen kuin voit käyttää taulukkoa, sinun on määritettävä se DIM (dimension) -käskyssä.

Löydät tämän osana True BASIC Online -käyttöoppaita True BASIC inc:n verkkosivulta. Yrityksen perusti Thomas Eugene Kurtz, BASICin toinen kirjoittaja.

Eli aikana uudelleenkäyttö Dim on lyhenne sanoista Ulottuvuus ja kyllä. Tämä oli olemassa FORTRANissa aiemmin, joten on todennäköistä, että sen valitsi FORTRAN-vaikutus, kuten Patrick Macdonald sanoi vastauksessaan.

Dim summa merkkijonona = "tämä ei ole kiinalainen ateria" REM-esimerkki käyttö VB.NET:ssä ;)

Ilmoittaa muuttujan tai taulukon.

Jos muuttujat luetellaan pilkuilla erotettuina (esimerkiksi DIM sPar1, sPar2, sPar3 AS STRING), vain Variant-muuttuja voidaan määrittää. SISÄÄN yleinen tapaus, jokainen muuttuja on määritettävä erilliselle riville.

DIM sPar1 AS STRING

DIM sPar2 AS STRING

DIM sPar3 AS STRING

Dim ilmoittaa paikalliset muuttujat proseduureissa. PUBLIC- ja PRIVATE-käskyjä käytetään globaalien muuttujien ilmoittamiseen.

Syntaksi:

Himmeä muuttuja [(Alusta loppuun)] [, Muuttuja2 [(Alusta loppuun)] [,...]]

Vaihtoehdot:

Muuttuja: mielivaltainen muuttujan tai taulukon nimi.

Aloitus, Loppu: numeeriset arvot tai vakiot, jotka määrittävät elementtien lukumäärän (elementtien lukumäärä=(Alku-Loppu)+1) ja indeksialueen.

Aloitus ja loppu voivat olla myös numeerisia lausekkeita, jos ReDim on käytössä prosessitasolla.

Tyyppi: Avainsana, joka ilmoittaa muuttujan tyypin.

Avainsana: muuttujatyyppi

Bool: Boolen tyyppinen muuttuja (tosi, epätosi)

Valuutta: muuttuja tyyppiä Valuutta (rahallinen arvo, jonka murto-osa on 4 asemaa)

Date: muuttuja tyyppiä Date

Double: kaksinkertainen tarkkuus liukulukumuuttuja (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Kokonaisluku: muuttuja tyyppiä Integer (-32768 - 32767)

Pitkä: muuttuva Pitkä tyyppi Kokonaisluku (-2 147 483 648 - 2 147 483 647)

Object: Object-tyyppinen muuttuja (Huomaa: tämä muuttuja voidaan määrittää vasta myöhemmin Set-käskyllä!)

Single: Single-tyypin muuttuja (3,402823 x 10E38 - 1,401298 x 10E-45)

String: muuttuja tyyppiä String with enimmäispituus 64 000 ASCII-merkkiä.

: Variant-tyypin muuttuja (kattaa kaikki tyypit määritellyn mukaisesti). Jos avainsanaa ei ole määritetty, muuttujat määritellään automaattisesti Variant-tyypin muuttujiksi, paitsi jos käytetään operaattoria alueelta DefBool - DefVar.

Basic Lotus® Symphony™:ssa muuttujia ei tarvitse ilmoittaa erikseen. Ainoa poikkeus ovat taulukot. Muuttuja voidaan ilmoittaa Dim-käskyllä; Jos ilmoituslauseita on useita, ne erotetaan pilkuilla. Jos haluat ilmoittaa muuttujan tyypin, määritä tyypin määrityssymboli muuttujan nimen jälkeen tai anna sopiva avainsana.

Basic Lotus Symphony -sovelluksella voit määrittää yksiulotteisen tai moniulotteisia taulukoita, joka määrittää sopivan muuttujan tyypin. Taulukot ovat käteviä luetteloiden ja taulukoiden työskentelyyn. Matriisielementteihin pääsee käsiksi indeksillä, joka voidaan määrittää numeerisena lausekkeena tai muuttujana.

Taulukot ilmoitetaan Dim-operaattorilla. Indeksialue voidaan määrittää kahdella tavalla:

DIM-teksti(20) merkkijono REM 21 -elementteinä numeroituina 0-20

DIM-teksti (5 - 25) merkkijono REM 21 -elementteinä numeroituina 5 - 25

DIM-teksti (-15 - 5) merkkijono REM 21 -elementteinä (mukaan lukien 0)

REM numeroilla -15 - 5

2D-tietokenttä

DIM-teksti(20,2) String REM 63 -elementteinä, jotka on numeroitu 0 - 20 tasolle 1, 0 - 20 tasolle 2 ja 0 - 20 tasolle 3

Taulukkotyypit voidaan julistaa dynaamiksi, jos ReDim-käsky määrittää dimensioiden lukumäärän taulukon sisältävässä proseduurissa tai funktiossa. Yleensä taulukon koko määritetään vain kerran, eikä sitä voi muuttaa. Proseduurissa taulukko voidaan ilmoittaa käyttämällä ReDim-operaattoria. Mitat voidaan määrittää vain numeeristen lausekkeiden avulla. Tämä varmistaa, että kentän pituusrajoituksia noudatetaan.

Esimerkki:

Dim sVar merkkijonona

Himmeä iVar kokonaislukuna

sVar = "Lotus Symphony"

REM Kaksiulotteinen tietokenttä

Dim stext(20,2) merkkijonona

Const sDim as String = "Dimension:"

stext(i,ii) = str(i) & sDim & str(ii)

Dim merkitsi alun perin (peruskielissä) Dimension, koska sitä käytettiin määrittämään taulukon mitat.

(Alkuperäinen BASIC-toteutus oli Dartmouth BASIC, joka kehittyi FORTRAN:sta, joka määritteli DIMENSIONS.)

Tällä hetkellä Dimiä käytetään minkä tahansa muuttujan, ei vain taulukoiden, määrittämiseen, joten sen merkitys ei ole intuitiivinen.


2018-06-23 16:01

Dimille annettiin erilaisia ​​merkityksiä.

Löysin linkkejä Dimin merkitykseen "Julista muistiin" Asiaankuuluvampi viite on Oraclen osana Siebel VB Language Reference -julkaisua julkaisema asiakirja Dim Instructions -ohjeista. Voit tietysti väittää, että jos et ilmoita muuttujia muistissa, missä teet sen? Voi olla "Ilmoita moduulissa" on hyvä vaihtoehto, kun otetaan huomioon, miten Dim on käytössä.

Mielestäni "Julista muistiin" on itse asiassa muistomerkki luotu Dimin käytön oppimisen helpottamiseksi. Näen "ilmoittaa muistissa" parhaana merkityksenä, koska se kuvaa mitä se tekee kielen nykyisissä versioissa, mutta se ei ole oikea merkitys.

Itse asiassa Basic Dim -ominaisuutta käytettiin alkuvaiheessaan vain taulukoiden ilmoittamiseen. Tavallisille muuttujille ei käytetty avainsanoja, vaan niiden tyyppi pääteltiin niiden nimestä. Esimerkiksi jos muuttujan nimi päättyy merkkijonoon $, se on merkkijono (tämän olet ehkä nähnyt jopa VB6:ta edeltävissä metodien nimissä, kuten Mid$). Joten käytit Dimiä vain antaaksesi mittaus taulukoihin (huomaa, että ReDim muuttaa taulukoiden kokoa).

Todellakin, Sillä on väliä? Tarkoitan, että tämä avainsana on järkevä keinotekoisella kielellä. Sen ei tarvitse olla englannin tai muun luonnollisen kielen sana. Joten se voi tarkoittaa vain sitä, mitä haluat sen tarkoittavan, sillä on merkitystä, että se toimii.

Joka tapauksessa tämä ei ole täysin totta. Koska BASIC on osa kulttuuriamme ja ymmärtää miksi se on niin kuin se on, toivon, että se auttaa parantamaan näkemystämme maailmasta.

Istun tietokoneen ääressä halussani auttaa säilyttämään tämän pienen palan kulttuuristamme, joka näyttää kadonneelta, korvautuneena oletukseksemme siitä, mitä se oli. Joten kaivoin MSDN:n sekä nykyisille että vanhoille CD-levyille vuoden 1998 versiosta. Etsin myös vanhan QBasicin dokumentaatiota [täytyi käyttää DOSBoxia] ja onnistuin saamaan Dartmouthin käyttöoppaan selvittääkseni, kuinka he sanovat Dim käytetty.

Mutta ennen kuin toivoni oli hämärtynyt, onnistuin löytämään tämän BBC Microcomputer User's Guide -oppaan (joka väittää olevan vuodelta 1984, enkä halua epäillä sitä). BBC:n mikrotietokoneessa käytettiin BASIC-versiota nimeltä BBC BASIC, ja se on kuvattu asiakirjassa. Vaikka hän ei sano mitä Dim Stand tekee, hän sanoo (sivulla 104):

Voit mitata N$ saadaksesi niin monta merkintää kuin haluat. Esimerkiksi DIM N$(1000) luo merkkijonotaulukon, jossa on tilaa 1000 eri nimelle.

Kuten sanoin, siinä ei sanota, että Dim tarkoittaisi ulottuvuutta, mutta se toimii todisteena siitä, että Dim:n yhdistäminen ulottuvuuteen oli yleistä tätä kirjoitettaessa.

Nyt sain ylimääräisen yllätyksen (sivulla 208), DIM-avainsanaa kuvaavan osion otsikko (huom: tätä ei ole listattu sisällössä) sanoo:

DIM-ryhmän koko

Nyt en saanut "Dim on arvoinen..." -lainausta, mutta mielestäni on selvää, että jokainen suolansa arvoinen henkilö, joka pystyy lukemaan tämän asiakirjan, luulisi, että Dim tarkoittaa ulottuvuutta.

Uudella toivolla päätin huomata, että Dim oli valittu. Jälleen kerran, en löytänyt tiliä tästä aiheesta, mutta pystyin löytämään lopullisen lainauksen:

Ennen kuin voit käyttää taulukkoa, sinun on määritettävä se DIM (dimension) -käskyssä.

Löydät tämän osana True BASIC Online -käyttöoppaita True BASIC inc:n verkkosivulta. Yritys on perustettu Thomas Eugene Kurtzin, BASIC:n luojan kanssa.

Dim on siis lyhenne ULOTTUVUUS, ja kyllä. Tämä oli olemassa FORTRANissa aiemmin, joten on todennäköistä, että se valittiin FORTRANin vaikutuksen vuoksi, kuten Patrick MacDonald sanoi vastauksessaan.

Dim summa merkkijonona = "tämä ei ole kiinalainen ateria" REM-esimerkki käyttö VB.NET:ssä ;)


2017-10-05 01:19

Tämä on lyhenne sanoista Dimension, koska sitä käytettiin alun perin BASICissa osoittamaan taulukoiden kokoa.

DIM - (lyhenne sanoista koko) määrittää taulukoiden koon

Osa alkuperäistä lähdekoodi BASIC-kääntäjä, johon se hyppää etsiessään DIM-komentoa, jossa näet selvästi avainsanan alkuperäisen tarkoituksen:

DIM LDA XR01 TAKAISIN POIS OBJEKTIOSOITIN SUB N3 STA RX01 LDA L 2 MUUTTUVA MITOITTAMISEKSI STA 3 LDA S 3 CAB N36 TARKISTA $ MAJOITETTU BRU *+7 EI $ ...

Myöhemmin sitä alettiin käyttää kaikenlaisten muuttujien ilmoittamiseen, kun myöhemmissä versioissa lisättiin mahdollisuus määrittää muuttujatyyppi.


2018-06-23 16:02

Mittaa muuttuja, periaatteessa kerrot kääntäjälle, että tarvitset tämäntyyppisen muuttujan jossain vaiheessa.

VBA:ssa, kuten missä tahansa muussa ohjelmointikielessä, muuttujia ja vakioita käytetään arvojen tallentamiseen. Kuten nimestä voi päätellä, muuttujat voivat muuttua, kun taas vakiot tallentavat kiinteitä arvoja.

Esimerkiksi vakio Pi tallentaa arvon 3.14159265... Numero "Pi" ei muutu ohjelman suorituksen aikana, mutta on silti kätevämpää tallentaa sellainen arvo vakiona.

Samalla voimme käyttää muuttujaa sVAT_Rate tallentaa ostettujen tavaroiden arvonlisäverokannan. Muuttuva arvo sVAT_Rate voi vaihdella ostetun tuotteen mukaan.

Tietotyypit

Kaikki muuttujat ja vakiot kuuluvat tiettyyn tietotyyppiin. Alla oleva taulukko näyttää VBA:ssa käytetyt tietotyypit kuvauksen ja mahdollisten arvojen valikoiman kanssa:

Tietotyyppi Koko Kuvaus Arvoalue
Tavu 1 tavu Positiiviset kokonaisluvut; käytetään usein binääritietoihin 0-255
Boolean 2 tavua Voi olla joko tosi tai epätosi Totta vai tarua
Kokonaisluku 2 tavua Kokonaisluvut (ei murto-osaa) -32 768 - +32 767
Pitkä 4 tavua Suuret kokonaisluvut (ei murto-osaa) alkaen -2 147 483 648 - +2 147 483 647
Yksittäinen 4 tavua Yksittäinen tarkkuus liukuluku -3,4e38 - +3,4e38
Kaksinkertainen 8 tavua Kaksinkertainen tarkkuus liukuluku -1,8e308 - +1,8e308
Valuutta 8 tavua Liukuluku, jossa on kiinteä määrä desimaaleja numerosta -922 337 203 685 477 5808 - +922 337 203 685 477 5807
Päivämäärä 8 tavua Päivämäärä ja aika – Päivämäärätiedot esitetään liukulukuna. Tämän luvun kokonaislukuosa ilmaisee päivämäärän ja murto-osa- aika 1 100 tammikuuta 31 9999 joulukuuta
Esine 4 tavua Objektiviittaus Mikä tahansa objektiviittaus
merkkijono muutoksia Merkistö. Kirjoita merkkijono voi olla kiinteä tai muuttuva pituus. Useimmiten käytetään vaihtelevalla pituudella Kiinteä pituus – enintään noin 65 500 merkkiä. Vaihteleva pituus– enintään noin 2 miljardia merkkiä
Variantti muutoksia Voi sisältää päivämäärän, liukulukunumeron tai merkkijonon. Tätä tyyppiä käytetään tapauksissa, joissa ei ole etukäteen tiedossa, minkä tyyppisiä tietoja syötetään. Numero – Double, merkkijono – merkkijono

On selvää, että käyttämällä yllä olevaa taulukkoa ja valitsemalla tietotyypin oikein, voit käyttää muistia taloudellisemmin (esim. Kokonaisluku sijasta Pitkä tai Yksittäinen sijasta Kaksinkertainen). Pienempiä tietotyyppejä käytettäessä on kuitenkin oltava varovainen, ettei koodisi yritä sovittaa niihin suhteettoman suuria arvoja.

Muuttujien ja vakioiden ilmoittaminen

Kääntäjän huomautus: VBA:n muuttujista puhuttaessa on syytä mainita vielä yksi tärkeä pointti. Jos ilmoitamme muuttujan, mutta emme anna sille arvoa, se alustetaan oletusarvolla:
tekstijonoja– alustetaan tyhjiä rivejä;
numerot – arvo 0;
tyyppisiä muuttujia Boolean- Väärä;
päivämäärät: 30. joulukuuta 1899.

Ennen kuin muuttujaa tai vakiota voidaan käyttää, se on ilmoitettava. Voit tehdä tämän lisäämällä tämän makroon: yksinkertainen merkkijono koodi:

Himmeä Muuttujan_nimi Kuten Tietotyyppi

Yllä näytetyllä koodirivillä Muuttujan_nimi on koodissa käytettävän muuttujan nimi, ja Tietotyyppi– Tämä on yksi tietotyypeistä tässä artikkelissa hieman aiemmin annetusta taulukosta. Esimerkiksi:

Dim sVAT_Rate As Single Dim i As Integer

Vakiot ilmoitetaan samalla tavalla, mutta vakioita ilmoitettaessa niiden arvo on ilmoitettava välittömästi. Esimerkiksi näin:

Vakio iMaxCount = 5000 Const iMaxScore = 100

Muuttujia ei tarvitse ilmoittaa Excelissä. Oletusarvoisesti kaikki Excelissä syötetyt, mutta ilmoittamattomat muuttujat ovat tyyppiä Variantti ja pystyy hyväksymään sekä numeerisia että tekstiarvoja.

Näin ohjelmoija voi käyttää uutta muuttujaa milloin tahansa (vaikka sitä ei olisi ilmoitettu), ja Excel käsittelee sitä tyyppisenä muuttujana. Variantti. On kuitenkin useita syitä, miksi sinun ei pitäisi tehdä tätä:

  1. Muistin käyttö ja laskentanopeus. Jos et määritä tietotyyppiä osoittavaa muuttujaa, sen tyyppi asetetaan oletusarvoisesti Variantti. Tämä tietotyyppi käyttää lisää muistia kuin muut tietotyypit. Näyttää siltä, ​​​​että muutama ylimääräinen tavu jokaiselle muuttujalle ei ole niin paljon, vaan käytännössä luomia ohjelmia muuttujia voi olla tuhansia (etenkin taulukoiden kanssa työskennellessä). Siksi tyypin muuttujien käyttämä ylimääräinen muisti Variantti, verrattuna muuttujiin, kuten Kokonaisluku tai Yksittäinen, voi lisätä jopa huomattavan määrän. Lisäksi operaatioita tyyppisillä muuttujilla Variantti suoritetaan paljon hitaammin kuin muuntyyppisillä muuttujilla, vastaavasti ylimääräinen tuhat tyyppisiä muuttujia Variantti voi merkittävästi hidastaa laskelmia.
  2. Estää kirjoitusvirheet muuttujien nimissä. Jos kaikki muuttujat on ilmoitettu, voit käyttää VBA-operaattoriVaihtoehto Explicit(puhumme siitä myöhemmin) tunnistaaksesi kaikki ilmoittamattomat muuttujat Tämä estää virheitä ilmestymästä ohjelmaan väärin kirjoitetun muuttujan nimen seurauksena. Esimerkiksi käyttämällä muuttujaa nimeltä sVAT_Rate, voit tehdä kirjoitusvirheen ja antaa tälle muuttujalle arvon kirjoittaa: "VATRate = 0.175". On odotettavissa, että tästä lähtien muuttuja sVAT_Rate pitäisi sisältää arvon 0,175 - mutta se ei tietenkään ole. Jos kaikkien käytettyjen muuttujien pakollisen ilmoituksen tila on käytössä, VBA-kääntäjä ilmoittaa välittömästi virheestä, koska se ei löydä muuttujaa VATR ilmoitettujen joukossa.
  3. Korostetaan arvot, jotka eivät vastaa ilmoitettua muuttujan tyyppiä. Jos ilmoitat muuttujan tiettyä tyyppiä ja yritä määrittää sille eri tyyppisiä tietoja, näkyviin tulee virhe, ja jos sitä ei korjata, ohjelma saattaa kaatua Ensi silmäyksellä tämä voi tuntua hyvältä syyltä olla ilmoittamatta muuttujia, mutta itse asiassa, mitä nopeammin se tapahtuu. osoittautuu, että yksi muuttujista sai väärät tiedot, jotka sen olisi pitänyt saada - sen parempi! Muuten, jos ohjelma jatkuu, tulokset voivat olla virheellisiä ja odottamattomia, ja virheiden syyn löytäminen on myös paljon vaikeampaa. On myös mahdollista, että makro suoritetaan "onnistuneesti". Tämän seurauksena virhe jää huomaamatta ja työ jatkuu virheellisillä tiedoilla!

Tässä suhteessa on suositeltavaa havaita virheelliset tietotyypit ja korjata tällaiset virheet koodissa mahdollisimman varhaisessa vaiheessa. Näistä syistä kirjoitettaessa VBA makro On suositeltavaa ilmoittaa kaikki muuttujat.

Vaihtoehto Explicit

Operaattori Vaihtoehto Explicit pakottaa kaikki muuttujat, joita käytetään VBA-koodissa, ilmoittamaan ja merkitsee ilmoittamattomat muuttujat virheiksi kääntämisen aikana (ennen koodin suorittamista). Tämän operaattorin käyttäminen ei ole vaikeaa - kirjoita vain seuraava rivi VBA-tiedoston yläosaan:

Vaihtoehto Explicit

Jos haluat aina lisätä Vaihtoehto Explicit jokaisen luodun uuden VBA-moduulin alussa tämä voidaan tehdä automaattisesti. Tätä varten sinun on otettava parametri käyttöön Vaadi muuttuva ilmoitus VBA-editorin asetuksissa.

Tämä tehdään näin:

  • Editointivalikossa Visual Basic klikkaus Työkalut > Vaihtoehdot
  • Avaa välilehti näkyviin tulevassa valintaikkunassa Toimittaja
  • Valitse ruutu Vaadi muuttuva ilmoitus ja paina OK

Kun parametri on käytössä, rivi Vaihtoehto Explicit lisätään automaattisesti jokaisen luodun uuden moduulin alkuun.

Muuttujien ja vakioiden laajuus

Jokaisella ilmoitetulla muuttujalla tai vakiolla on oma rajoitettu laajuutensa, eli rajoitettu osa ohjelmasta, jossa tämä muuttuja on. Laajuus riippuu siitä, missä muuttuja tai vakio on ilmoitettu. Otetaan esimerkiksi muuttuja sVAT_Rate, jota käytetään funktiossa Kokonaiskustannukset. Seuraavassa taulukossa on kaksi vaihtoehtoa muuttujan laajuudelle: sVAT_Rate, ilmoitettu kahdessa eri paikassa moduulissa:

Vaihtoehto Explicit Dim sVAT_Rate As Single Function Total_Cost() Kuten Double ... Lopeta funktio

Jos muuttuja sVAT_Rate Ilmoitettu aivan moduulin alussa, tämän muuttujan laajuus on koko moduuli (eli muuttuja sVAT_Rate tunnistetaan kaikissa tämän moduulin menettelyissä).

Jos siis funktiossa Kokonaiskustannukset muuttuja sVAT_Rate sitten annetaan jokin arvo seuraava toiminto, joka suoritetaan samassa moduulissa, käyttää muuttujaa sVAT_Rate samalla merkityksellä.

Kuitenkin, jos jokin toisessa moduulissa oleva funktio kutsutaan, niin sen muuttuja sVAT_Rate ei tule tiedoksi.

Vaihtoehto Explicit Function Total_Cost() As Double Dim sVAT_Rate As Single ... Lopeta funktio

Jos muuttuja sVAT_Rate ilmoitetaan funktion alussa Kokonaiskustannukset, sen soveltamisala rajoittuu vain tähän toimintoon (eli funktion sisällä Kokonaiskustannukset, on mahdollista käyttää muuttujaa sVAT_Rate, mutta ei sen ulkopuolella).

Kun yritetään käyttää sVAT_Rate toisessa menettelyssä VBA-kääntäjä ilmoittaa virheestä, koska tätä muuttujaa ei ilmoitettu funktion ulkopuolelle Kokonaiskustannukset(edellyttäen, että operaattoria käytetään Vaihtoehto Explicit).

Yllä olevassa esimerkissä muuttuja ilmoitetaan moduulitasolla käyttämällä avainsanaa Himmeä. Voi kuitenkin olla tarpeen, että ilmoitettuja muuttujia voidaan käyttää muissa moduuleissa. Tällaisissa tapauksissa ilmoittaa muuttuja avainsanan sijaan Himmeä täytyy käyttää avainsanaa Julkinen.

Muuten, jotta voidaan ilmoittaa muuttuja moduulitasolla avainsanan sijaan Himmeä voit käyttää avainsanaa Yksityinen, joka osoittaa, että tämä muuttuja on tarkoitettu käytettäväksi vain nykyisessä moduulissa.

Voit myös käyttää avainsanoja vakioiden ilmoittamiseen Julkinen Ja Yksityinen, mutta ei avainsanan sijasta Const, ja sen mukana.

Seuraavat esimerkit osoittavat käytön avainsanoja Julkinen Ja Yksityinen muuttujiin ja vakioihin sovellettuina.