PC Savet: Ćirilični stringovi u VBA
Kontrola ćirilice u VBA je, naizgled, nemoguća: ne možete da promenite tastaturu, a potom da ispišete ćirilični string, jer VBE to ne prihvata. Nema druge, nego da se formira jezgro "pseudo-slova" – promenljivih kojima ćete moći da formirate string.
Moraćete da formirate kolekciju promenljivih koje će interpretirati ćirilična slova. Za tu svrhu, možete se poslužiti "programerskom reciklažom", uzimajući odgovarajuće kodove ćiriličnih Unicode slova iz sistema makroa YUConv() za Word. Taj deo listinga dat je na slici; nemojte štedeti na imenima, skraćujući ih: ako skinete donju crtu, "malo ćirilično e" će se pretvoriti u VBA klauzulu Me koja se odnosi na aktuelni objekat modula.
Primena je jednostavna: ako treba kroz VBA modul negde u dokumentu ispisati tekst Praktikum ćirilicom, formirajte ga ovako:
txtPrakC = v_p & m_r & m_a & m_k & _
m_t & m_i & m_k & m_u & m_m
Jeste, malo je rogobatno, ali je konzistentno… a drugog izbora nema.
U Microsoft Excel-u ćete string iz VBA modula ispisati ovako:
Activesheet.Range("A1").Value = txtPrakC
a u Word-u:
Selection.TypeText Text:=txtPrakC
Ćirilični tekst u VBA modulu
'
' velika ćirilična slova
' azbučni raspored
'
v_a = ChrW(1040): v_b = ChrW(1041)
v_v = ChrW(1042): v_g = ChrW(1043)
v_d = ChrW(1044): v_dj = ChrW(1026)
v_e = ChrW(1045): v_zz = ChrW(1046)
v_z = ChrW(1047): v_i = ChrW(1048)
v_j = ChrW(1032): v_k = ChrW(1050)
v_l = ChrW(1051): v_lj = ChrW(1033)
v_m = ChrW(1052): v_n = ChrW(1053)
v_nj = ChrW(1034): v_o = ChrW(1054)
v_p = ChrW(1055): v_r = ChrW(1056)
v_s = ChrW(1057): v_t = ChrW(1058)
v_cc = ChrW(1035): v_u = ChrW(1059)
v_f = ChrW(1060): v_h = ChrW(1061)
v_c = ChrW(1062): v_ch = ChrW(1063)
v_dz = ChrW(1039): v_sh = ChrW(1064)
'
'
' mala ćirilična slova
' azbučni raspored
'
m_a = ChrW(1072): m_b = ChrW(1073)
m_v = ChrW(1074): m_g = ChrW(1075)
m_d = ChrW(1076): m_dj = ChrW(1106)
m_e = ChrW(1077): m_zz = ChrW(1078)
m_z = ChrW(1079): m_i = ChrW(1080)
m_j = ChrW(1112): m_k = ChrW(1082)
m_l = ChrW(1083): m_lj = ChrW(1113)
m_m = ChrW(1084): m_n = ChrW(1085)
m_nj = ChrW(1114): m_o = ChrW(1086)
m_p = ChrW(1087): m_r = ChrW(1088)
m_s = ChrW(1089): m_t = ChrW(1090)
m_cc = ChrW(1115): m_u = ChrW(1091)
m_f = ChrW(1092): m_h = ChrW(1093)
m_c = ChrW(1094): m_ch = ChrW(1095)
m_dz = ChrW(1119): m_sh = ChrW(1096)
'
Izvor: PC 1000