Excel vba ascii кодов

This page explains how to use Excel VBA ASCFunction to get ASCII value of a text, and how to check if a text contains an alphabet, number or symbol

Excel VBA ASC Function returns the ASCII value of the first character in a text. ASCII (American Standard Code for Information Interchange) uses 8-bit code units, an old encoding system which stores mainly numbers, lowercase letters a to z, uppercase letters A to Z, basic punctuation symbols, control codes. Many old systems still use this encoding system. 8 bit means the computer memory uses “8” digits with 1 and 0 combination (binary) to represent a character, 8 bits memory is equal to 1 byte.

Refer to the below table, Excel ASC Function will convert the “Char” value to “Dec” value.

Dec Hex Oct Char Description
0 0 000 null
1 1 001 start of heading
2 2 002 start of text
3 3 003 end of text
4 4 004 end of transmission
5 5 005 enquiry
6 6 006 acknowledge
7 7 007 bell
8 8 010 backspace
9 9 011 horizontal tab
10 A 012 new line
11 B 013 vertical tab
12 C 014 new page
13 D 015 carriage return
14 E 016 shift out
15 F 017 shift in
16 10 020 data link escape
17 11 021 device control 1
18 12 022 device control 2
19 13 023 device control 3
20 14 024 device control 4
21 15 025 negative acknowledge
22 16 026 synchronous idle
23 17 027 end of trans. block
24 18 030 cancel
25 19 031 end of medium
26 1A 032 substitute
27 1B 033 escape
28 1C 034 file separator
29 1D 035 group separator
30 1E 036 record separator
31 1F 037 unit separator
32 20 040 space
33 21 041 !
34 22 042
35 23 043 #
36 24 044 $
37 25 045 %
38 26 046 &
39 27 047
40 28 050 (
41 29 051 )
42 2A 052 *
43 2B 053 +
44 2C 054 ,
45 2D 055
46 2E 056 .
47 2F 057 /
48 30 060 0
49 31 061 1
50 32 062 2
51 33 063 3
52 34 064 4
53 35 065 5
54 36 066 6
55 37 067 7
56 38 070 8
57 39 071 9
58 3A 072 :
59 3B 073 ;
60 3C 074 <
61 3D 075 =
62 3E 076 >
63 3F 077 ?
64 40 100 @
65 41 101 A
66 42 102 B
67 43 103 C
68 44 104 D
69 45 105 E
70 46 106 F
71 47 107 G
72 48 110 H
73 49 111 I
74 4A 112 J
75 4B 113 K
76 4C 114 L
77 4D 115 M
78 4E 116 N
79 4F 117 O
80 50 120 P
81 51 121 Q
82 52 122 R
83 53 123 S
84 54 124 T
85 55 125 U
86 56 126 V
87 57 127 W
88 58 130 X
89 59 131 Y
90 5A 132 Z
91 5B 133 [
92 5C 134
93 5D 135 ]
94 5E 136 ^
95 5F 137 _
96 60 140 `
97 61 141 a
98 62 142 b
99 63 143 c
100 64 144 d
101 65 145 e
102 66 146 f
103 67 147 g
104 68 150 h
105 69 151 i
106 6A 152 j
107 6B 153 k
108 6C 154 l
109 6D 155 m
110 6E 156 n
111 6F 157 o
112 70 160 p
113 71 161 q
114 72 162 r
115 73 163 s
116 74 164 t
117 75 165 u
118 76 166 v
119 77 167 w
120 78 170 x
121 79 171 y
122 7A 172 z
123 7B 173 {
124 7C 174 |
125 7D 175 }
126 7E 176 ~
127 7F 177 DEL

Extended Character Set

Dec Hex Unicode Open in a new window... Char Zoom... Name
128 80 U+20AC Euro Sign
129 81 Undefined
130 82 U+201A Single Low-9 Quotation Mark
131 83 U+0192 ƒ Latin Small Letter F With Hook
132 84 U+201E Double Low-9 Quotation Mark
133 85 U+2026 Horizontal Ellipsis
134 86 U+2020 Dagger
135 87 U+2021 Double Dagger
136 88 U+02C6 ˆ Modifier Letter Circumflex Accent
137 89 U+2030 Per Mille Sign
138 8A U+0160 Š Latin Capital Letter S With Caron
139 8B U+2039 Single Left-pointing Angle Quotation Mark
140 8C U+0152 Œ Latin Capital Ligature Oe
141 8D Undefined
142 8E U+017D Ž Latin Capital Letter Z With Caron
143 8F Undefined
144 90 Undefined
145 91 U+2018 Left Single Quotation Mark
146 92 U+2019 Right Single Quotation Mark
147 93 U+201C Left Double Quotation Mark
148 94 U+201D Right Double Quotation Mark
149 95 U+2022 Bullet
150 96 U+2013 En Dash
151 97 U+2014 Em Dash
152 98 U+02DC ˜ Small Tilde
153 99 U+2122 Trade Mark Sign
154 9A U+0161 š Latin Small Letter S With Caron
155 9B U+203A Single Right-pointing Angle Quotation Mark
156 9C U+0153 œ Latin Small Ligature Oe
157 9D Undefined
158 9E U+017E ž Latin Small Letter Z With Caron
159 9F U+0178 Ÿ Latin Capital Letter Y With Diaeresis
160 A0 U+00A0   No-break Space
161 A1 U+00A1 ¡ Inverted Exclamation Mark
162 A2 U+00A2 ¢ Cent Sign
163 A3 U+00A3 £ Pound Sign
164 A4 U+00A4 ¤ Currency Sign
165 A5 U+00A5 ¥ Yen Sign
166 A6 U+00A6 ¦ Broken Bar
167 A7 U+00A7 § Section Sign
168 A8 U+00A8 ¨ Diaeresis
169 A9 U+00A9 © Copyright Sign
170 AA U+00AA ª Feminine Ordinal Indicator
171 AB U+00AB « Left-pointing Double Angle Quotation Mark
172 AC U+00AC ¬ Not Sign
173 AD U+00AD ­ Soft Hyphen
174 AE U+00AE ® Registered Sign
175 AF U+00AF ¯ Macron
176 B0 U+00B0 ° Degree Sign
177 B1 U+00B1 ± Plus-minus Sign
178 B2 U+00B2 ² Superscript Two
179 B3 U+00B3 ³ Superscript Three
180 B4 U+00B4 ´ Acute Accent
181 B5 U+00B5 µ Micro Sign
182 B6 U+00B6 Pilcrow Sign
183 B7 U+00B7 · Middle Dot
184 B8 U+00B8 ¸ Cedilla
185 B9 U+00B9 ¹ Superscript One
186 BA U+00BA º Masculine Ordinal Indicator
187 BB U+00BB » Right-pointing Double Angle Quotation Mark
188 BC U+00BC ¼ Vulgar Fraction One Quarter
189 BD U+00BD ½ Vulgar Fraction One Half
190 BE U+00BE ¾ Vulgar Fraction Three Quarters
191 BF U+00BF ¿ Inverted Question Mark
192 C0 U+00C0 À Latin Capital Letter A With Grave
193 C1 U+00C1 Á Latin Capital Letter A With Acute
194 C2 U+00C2 Â Latin Capital Letter A With Circumflex
195 C3 U+00C3 Ã Latin Capital Letter A With Tilde
196 C4 U+00C4 Ä Latin Capital Letter A With Diaeresis
197 C5 U+00C5 Å Latin Capital Letter A With Ring Above
198 C6 U+00C6 Æ Latin Capital Ligature Ae
199 C7 U+00C7 Ç Latin Capital Letter C With Cedilla
200 C8 U+00C8 È Latin Capital Letter E With Grave
201 C9 U+00C9 É Latin Capital Letter E With Acute
202 CA U+00CA Ê Latin Capital Letter E With Circumflex
203 CB U+00CB Ë Latin Capital Letter E With Diaeresis
204 CC U+00CC Ì Latin Capital Letter I With Grave
205 CD U+00CD Í Latin Capital Letter I With Acute
206 CE U+00CE Î Latin Capital Letter I With Circumflex
207 CF U+00CF Ï Latin Capital Letter I With Diaeresis
208 D0 U+00D0 Ð Latin Capital Letter Eth
209 D1 U+00D1 Ñ Latin Capital Letter N With Tilde
210 D2 U+00D2 Ò Latin Capital Letter O With Grave
211 D3 U+00D3 Ó Latin Capital Letter O With Acute
212 D4 U+00D4 Ô Latin Capital Letter O With Circumflex
213 D5 U+00D5 Õ Latin Capital Letter O With Tilde
214 D6 U+00D6 Ö Latin Capital Letter O With Diaeresis
215 D7 U+00D7 × Multiplication Sign
216 D8 U+00D8 Ø Latin Capital Letter O With Stroke
217 D9 U+00D9 Ù Latin Capital Letter U With Grave
218 DA U+00DA Ú Latin Capital Letter U With Acute
219 DB U+00DB Û Latin Capital Letter U With Circumflex
220 DC U+00DC Ü Latin Capital Letter U With Diaeresis
221 DD U+00DD Ý Latin Capital Letter Y With Acute
222 DE U+00DE Þ Latin Capital Letter Thorn
223 DF U+00DF ß Latin Small Letter Sharp S
224 E0 U+00E0 à Latin Small Letter A With Grave
225 E1 U+00E1 á Latin Small Letter A With Acute
226 E2 U+00E2 â Latin Small Letter A With Circumflex
227 E3 U+00E3 ã Latin Small Letter A With Tilde
228 E4 U+00E4 ä Latin Small Letter A With Diaeresis
229 E5 U+00E5 å Latin Small Letter A With Ring Above
230 E6 U+00E6 æ Latin Small Ligature Ae
231 E7 U+00E7 ç Latin Small Letter C With Cedilla
232 E8 U+00E8 è Latin Small Letter E With Grave
233 E9 U+00E9 é Latin Small Letter E With Acute
234 EA U+00EA ê Latin Small Letter E With Circumflex
235 EB U+00EB ë Latin Small Letter E With Diaeresis
236 EC U+00EC ì Latin Small Letter I With Grave
237 ED U+00ED í Latin Small Letter I With Acute
238 EE U+00EE î Latin Small Letter I With Circumflex
239 EF U+00EF ï Latin Small Letter I With Diaeresis
240 F0 U+00F0 ð Latin Small Letter Eth
241 F1 U+00F1 ñ Latin Small Letter N With Tilde
242 F2 U+00F2 ò Latin Small Letter O With Grave
243 F3 U+00F3 ó Latin Small Letter O With Acute
244 F4 U+00F4 ô Latin Small Letter O With Circumflex
245 F5 U+00F5 õ Latin Small Letter O With Tilde
246 F6 U+00F6 ö Latin Small Letter O With Diaeresis
247 F7 U+00F7 ÷ Division Sign
248 F8 U+00F8 ø Latin Small Letter O With Stroke
249 F9 U+00F9 ù Latin Small Letter U With Grave
250 FA U+00FA ú Latin Small Letter U With Acute
251 FB U+00FB û Latin Small Letter U With Circumflex
252 FC U+00FC ü Latin Small Letter U With Diaeresis
253 FD U+00FD ý Latin Small Letter Y With Acute
254 FE U+00FE þ Latin Small Letter Thorn
255 FF U+00FF ÿ Latin Small Letter Y With Diaeresis

Why do you need Excel VBA ASC Function?

The main use of Excel Code Function is to convert alphabet into number. For example, you may want to know if a string contains A to Z, you can simply check if ASCII code is between 65 to 90, same for symbols.

Another use is to check unknown text. Some text looks like a space but underneath it may be something else, which is caused by conversion of other database type to Excel. After checking the ASCII code of that string, you can use Replace function to get rid of it.

Syntax of Excel VBA ASC Function

ASC(text)

Text   The text which you want to convert into ASCII code

Note that ASC Function only returns the ASCII code of the first character in the text.

In Excel worksheet, ASC Function is called Code.

Example of Excel ASC Function

VBA Code Result Explanation
ASC(“A”) 65
ASC(“Z”) 90
ASC(UCASE(Range(“A1”).Value))>=65 AND ASC(UCASE(Range(“A1”).Value))<=90) TRUE (assume A1 contains text “B”) Check if the first text in Cell A1 is an alphabet

Loop through each character in a text to see if the any character contains an alphabet, disregard case sensitivity.

Public Function wCheckAlphabet(var)
    For i = 1 To Len(var)
        If Asc(Mid(UCase(var), i, 1)) >= 65 And Asc(Mid(UCase(var), i, 1)) <= 90 Then
            wCheckAlphabet = True
            Exit Function
        Else
            wCheckAlphabet = False
        End If
    Next i
End Function

Outbound References

https://support.office.microsoft.com/en-us/article/CODE-function-daabc849-79e2-4661-8145-0b33c8397d4b?CorrelationId=2f7d4c56-6976-4a7f-948b-38b2b1da0be1&ui=en-US&rs=en-001&ad=US

Excel Text and String Functions:

Excel CODE & CHAR Functions, VBA Asc & Chr Functions, with examples.

Related Links:

1. Using VBA Chr and Asc functions to convert excel column number to corresponding column letter, and column letter to column number.

2. ASCII Code, Extended ASCII characters (8-bit system) and ANSI Code.

3. Excel Text and String Functions: TRIM & CLEAN.

4. Excel Text and String Functions: LEFT, RIGHT, MID, LEN, FIND, SEARCH, REPLACE, SUBSTITUTE.


Excel CODE Function (Worksheet)

The CODE Function returns the identifying numeric code of the first character in a text string. A ‘character set’ maps characters to their identifying code values, and may vary across operating environments viz. Windows, Macintosh, etc. The Windows operating environment uses the ANSI character set, whereas Macintosh uses the Macintosh character set. The returned numeric code corresponds to this character set — for a Windows computer, Excel uses the standard ANSI character set to return the numeric code. Syntax: CODE(text_string). The text_string argument is the text string whose first character’s numeric code is returned.  

The equivalent of excel CODE function in vba is the Asc function. Note that the Excel CODE function is the inverse of the Excel CHAR function. The formula =CODE(CHAR(65)) returns 65, because =CHAR(65) returns the character «A» and =CODE(«A») returns 65. 

In a Windows computer, Code function will return values as follows:

=CODE(«A») returns 65.

=CODE(«B») returns 66.

=CODE(«a») returns 97.

=CODE(«b») returns 98.

=CODE(«0») returns 48.

=CODE(«1») returns 49.

=CODE(«-1») returns 45, which is the code for «-» (hyphen) .

=CODE(» «) , note the space between inverted commas, returns 32.

=CODE(«»), no space between inverted commas, returns the #VALUE! error value.

=CODE(«America») returns 65, which is the code for «A», the first character in the text string.

=CODE(A1) returns 66, using cell reference. If cell A1 contains the text «Bond», CODE(A1) returns 66, which is the code for «B», the first character in the text string.

=CODE(«?») returns 63.

=CODE(«™») returns 153.


Excel CHAR Function (Worksheet)

Use the CHAR Function to return the character identified to the specified number. A ‘character set’ maps characters to their identifying code values, and may vary across operating environments viz. Windows, Macintosh, etc. The Windows operating environment uses the ANSI character set, whereas Macintosh uses the Macintosh character set. The returned character corresponds to this character set — for a Windows computer, Excel uses the standard ANSI character set. Syntax: CHAR(number). The number argument is a number between 1 and 255 which identifies the returned character. The function returns the #VALUE! error value if this argument is not a number between 1 and 255.

The equivalent of excel CHAR function in vba is the Chr function. Note that the Excel CHAR function is the inverse of the Excel CODE function. The formula =CHAR(CODE(«A»)) returns A, because =CODE(«A») returns the number 65 and =CHAR(65) returns A. 

In a Windows computer, Char function will return values as follows:

=CHAR(65) returns the character «A».

=CHAR(37) returns the character «%».

=CHAR(260) returns the #VALUE! error value.

=CHAR(163) returns the character «£».

=CHAR(A1) returns the character «B», using cell reference. If cell A1 contains the number 66, CHAR(A1) returns the character «B».


Examples of using the Excel CODE & CHAR Functions

Changing case (uppercase / lowercase) of alphabets in a string

Formula  =CHAR(CODE(A1)+32) returns the lowercase letter «b», if cell A1 contains the uppercase letter «B». This is because in the ANSI character set, the lowercase alphabets appear after uppercase alphabets, in an alphabetic order,  with a difference of exactly 32 numbers. Similarly, =CHAR(CODE(A1)-32) returns the uppercase letter «B», if cell A1 contains the lowercase letter «b».

Convert first character of the first word in a text string (consisting of letters), to lowercase, and first character of all subsequent words to uppercase. To convert the string «we like james bond» in cell A1 to «we Like James Bond» use the following formula:

=REPLACE(PROPER(A1), 1,1, CHAR(CODE( LEFT(PROPER(A1)))+32))

=PROPER(A1)   returns the text string «We Like James Bond».

=CHAR(CODE(LEFT( PROPER(A1)))+32)   returns the lowercase text «w».

The formula replaces the first character of the text, by first capitalizing it and then converting it to lowercase using CHAR/CODE functions.

It may however be noted, that the excel UPPER (or LOWER) function can also be used as alternate to CHAR/CODE functions. In this case the Formula  =REPLACE(PROPER(A1),1,1,LOWER(LEFT(PROPER(A1)))) will also give the same result and return the string «we Like James Bond».

—————————————————————————————————————————-

Making the above formula more complex:

Convert first character of the second word in a text string (consisting of letters) to lowercase, and the first character of all other words to uppercase (wherein words are separated by a single space). To convert the string «we Like James bond» in cell A1 to «We like James Bond» use the following formula: 

=REPLACE(PROPER(A1), FIND(» «, A1)+1, 1, CHAR(CODE(MID(PROPER(A1), FIND(» «, A1)+1, 1))+32))

=PROPER(A1)   returns text string «We Like James Bond».

=FIND(» «, A1)+1   returns the position 4.

=MID(PROPER(A1), FIND(» «, A1)+1,1)    returns L.

=CODE(MID(PROPER(A1), FIND(» «, A1)+1,1))    returns 76.

=CHAR(CODE(MID(PROPER(A1), FIND(» «, A1)+1,1))+32)   returns the text «l».

—————————————————————————————————————————  

If a text string has irregular spacing (ie. having lead spaces and multiple spaces between words), insert the TRIM function which removes all spaces from text except for single spaces between words:

=REPLACE(PROPER( TRIM(A1)), FIND(» «, TRIM(A1))+1, 1, CHAR(CODE(MID( PROPER( TRIM(A1)), FIND(» «, TRIM(A1))+1, 1))+32)) 

Note: In addition to the CHAR, CODE, LEFT & MID functions, we have also used the excel worksheet PROPER function. Syntax: PROPER(text).  This function: (i) Capitalizes any letter in a text string which follows a non-letter character, and also the first letter of the text string; (ii) Converts to Lowercase all other letters.

—————————————————————————————————————————

For many letters and controls, it might be much easier to format or otherwise manipulate data with their ANSI codes than using your keyboard.

If the address is currently split in different cells, and you wish to consolidate in a single cell in multiple lines, use the excel CHAR function as follows (refer Image 1):

=A1 & CHAR(10) & B1 & CHAR(10) & C1 & CHAR(10) & D1

The address is currently split in cells A1 to D1 and the above formula consolidates and formats into a single cell in multiple lines.

10 is the ANSI code (number) for line feed, and it provides the line breaks to format data.

Ensure that the cell text wrapping is enabled, by clicking on «Wrap Text».

————————————————————————————————————————-

Format a single line address into multiple lines, using the excel CHAR & SUBSTITUTE functions as follows (refer Image 2):

=SUBSTITUTE(A1,», «,CHAR(10))

The address is currently mentioned in cell A1 in a single line, and the above formula formats it (in cell A3) by removing commas and into multiple lines.

10 is the ANSI code (number) for line feed, and it provides the line breaks to format data.

Ensure that the cell text wrapping is enabled, by clicking on «Wrap Text».

—————————————————————————————————————————

NOTE: To format an address with line breaks (appearing in multiple lines in cell A1) to a single line format (cell A3), use the formula (refer Image 3): =SUBSTITUTE(A1, CHAR(10), «, «) 

——————————————————————————————————————————  

To insert special characters or symbols in a text string, use the excel CHAR function:

=»Exchange Rates Graph of Pound (» & CHAR(163) & «), Euro (» & CHAR(128) & «) and Dollar (» & (CHAR(36) & «)»)

The above formula inserts currency symbols, using the CHAR function.

Returns the text string: «Exchange Rates Graph of Pound (£), Euro(€) and Dollar ($)»


VBA Asc function

The vba Asc function returns the corresponding character code (Integer data type) for the first letter of a string. Syntax: Asc(string). It is necessary to specify the string argument — it is a string expression whose first letter’s character code is returned. You will get a run time error for a string with no characters. For non-DBCS systems the normal range for the returned number is 0 to 255, but on DBCS systems the range is -32768 to 32767.

Use the AscW function to return a Unicode character code, but if the platform does not support Unicode then AscW will give results identical to the Asc function. AscW should not be used in the Macintosh environment because Unicode strings are not supported in Visual Basic for the Macintosh.

VBA Chr function

The vba Chr function returns a character (string data type) identified to the specified character code. Syntax: Chr(charcode). It is necessary to specify the charcode argument — it is the character code (Long data type) which identifies the returned character. The normal range for charcode is 0 to 255, but on DBCS systems (character set that uses 1 or 2 bytes to represent a character, allowing more than 256 characters to be represented — used for languages such as Japanese and Chinese), the actual range for charcode is -32768 to 65535. Numbers from 0 to 31 are the standard ASCII Non-Printing Control Codes.

Use the ChrW function to return a Unicode character, but if the platform does not support Unicode ChrW will give results identical to the Chr function. ChrW should not be used in the Macintosh environment because Unicode strings are not supported in Visual Basic for the Macintosh.

MsgBox Chr(65), returns the letter «A».

MsgBox Asc(«A»), returns the number 65.

—————————————————————————————————————————-  

Sub Chr_Replace()
‘using vba Chr() function to replace characters in a string

Dim str As String

‘replaces letter «A» with «B»

str = Replace(«ABC», Chr(65), Chr(66))

‘returns the text «BBC»

MsgBox str

End Sub

————————————————————————————————————————-  

Sub TextFormat1()
‘using vba chr() function to remove commas and provide line breaks.

‘Chr(10) provides line feed/new line, and it replaces all instances of comma & following space, in the text string. Refer Image 4.
ActiveSheet.Cells(3, 1) = Replace(ActiveSheet.Cells(1, 1), «, «, Chr(10))

End Sub

————————————————————————————————————————————————————  

Sub TextFormat2()
‘inserting symbols using vba chr() function

Dim str As String

‘evaluates to text string «Exchange Rates Graph of Pound (£), Euro (€) and Dollar ($)»
str = «Exchange Rates Graph of Pound (» & Chr(163) & «), Euro (» & Chr(128) & «) and Dollar (» & (Chr(36) & «)«)

‘displays the text string «Exchange Rates Graph of Pound (£), Euro (€) and Dollar ($)»
MsgBox str

End Sub

————————————————————————————————————————————————————  

Sub DeleteSpaces()
‘remove spaces from a text string, in vba, using the vba Replace function

Dim str As String

str = «Removing  Spaces In Text String «

‘removes space character with ANSI code 32

str = Replace(str, Chr(32), «»)

‘returns the text «RemovingSpacesInTextString»

MsgBox str

End Sub

————————————————————————————————————————————————————  

Sub RemoveNumbers()
‘remove characters, say all numericals, from a text string, using the vba Replace function

Dim str As String, i As Integer

str = «RemovingNumbers 12in4 Text6 9String5″
 

‘chr(48) to chr(57) represent numericals 0 to 9 in ANSI/ASCII character codes

For i = 48 To 57

‘remove all numericals from the text string using vba Replace function:

str = Replace(str, Chr(i), «»)

Next i

‘returns text «Removing Numbers in Text String»

MsgBox str

End Sub

————————————————————————————————————————————————————

Sub ManipulateTextString()
‘manipulate text string consisting of only letters & spaces: remove all spaces, separate each word with comma, capitalize first letter of each word & convert all other letters to lowercase

Dim str As String

str = « red   Blue white  GREEN  yellow    «

‘use the worksheet Trim function to remove all spaces from text leaving only single spaces between words — also deletes all leading & trailing spaces

str = Application.Trim(str)

‘replaces space character (ANSI code 32) with comma character (ANSI code 44)

str = Replace(str, Chr(32), Chr(44))

‘use the worksheet Proper function to: Capitalize the first letter & any other letter which follows a non-letter character; also converts to Lowercase all other letters.

str = Application.Proper(str)

‘returns the text «Red,Blue,White,Green,Yellow»

MsgBox str


End Sub

————————————————————————————————————————————————————

VBA Codes:

Using VBA Chr and Asc functions to convert excel column number to corresponding column letter, and column letter to column number.

8.1 Символьные данные
8.2 Операции и функции для работы с символьными данными


8.1 Символьные данные

Напомним, что по умолчанию данные строкового типа имеют переменную длину и могут удлиняться (до длины в 2^31 символов) или укорачиваться. Однако такие строки занимают на 10 байт памяти больше, поэтому можно объявить строки фиксированной длины, явно указав количество символов.

Dim s as String*20

Если количество символов будет меньше объявленного, то свободные места заполняются пробелами, при попытке занесения большего количества символов лишние отбрасываются.

8.2 Операции и функции для работы с символьными данными

Единственная операция, применяемая при работе со строками — конкатенация. Зато встроенных функций для работы достаточно много:

Действие Ключевые слова
Сравнение двух строк. StrComp
Преобразование строк. StrConv
Изменение регистра. Lcase, UCase
Создание строк, содержащих повторяющиеся символы. Space, String
Определение длины строки. Len
Форматирование строки. Format
Выравнивание строки. Lset, RSet
Обработка строк. InStr, Left, LTrim, Mid, Right, RTrim, Trim
Выбор типа сравнения строк. Option Compare
Работа с кодами ASCII и ANSI. Asc, Chr

Сравнение двух строк. Функция StrComp возвращает значение типа Variant (Integer), представляющее результат сравнения строк.

StrComp(string1, string2[, compare])

Синтаксис функции StrComp содержит следующие аргументы:

string1 — Обязательный. Любое допустимое строковое выражение.

string2 — Обязательный. Любое допустимое строковое выражение.

compare — Необязательный. Указывает способ сравнения строк. Аргумент compare может быть опущен или иметь значение 0, 1 или 2. Чтобы выполнить двоичное сравнение, следует указать 0 (это значение используется по умолчанию). Чтобы выполнить посимвольное сравнение без учета регистра, следует указать 1. Если аргумент compare опущен, способ сравнения строк определяется значением параметра инструкции Option Compare.

Возвращаемые значения

string1 меньше чем string2 -1

string1 равняется string2 0

string1 больше чем string2 1

Пример:

Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd"	' Определяет переменные.
MyComp = StrComp(MyStr1, MyStr2, 1)	' Возвращает 0.
MyComp = StrComp(MyStr1, MyStr2, 0)	' Возвращает -1.
MyComp = StrComp(MyStr2, MyStr1)	' Возвращает 1.

Выбор типа сравнения строк. Применяется на уровне модуля для задания используемого по умолчанию способа сравнения строковых данных.

Option Compare {Binary | Text}

Инструкция Option Compare при ее использовании должна находиться в модуле перед любой процедурой и указывает способ сравнения строк (Binary или Text) для модуля. Если модуль не содержит инструкцию Option Compare, по умолчанию используется способ сравнения Binary

Инструкция Option Compare Binary задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Microsoft Windows порядок сортировки определяется кодовой страницей символов. В следующем примере представлен типичный результат двоичного порядка сортировки:

A < B < E < Z < a < b < e < z < Б < Л < Ш < б < л < ш

Инструкция Option Compare Text задает сравнение строк без учета регистра символов на основе системной национальной настройки. Тем же символам, что и выше, при сортировке с инструкцией Option Compare Text соответствует следующий порядок:

(A=a) < (B=b) < (E=e) < (Z=z) < (Б=б) < (Л=л) < (Ш=ш)

Преобразование строк. Функция StrConv имеет следующи синтаксис:

StrConv(string, conversion)

Здесь string — строковое выражение, которое следует преобразовать, conversion — значение типа Integer, Сумма значений, указывающих тип преобразования, которое следует выполнить.

vbUpperCase 1 Преобразование строки к верхнему регистру.

vbLowerCase 2 Преобразование строки к нижнему регистру.

vbProperCase 3 Преобразование первой буквы каждого слова в строке в прописную.

Вместо одной этой функции можно применять функции Lcase, Ucase.

Lcase — возвращает значение типа String, представляющее строку, преобразованную к нижнему регистру.

LCase(строка)

Обязательный аргумент строка представляет любое допустимое строковое выражение. Если строка имеет значение Null, возвращается значение Null.

К нижнему регистру преобразуются только прописные буквы; строчные буквы и прочие символы остаются неизмененными.

Ucase — возвращает значение типа Variant (String), содержащее строку, преобразованную к верхнему регистру.

UCase(строка)

Обязательный аргумент строка представляет любое допустимое строковое выражение. Если строка имеет значение Null, возвращается значение Null.

К верхнему регистру преобразуются только строчные буквы; прописные буквы и прочие символы остаются неизменными.

Создание строк, содержащих повторяющиеся символы. Для создания таких строк применяют функции Space и String. Функция Space(число) формирует строку, а обязательный аргумент число указывает нужное число пробелов в строке. Ее удобно использовать для форматирования и очистки данных в строках фиксированной длины.

Функция String(number, character) содержит следующие аргументы:

number — Значение типа Long. Длина возвращаемой строки.

character — Значение типа Variant. Код символа или строковое выражение, первый символ которого используется при создании возвращаемой строки.

Определение длины строки. При работе со строками переменной длины удобно использовать функцию Len(строка), возвращую значение типа Long, содержащее число символов в строке

Выравнивание строки. Оператор Lset — выравнивает строку по левому краю строковой переменной или копирует переменную одного определяемого пользователем тип в переменную другого типа, также определенного пользователем.

LSet переменная = строка

LSet имяПеременной1 = имяПеременной2

Здесь строка — строковое выражение, которое следует выровнять по левому краю строки переменная. Все оставшиеся символы в строке переменная LSet заменяет на пробелы. Если строка длиннее, чем переменная, LSet копирует в переменную столько начальных символов строки, сколько в ней поместится.

Rset — то же самое, но выравнивает строку по правому краю строковой переменной. Если длина строки переменная больше, чем строка, инструкция RSet заменяет все оставшиеся символы вплоть до начала строки переменная пробелами.

Обработка строк. Для разнообразной обработки строк применяются функции InStr, Left, LTrim, Mid, Right, RTrim, Trim.

InStr — Возвращает значение типа Long, указывающее позицию первого вхождения одной строки внутри другой строки.

InStr([start, ]string1, string2[, compare])

Синтаксис функции InStr содержит следующие аргументы:

start — числовое выражение, задающее позицию, с которой начинается каждый поиск. Если этот аргумент опущен, поиск начинается с первого символа строки. Указание аргумента start является обязательным, если указан аргумент compare.

string1 — Строковое выражение, в котором выполняется поиск.

string2 — Искомое строковое выражение.

compare — Указывает способ сравнения строк. Аргумент compare может быть опущен или иметь значение 0 или 1. Чтобы выполнить двоичное сравнение, следует указать 0 (это значение используется по умолчанию). Чтобы выполнить посимвольное сравнение без учета регистра, следует указать 1. Если аргумент compare опущен, способ сравнения строк определяется значением параметра инструкции Option Compare.

Возвращаемые значения

string1 является пустой строкой 0

string2 является пустой строкой start

string2 не найдена 0

string2 найдена в string1 Позиция обнаруженной подстроки

start > string2 0

Left — возвращает значение типа String, содержащее указанное число первых символов строки.

Left(string, length)

Здесь string — строковое выражение, из которого извлекаются символы. length — значение типа Variant (Long), числовое выражение, указывающее число возвращаемых символов. Если 0, возвращается пустая строка («»). Если значение length больше либо равняется числу символов в строке string, возвращается вся строка.

Для определения числа символов в строке string следует использовать функцию Len.

Ltrim, Rtrim, Trim — возвращают значение типа String, содержащее копию строки, из которой удалены пробелы, находившиеся в начале строки (LTrim), в конце строки (RTrim) или в начале и конце строки (Trim).

LTrim(строка), RTrim(строка), Trim(строка)

Обязательный аргумент строка представляет любое допустимое строковое выражение.

Mid — Возвращает значение типа Variant (String), содержащее указанное число символов строки.

Mid(string, start[, length])

Здесь string — строковое выражение, из которого извлекаются символы, start — значение типа Long. Позиция символа в строке string, с которого начинается нужная подстрока. Если start больше числа символов в строке string, функция Mid возвращает пустую строку («»).

length — значение типа Variant (Long). Число возвращаемых символов. Если этот аргумент опущен или превышает число символов, расположенных справа от позиции start, то возвращаются все символы от позиции start до конца строки.

Right — Возвращает значение типа String, содержащее указанное число последних символов строки.

Right(string, length)

Здесь string — строковое выражение, из которого извлекаются символы. length — значение типа Variant (Long). Числовое выражение, указывающее число возвращаемых символов. Если 0, возвращается пустая строка («»). Если превышает число символов в строке string, возвращается вся строка.

Работа с кодами ASCII.

Asc — Возвращает значение типа Integer, представляющее код символа для первого символа строки.

Asc(строка)

Аргумент строка является любым допустимым строковым выражением. Если строка не содержит символов, возникает ошибка выполнения. Возвращаемые значения лежат в диапазоне 0 — 255.

Chr — возвращает значение типа String, содержащее символ, соответствующий указанному коду символа.

Chr(кодСимвола)

Обязательный аргумент кодСимвола является значением типа Long, определяющим символ.

Коды 0-31 соответствуют стандартным управляющим символам ASCII. Например, Chr(10) возвращает символ перевода строки. Обычным диапазоном значений аргумента кодСимвола является интервал 0-255.

Пример: Заменить в строке буквы А, Б, В на 1, 2, 3 соответственно

Sub пример6()
Dim s As String, sn As String, t As String
Dim l As Integer, i As Integer
Call read("g1", s)
l = Len(s)
For i = 1 To l
t = Mid(s, i, 1)
Select Case t
Case "А": sn = sn + "1"
Case "Б": sn = sn + "2"
Case "В": sn = sn + "3"
Case Else: sn = sn + t
End Select
Next i
Call out("h1", sn)
End Sub
Пример: Из набора слов вывести только те, у которых одинаковые первые буквы
Sub пример7()
Dim first() As String, s As String, n As Integer, i As Integer, k As Integer
i = 0: k = 0
Do While Лист1.Range("g" & i+1).Text <> ""
i = i + 1
s = Лист1.Range("g" & i).Text
ReDim Preserve first(1 To i)
first(i) = Left(s, 1)
Loop
Лист1.Range("h1", "h" & i).Clear
For n = 1 To i
If n <> i Then
For k = n + 1 To i
If first(k) = first(n) Then
Лист1.Range("h" & n).Value = Лист1.Range("g" & n).Text
Лист1.Range("h" & k).Value = Лист1.Range("g" & k).Text
End If
Next
End If
Next
End Sub

VBA ASC

Excel VBA ASC

ASCII which is American Standard Code for Information Interchange has introduced a proper structure for each number and alphabets. And these ASC Codes are frequently used in many programming languages. In VBA also, we have these ASC Codes applicable in many ways. These codes are created for each programming languages so that computer can understand which is being fed to it. ASCII is the numerical representation of every word and alphabet.

In ASC, we have different types of characters printing characters (which can be seen) to non-printing characters (which cannot be seen such as any process or spaces). For example, we someone says “Good Morning” to you then it is being communicated with sound waves. Now if same we want to feed this into a computer or send a message to anyone then the computer will convert the text “Good Morning” into ASC Codes and then the message will get transferred to that person. But again that person will receive the message in a text, not in some codes.

Formula For ASC Function in Excel VBA

Let us look below the formula for ASC function in VBA.

Syntax of VBA ASC

How to Use the ASC Function in Excel VBA?

Below are the different examples to use ASC function in Excel using VBA code.

You can download this VBA ASC Excel Template here – VBA ASC Excel Template

Excel VBA ASC – Example #1

We can get the table of ASC from the ASCII website. We have already shown that table for reference. Below is the table which has Dec, Hex, HTML ASC codes for special non-printing characters and alphabets from A to Z.

VBA ASC code 1

And moreover, we have ASC codes for special characters and some mathematical signs as well as shown below starting from 128 to 255.

VBA ASC code 2

In total, we have 255 ASC codes which can be used in VBA. Now we will implement these codes in VBA also.

  • Go to VBA Insert menu option and open a Module as shown below.

Insert Module Example 1-1

  • Now in the opened module write the subcategory of VBA ASC function as shown below.

Code:

Sub VBA_ASC()

End Sub

VBA ASC Example 1-2

  • After that define a variable DIM with any name, let’s say it is “A” and assign it Integers. Although we will be giving text and numbers as an input to variable A but using Integer because VBA ASC function considers integers as an output in which input will be as a string. We will see this further.

Code:

Sub VBA_ASC()

Dim A As Integer

End Sub

VBA ASC Example 1-3

  • Now assign variable A to ASC function as shown below.

VBA ASC Example 1-4

  • Now select any word or alphabet as per need inside the brackets as shown below.

Code:

Sub VBA_ASC()

Dim A As Integer

A = Asc("B")

End Sub

VBA ASC Example 1-5

  • Now to see the ASC code value it is best to use the message box. Assign a MsgBox to variable A as shown below.

Code:

Sub VBA_ASC()

Dim A As Integer

A = Asc("B")

MsgBox A

End Sub

VBA ASC Example 1-6

  • Once done, then click on the play button which is located below the menu bar to run the code.

VBA ASC Example 1-7

We will see, the ASC code of alphabet “B” is coming as 66. This is the same code mentioned in ACS Table which we have been at the starting of example-1.

Excel VBA ASC – Example #2

In this example, we will see, how a complete word will be encoded with the help of VBA ASC. For this we will use the same code structure which we have seen in example-1, only keeping only brackets of ASC function blank as shown below.

VBA ASC Example 2-1

Now let’s insert any word into those brackets. Let’s consider that word “Excel

Code:

Sub VBA_ASC1()

Dim A As Integer

A = Asc("Excel")

MsgBox A

End Sub

VBA ASC Example 2-2

Now compile the code and run it after that. We will see ASC function has generated the ASC code as 69 as shown below.

Result Example 2-3

And if we match this ASC Code with the list which we saw in example-1, then we will see that for capital E which is at the start of Excel is marked as 69.

Excel VBA ASC – Example #3

In this example, we will see how a lower case letter of the same word can give ASC code. For this we will consider the same word which we have seen above example “Excel” but we will keep “e” in lower case. Consider the same body of code which we have used above.

VBA ASC Example 3-1

Now in that bracket write “excel” in lower case.

Code:

Sub VBA_ASC2()

Dim A As Integer

A = Asc("excel")

MsgBox A

End Sub

Lower case Character Example 3-2

Again, compile and run the code. We will see, for lower case “e” the ASC Code is coming as 101 as shown below.

Result Example 3-3

If we match this with the list shown in example-1, we will see, for each lower case alphabet, there is separate ASC code given which is different than that of Upper case letters.

Excel VBA ASC – Example #4

In this example, we will see how a special character can be used to get the ASC code out of it. Again, we will continue using the same code format that we have seen in example-1.

VBA ASC Example 4-1

Now insert any special character which is allowed to be used in VBA coding. We mostly use an ampersand (&) in VBA in different forms. So we will continue with the same here as well.

Code:

Sub VBA_ASC3()

Dim A As Integer

A = Asc("&")

MsgBox A

End Sub

Special Character Example 4-2

Again compile the code and run. We will see the message box containing ASC Code as 38 as shown below.

Result Example 4-3

And if we match this code with the table shown in example-1 we will see, for the ampersand (&) ASC code is defined as 38.

Pros of Excel VBA ASC

  • ASC Code is very revolutionary when it got introduced, as it is very helpful in standardizing the transmission of computer codes and messages.
  • For each letter respective of upper and lower cases, ASCII has given separate ASC code so that word in upper case and lower case will get encode as it is fed.

Things to Remember

  • VBA doesn’t consider ASC codes of complex mathematical symbols which are the Extended ASCII Codes. An only simple character can be used to get it Dec ASC Code.
  • Upper and lower case alphabets have different ASC codes.
  • VBA generates only Dec of ASC codes.
  • Once done, must save the file in Macro enabled excel format. So that VBA code can be retained.

Recommended Articles

This is a guide to VBA ASC Function. Here we discuss how to use ASC function in Excel VBA along with practical examples and a downloadable excel template. You can also go through our other suggested articles –

  1. VBA Match
  2. VBA StrComp
  3. VBA Web Scraping
  4. VBA XML

  • Excel VBA ASC

Excel VBA ASC

ASCII, который является американским стандартным кодом для обмена информацией, ввел правильную структуру для каждого числа и алфавитов. И эти коды ASC часто используются во многих языках программирования. Кроме того, в VBA эти ASC-коды применяются во многих отношениях. Эти коды создаются для каждого языка программирования, чтобы компьютер мог понять, что ему подают. ASCII — это числовое представление каждого слова и алфавита.

В ASC у нас есть различные типы символов, печатающих символы (которые можно увидеть), к непечатаемым символам (которые не могут быть видны, например, какие-либо процессы или пробелы). Например, мы, кто-то, говорим вам «Доброе утро», тогда это сообщается со звуковыми волнами. Теперь, если мы хотим передать это на компьютер или отправить кому-либо сообщение, компьютер преобразует текст «Доброе утро» в коды ASC, а затем сообщение будет передано этому человеку. Но снова этот человек получит сообщение в тексте, а не в некоторых кодах.

Формула для функции ASC в Excel VBA

Давайте посмотрим ниже формулу для функции ASC в VBA.

Как использовать функцию ASC в Excel VBA?

Ниже приведены различные примеры использования функции ASC в Excel с использованием кода VBA.

Вы можете скачать этот шаблон VBA ASC Excel здесь — Шаблон VBA ASC Excel

Excel VBA ASC — Пример № 1

Мы можем получить таблицу ASC с веб-сайта ASCII. Мы уже показали эту таблицу для справки. Ниже приведена таблица, содержащая ASC-коды Dec, Hex, HTML для специальных непечатаемых символов и алфавитов от A до Z.

И, кроме того, у нас есть коды ASC для специальных символов и некоторых математических знаков, а также показано ниже, начиная со 128 до 255.

Всего у нас есть 255 кодов ASC, которые можно использовать в VBA. Теперь мы будем реализовывать эти коды и в VBA.

  • Перейдите в пункт меню VBA Insert и откройте модуль, как показано ниже.

  • Теперь в открытом модуле напишите подкатегорию функции VBA ASC, как показано ниже.

Код:

 Sub VBA_ASC () End Sub 

  • После этого определите переменную DIM с любым именем, скажем, это « A » и присвойте ей целые числа. Хотя мы будем давать текст и числа в качестве входных данных для переменной A, но будем использовать Integer, потому что функция ASC VBA рассматривает целые числа как выходные данные, в которых входные данные будут представлены в виде строки. Мы увидим это дальше.

Код:

 Sub VBA_ASC () Dim A As Integer End Sub 

  • Теперь присвойте переменную A функции ASC, как показано ниже.

  • Теперь выберите любое слово или алфавит в соответствии с необходимостью в скобках, как показано ниже.

Код:

 Sub VBA_ASC () Dim A As Integer A = Asc ("B") End Sub 

  • Теперь, чтобы увидеть значение кода ASC, лучше всего использовать окно сообщения. Присвойте MsgBox переменной A, как показано ниже.

Код:

 Sub VBA_ASC () Dim A As Integer A = Asc ("B") MsgBox A End Sub 

  • После этого нажмите кнопку воспроизведения, расположенную под строкой меню, чтобы запустить код.

Мы увидим, что код ASC алфавита «B» идет как 66 . Это тот же код, упомянутый в таблице ACS, который мы использовали в начале примера-1.

Excel VBA ASC — Пример № 2

В этом примере мы увидим, как будет закодировано полное слово с помощью VBA ASC. Для этого мы будем использовать ту же структуру кода, которую мы видели в примере 1, оставляя только квадратные скобки функции ASC пустыми, как показано ниже.

Теперь давайте вставим любое слово в эти скобки. Давайте рассмотрим это слово « Excel »

Код:

 Sub VBA_ASC1 () Dim A As Integer A = Asc ("Excel") MsgBox A End Sub 

Теперь скомпилируйте код и запустите его после этого. Мы увидим, что функция ASC сгенерировала код ASC как 69, как показано ниже.

И если мы сопоставим этот код ASC со списком, который мы видели в примере-1, то мы увидим, что для заглавной E, которая находится в начале Excel, помечено как 69.

Excel VBA ASC — Пример № 3

В этом примере мы увидим, как строчная буква того же слова может дать код ASC. Для этого мы рассмотрим то же слово, которое мы видели выше в примере «Excel», но мы будем держать «e» в нижнем регистре. Рассмотрим ту же часть кода, которую мы использовали выше.

Теперь в этой скобке напишите « excel » в нижнем регистре.

Код:

 Sub VBA_ASC2 () Dim A As Integer A = Asc ("excel") MsgBox A End Sub 

Снова скомпилируйте и запустите код. Мы увидим, что для строчной буквы «e» код ASC будет иметь значение 101, как показано ниже.

Если мы сопоставим это со списком, показанным в примере-1, мы увидим, что для каждого строчного алфавита дается отдельный код ASC, который отличается от кода заглавных букв.

Excel VBA ASC — Пример № 4

В этом примере мы увидим, как можно использовать специальный символ, чтобы извлечь из него код ASC. Опять же, мы продолжим использовать тот же формат кода, который мы видели в примере-1.

Теперь вставьте любой специальный символ, который разрешено использовать в кодировании VBA. В основном мы используем амперсанд (&) в VBA в разных формах. Поэтому мы продолжим то же самое и здесь.

Код:

 Sub VBA_ASC3 () Dim A As Integer A = Asc ("&") MsgBox A End Sub 

Снова скомпилируйте код и запустите. Мы увидим окно сообщения с кодом ASC 38, как показано ниже.

И если мы сопоставим этот код с таблицей, показанной в примере-1, то увидим, что для амперсанда (&) ASC-код определяется как 38.

Плюсы Excel VBA ASC

  • Код ASC очень революционен с момента его введения, поскольку он очень помогает стандартизировать передачу компьютерных кодов и сообщений.
  • Для каждой буквы, соответствующей верхнему и нижнему регистру, ASCII дал отдельный код ASC, так что слово в верхнем и нижнем регистре будет кодироваться при подаче.

То, что нужно запомнить

  • VBA не рассматривает коды ASC сложных математических символов, которые являются расширенными кодами ASCII. Для его получения можно использовать только простой символ.
  • Буквы верхнего и нижнего регистра имеют разные коды ASC.
  • VBA генерирует только декабрь кодов ASC.
  • После этого необходимо сохранить файл в формате Macro с поддержкой Excel. Так что код VBA можно сохранить.

Рекомендуемые статьи

Это руководство по функции VBA ASC. Здесь мы обсудим, как использовать функцию ASC в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Как использовать функцию соответствия VBA?
  2. Функция DCOUNT в Excel
  3. Учебники по VBA StrComp
  4. Функция COMBIN в Excel

Excel VBA Asc Function

The Asc function in VBA returns an integer value representing a character code corresponding to the function’s first character of a supplied string (string provided as argument/parameter). It can be used or given in a macro code generally entered via Visual Basic Editor.

We can use the Excel environment in which the macro runs in the Visual Basic Editor (VBE) to edit and debug the macro codes. It holds the macro code and links it to the Excel workbook.

The integer value returned by the Asc function is the corresponding ASCII character code in VBA. ASCII (American Standard Code for Information Interchange) is a 7-bit character encoding that has a total of 128 characters defined in it, including Latin alphabets, ten Arabic numerals, some punctuation marks, and control characters. It does not include diacritical characters as they require a minimum space of 8-bit for encoding. We can perform this 8-bit coding with ANSI (American National Standards Institute), which has 256 characters defined. ANSI is also called extended ASCII.

VBA-Asc-Function

Syntax of VBA Asc Function

The general syntax for the ASC function is as follows:

VBA Asc syntax.png

The ASC formula syntax has the following argument:

String: Required. It represents the text string whose first character’s corresponding character code is desired and returned.

If the string supplied has only one character, then the function returns the numeric character code for that character itself.

Examples of Excel VBA Asc

Let us see below how we can use the Asc in Excel VBA.

You can download this VBA Asc Function Excel Template here – VBA Asc Function Excel Template

Example #1

We have an Excel file containing some strings. We wish to use the Asc function with these strings. But, first, let us see the strings contained in the file:

VBA Asc Example 1

We use the Asc function in VBA in a macro that can be written in the Visual Basic Editor and can be accessed as follows:

First, go to “Developer,” and then click on “Macros.”

VBA Asc Example 1-1

Now, create a macro name: Under “Macro Name,” write the name of the macro desired to be created and select PERSONAL.XLSB in the dropdown of ‘Macros In.’ We can store the macros in a personal workbook, a hidden workbook that opens in the background whenever we start Excel. Selecting PERSONAL.XLSB would save the macros in the Personal workbook, thus making the macro always available since the personal workbook is not system/file specific.

VBA Asc Example 1-2

Click on “Create.”

VBA Asc Example 1-3

It would open a window with a VBA subprocedureSUB in VBA is a procedure which contains all the code which automatically gives the statement of end sub and the middle portion is used for coding. Sub statement can be both public and private and the name of the subprocedure is mandatory in VBA.read more in Visual Basic Editor as follows:

Example 1-4

Now, define the variable Result1

Code:

Sub Code()

Dim Result1

End Sub

VBA Asc Example 1-5

Now, assign the variable Result1 with the formula to return the character code of the string:

Code:

Sub Code()

Dim Result1

Result1 = Asc("Raj")

End Sub

VBA Asc Example 1-6

Now, the resultant value of Result1 can be displayed and returned using a VBA message boxVBA MsgBox function is an output function which displays the generalized message provided by the developer. This statement has no arguments and the personalized messages in this function are written under the double quotes while for the values the variable reference is provided.read more (MsgBox) as follows:

Code:

Sub Code()

Dim Result1

Result1 = Asc("Raj")

MsgBox Result1

End Sub

VBA Asc Example 1-7

Now, when we run this code manually by clicking on “Run” at the top of the window or by pressing F5, we get the character code of the first letter of the string: “Raj,” displayed in a message box as follows:

VBA Asc Example 1-8.png

So, we can see in the above screenshot that on running the macro, “82” is returned in a message box. It implies that the character code for “R” is 82.

Now, in the above example, we wish to find the character code for the string: “Karan.” To do this, we follow the same steps as above.

Instead of Raj, we will write Karan to get its character code in the code.

Code:

Sub String2()

Dim Result2
Result2 = Asc("Karan")
MsgBox Result2

End Sub

Example 2

Now, we run this code manually or by pressing F5, and we get the character code of the first letter of the string: “Karan,” displayed in a message box as follows:

Example 2-1

So, we can see in the above screenshot that on running the macro, “75” is returned in a message box. It implies that the character code for ‘K’ is 75.

Now, let us see how the result changes for the remaining 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

On running these sub-procedures one by one, the following character codes return in the message box (one at a time, respectively). It is the list of corresponding values returned for the above strings.

VBA Asc Example 3-6

So, as the above screenshot, we can see that the ASC function returns the character code as 65 for the string: “Arun” and the string: “A” because the character code returned is the VBA ASCII or equivalent character code for the first letter of the string in case the string is more than one character. Hence, 65 returns for both as the initial or first character of the string: “Arun” is also “A.”

Example #2

If the string supplied as parameter/argument to the VBA ASC function is an empty/blank string (or a string with no characters), then the function returns a run-time error.

The following code explains the same.

Sub blank()
Dim result
result = Asc("")
MsgBox (result)

End Sub

Example 4-1

When we run this code, we get the run-time error as follows.

Example 4-2

So, we can see in the above screenshot that when the string supplied as a parameter or argument to the ASC function is blank/empty, the function returns a run-time error.

Things to Remember

  • The string supplied to the VBA ASC function can be any valid string expression.
  • The Asc function is case-sensitive.
  • The integer value returned by the Asc function is in the range of 0-255.
  • The ASCII codes in VBA for A-Z are 65-90, and for a-z are 97-122.
  • The name given to a macro or sub-procedure cannot be the name of some default function in VBA. If named so, then the sub-procedure will show an error.

Recommended Articles

This article has been a guide to VBA Asc. Here, we discuss examples of the Asc function in VBA to return ASCII Character codes, examples, and downloadable Excel templates. Below you can find some useful Excel VBA articles: –

  • Goal Seek in VBA
  • VBA Chr
  • VBA StrConv Function
  • Use Char Function In Excel
  • VBA StatusBar

Like this post? Please share to your friends:
  • Excel vba array with range
  • Excel vba array split
  • Excel vba array sort
  • Excel vba array of user defined types
  • Excel vba array of functions