VBA
Tekenreeksen declareren en toewijzen
Zoeken…
Opmerkingen
Strings zijn van het referentietype en staan centraal in de meeste programmeertaken. Aan strings wordt tekst toegewezen, zelfs als de tekst numeriek is. Strings kunnen nul-lengte zijn of elke lengte tot 2 GB. Moderne versies van VBA slaan Strings intern op met behulp van een Byte-array van Multi-Byte-tekensetbytes (een alternatief voor Unicode).
Verklaar een stringconstante
Const appName As String = "The App For That"
Declareer een tekenreeksvariabele met variabele breedte
Dim surname As String 'surname can accept strings of variable length
surname = "Smith"
surname = "Johnson"
Declareer en wijs een string met vaste breedte toe
'Declare and assign a 1-character fixed-width string
Dim middleInitial As String * 1 'middleInitial must be 1 character in length
middleInitial = "M"
'Declare and assign a 2-character fixed-width string `stateCode`,
'must be 2 characters in length
Dim stateCode As String * 2
stateCode = "TX"
Declareer en wijs een stringarray toe
'Declare, dimension and assign a string array with 3 elements
Dim departments(2) As String
departments(0) = "Engineering"
departments(1) = "Finance"
departments(2) = "Marketing"
'Declare an undimensioned string array and then dynamically assign with
'the results of a function that returns a string array
Dim stateNames() As String
stateNames = VBA.Strings.Split("Texas;California;New York", ";")
'Declare, dimension and assign a fixed-width string array
Dim stateCodes(2) As String * 2
stateCodes(0) = "TX"
stateCodes(1) = "CA"
stateCodes(2) = "NY"
Wijs specifieke tekens toe binnen een tekenreeks met behulp van de instructie Mid
VBA biedt een Mid-functie voor het retourneren van substrings binnen een string, maar biedt ook de Mid- instructie die kan worden gebruikt om substrings of individuele tekens binnen een string toe te wijzen.
De functie Mid
verschijnt meestal aan de rechterkant van een toewijzingsopdracht of in een staat, maar de Mid
instructie wordt meestal links van een toewijzingsinstructie weergegeven.
Dim surname As String
surname = "Smith"
'Use the Mid statement to change the 3rd character in a string
Mid(surname, 3, 1) = "y"
Debug.Print surname
'Output:
'Smyth
Opmerking: Als u afzonderlijke bytes in een string moet toewijzen in plaats van individuele karakters binnen een string (zie de opmerkingen hieronder met betrekking tot de Multi-Byte- MidB
), kan de instructie MidB
worden gebruikt. In dit geval is het tweede argument voor de MidB
instructie de op 1 gebaseerde positie van de byte waar de vervanging begint, zodat de equivalente regel voor het bovenstaande voorbeeld MidB(surname, 5, 2) = "y"
.
Toewijzing van en naar een bytearray
Strings kunnen direct worden toegewezen aan byte-arrays en visa-versa. Onthoud dat tekenreeksen worden opgeslagen in een multi-byte tekenset (zie opmerkingen hieronder), zodat alleen elke andere index van de resulterende array het deel van het teken is dat binnen het ASCII-bereik valt.
Dim bytes() As Byte
Dim example As String
example = "Testing."
bytes = example 'Direct assignment.
'Loop through the characters. Step 2 is used due to wide encoding.
Dim i As Long
For i = LBound(bytes) To UBound(bytes) Step 2
Debug.Print Chr$(bytes(i)) 'Prints T, e, s, t, i, n, g, .
Next
Dim reverted As String
reverted = bytes 'Direct assignment.
Debug.Print reverted 'Prints "Testing."