3.3.5.1 Non-Latin Identifiers

 Japanese-identifier = first-Japanese-identifier-character *subsequent-Japanese-identifier-character
 first-Japanese-identifier-character = (first-Latin-identifier-character / CP932-initial-character) 
 subsequent-Japanese-identifier-character = (subsequent-Latin-identifier-character / CP932-subsequent-character) 
 CP932-initial-character = < character ranges specified in section 3.3.5.1.1> 
 CP932-subsequent-character = < character ranges specified in section 3.3.5.1.1> 
  
 Korean-identifier = first-Korean-identifier-character *subsequent Korean-identifier-character
 first-Korean-identifier-character = (first-Latin-identifier-character / CP949-initial-character ) 
 subsequent-Korean-identifier-character = (subsequent-Latin-identifier-character / CP949-subsequent-character) 
 CP949-initial-character = < character ranges specified in section 3.3.5.1.2> 
 CP949-subsequent-character = < character ranges specified in section 3.3.5.1.2> 
  
 simplified-Chinese-identifier = first-sChinese-identifier-character 
          *subsequent-sChinese-identifier-character 
 first-sChinese-identifier-character = (first-Latin-identifier-character / CP936-initial-character)
 subsequent-sChinese-identifier-character = (subsequent-Latin-identifier-character / CP936-subsequent-character) 
 CP936-initial-character = < character ranges specified in section 3.3.5.1.3> 
 CP936-subsequent-character = < character ranges specified in section 3.3.5.1.3> 
    
 traditional-Chinese-identifier = first-tChinese-identifier-character 
                   *subsequent-tChinese-identifier-character 
 first-tChinese-identifier-character = (first-Latin-identifier-character / CP950-initial-character) 
 subsequent-tChinese-identifier-character = (subsequent-Latin-identifier-character / CP950-subsequent-character) 
 CP950-initial-character = < character ranges specified in section 3.3.5.1.4> 
 CP950-subsequent-character = < character ranges specified in section 3.3.5.1.4> 
  
 codepage-identifier = (first-Latin-identifier-character / CP2-character) 
        *(subsequent-Latin-identifier-character / CP2-character) 
  
 CP2-character = <any Unicode character that has a mapping to the character range %x80-FF in a Microsoft Windows supported code page> 

VBA support for identifiers containing non-Latin ideographic characters was designed based upon characters code standards that predate the creation of Unicode. For this reason, non-Latin Identifiers are specified in terms of the Unicode characters corresponding to code points in these legacy standards rather than directly using similar Unicode characters classes.

Any Unicode character that corresponds to a character in a Microsoft Windows code page with a single byte code point in the range %x80-FF is a valid <CP2-characters>. The code pages defining such characters are Windows Codepages 874, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, and 1258. The definitions of these codepages and the mapping of individual codepage specific code points to Unicode code points are specified by files hosted at [UNICODE-BESTFIT] and explained by [UNICODE-README]. [CODEPG] provides an informative overview of the code pages code points and their mappings to the corresponding Unicode characters.