VBA Asc

Excel VBA Asc-functie

De Asc-functie in VBA wordt gebruikt om een ​​integerwaarde te retourneren die een tekencode vertegenwoordigt die overeenkomt met het eerste teken van een opgegeven tekenreeks (tekenreeks opgegeven als argument / parameter) naar de functie. Het kan worden gebruikt of gegeven in een macrocode die doorgaans wordt ingevoerd via Visual Basic Editor.

De Excel-omgeving waarin de macro wordt uitgevoerd in de Visual Basic Editor (VBE) die kan worden gebruikt om de macrocodes te bewerken en te debuggen. Het bevat de macrocode en koppelt deze aan de Excel-werkmap.

De integerwaarde die door de Asc-functie wordt geretourneerd, is de overeenkomstige ASCII-tekencode in VBA. ASCII (American Standard Code for Information Interchange) is een 7-bits tekencodering waarin in totaal 128 tekens zijn gedefinieerd, inclusief Latijnse alfabetten, tien Arabische cijfers, enkele leestekens en besturingstekens. Het bevat geen diakritische tekens, aangezien deze een minimumruimte van 8 bits nodig hebben voor codering. Deze 8-bits codering wordt gedaan met ANSI (American National Standards Institute), waarvoor in totaal 256 tekens zijn gedefinieerd. ANSI wordt ook wel uitgebreide ASCII genoemd.

Syntaxis van VBA Asc-functie

De algemene syntaxis voor de ASC-functie is als volgt:

De syntaxis van de ASC-formule heeft het volgende argument:

String: vereist, vertegenwoordigt de tekstreeks waarvan de corresponderende tekencode voor het eerste teken gewenst is en moet worden geretourneerd.

Als de opgegeven tekenreeks slechts één teken heeft, retourneert de functie uiteraard de numerieke tekencode voor dat teken zelf.

Voorbeelden van Excel VBA Asc

Laten we hieronder kijken hoe de Asc kan worden gebruikt in Excel VBA.

U kunt deze VBA Asc-functie Excel-sjabloon hier downloaden - VBA Asc-functie Excel-sjabloon

Voorbeeld 1

Laten we zeggen dat we een Excel-bestand hebben met enkele strings, en we willen de Asc-functie gebruiken met deze strings. Laten we de strings in het bestand bekijken:

We gebruiken de Asc-functie in VBA in een macro die kan worden geschreven in de Visual Basic Editor en als volgt toegankelijk is:

Ga naar ontwikkelaar en klik vervolgens op macro's:

Maak nu een macronaam aan: schrijf onder 'Macronaam' een naam van de macro die u wilt maken en selecteer PERSONAL.XLSB in de vervolgkeuzelijst 'Macro's in'. De macro's kunnen worden opgeslagen in een persoonlijke werkmap die een verborgen werkmap is die op de achtergrond wordt geopend wanneer Excel wordt gestart. Als u PERSONAL.XLSB selecteert, worden de macro's in de persoonlijke werkmap opgeslagen, waardoor de macro altijd beschikbaar is omdat de persoonlijke werkmap niet systeem- / bestandsspecifiek is.

Klik op 'Aanmaken'.

Dit zou als volgt een venster openen met een VBA-subprocedure in Visual Basic Editor:

Definieer nu de variabele Resultaat

Code:

Subcode () Dim Resultaat1 End Sub

Wijs nu de variabele Result1 toe met de formule om de tekencode van de string te retourneren:

Code:

Subcode () Dim Result1 Result1 = Asc ("Raj") End Sub

Nu kan de resulterende waarde van Result1 als volgt worden weergegeven en geretourneerd met behulp van een VBA-berichtvenster (MsgBox):

Code:

Subcode () Dim Result1 Result1 = Asc ("Raj") MsgBox Result1 End Sub

Als we deze code nu handmatig uitvoeren door op 'Uitvoeren' bovenaan het venster te klikken of door op F5 te drukken, krijgen we de tekencode van de eerste letter van de tekenreeks: "Raj" als volgt weergegeven in een berichtenvenster:

We kunnen dus in de bovenstaande schermafbeelding zien dat bij het uitvoeren van de macro '82' wordt geretourneerd in een berichtvenster. Dit houdt in dat de tekencode voor 'R' 82 is.

Laten we nu zeggen dat we in het bovenstaande voorbeeld de tekencode voor de string willen vinden: "Karan". Om dit te doen, volgen we dezelfde stappen als hierboven.

In plaats daarvan zullen Raj in de code Karan schrijven om de karaktercode te krijgen.

Code:

 Sub String2 () Dim Result2 Result2 = Asc ("Karan") MsgBox Result2 End Sub 

Nu voeren we deze code handmatig uit of door op F5 te drukken, en we krijgen de karaktercode van de eerste letter van de string: "Karan" als volgt weergegeven in een berichtenvenster:

We kunnen dus in de bovenstaande schermafbeelding zien dat bij het uitvoeren van de macro '75' wordt geretourneerd in een berichtvenster. Dit houdt in dat een tekencode voor 'K' 75 is.

Laten we nu eens kijken hoe het resultaat verandert voor de resterende strings:

Code:

 Sub String3 () Dim Result2 Result2 = Asc ("Heena") MsgBox Result2 End Sub 

 Sub String4 () Dim Result2 Result2 = Asc ("Arun") MsgBox Result2 End Sub 

 Sub String5 () Dim Result2 Result2 = Asc ("A") MsgBox Result2 End Sub 

 Sub String6 () Dim Result2 Result2 = Asc ("a") MsgBox Result2 End Sub 

Bij het één voor één uitvoeren van deze subprocedures, worden de volgende tekencodes teruggestuurd in het berichtvenster (respectievelijk één per keer). Dit is de lijst met overeenkomstige waarden die worden geretourneerd voor de bovenstaande strings.

Dus, zoals de bovenstaande schermafbeelding illustreert, kunnen we zien dat de ASC-functie de tekencode retourneert als 65 voor de string: "Arun", en ook voor de string: "A". Dit komt doordat de teruggezonden tekencode de VBA ASCII- of equivalente tekencode is voor de eerste letter van de tekenreeks in het geval de tekenreeks uit meer dan één teken bestaat. Daarom wordt 65 geretourneerd voor beide als het begin- of eerste teken van de string: "Arun" is ook 'A'.

Voorbeeld # 2

Als de tekenreeks die als parameter / argument aan de VBA ASC-functie wordt geleverd, een lege / lege tekenreeks is (of een tekenreeks zonder tekens), retourneert de functie een runtime-fout.

De volgende code legt hetzelfde uit.

 Sub blank () Dim resultaat resultaat = Asc ("") MsgBox (resultaat) End Sub 

Wanneer we deze code uitvoeren, krijgen we de Run-time-fout als volgt.

We kunnen dus in de bovenstaande schermafbeelding zien dat wanneer de tekenreeks die als parameter of argument aan de ASC-functie is geleverd, leeg / leeg is, de functie een runtime-fout retourneert.

Dingen om te onthouden

  • De tekenreeks die aan de VBA ASC-functie wordt geleverd, kan elke geldige tekenreeksexpressie zijn.
  • De Asc-functie is hoofdlettergevoelig.
  • De integerwaarde die door de Asc-functie wordt geretourneerd, ligt in het bereik van 0-255.
  • De ASCII-codes in VBA voor AZ zijn 65-90 en voor az zijn 97-122.
  • De naam die aan een macro of subprocedure wordt gegeven, mag niet de naam zijn van een standaardfunctie in VBA. Als dat zo wordt genoemd, geeft de subprocedure een foutmelding.