Visual Basic for Applications
uređuje Dragan Grbić

 Office Praktikum | Mapa sajta 

 
Bookmark and Share
Matična strana sajta
Novo na sajtu
Mapa sajta
Beleške
Knjiga posetilaca
Kontakt

Prethodna stranica
Pretraga sajta
Pretraga MSKB

Blog Praktikuma
RSS feed 
 
Office Praktikum

VBA: ima još...
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

   

Sponzori sajta

  Connectivity by SBB
 
Connectivity by SBB

 

Informacije

NOVOSTI
Novi prilog o Wordu
Tri nova autorska članka
Četiri priloga o Accessu
Opis i uputstvo za alatku YuCirLat '08 (Word)

SADRŽAJ ZA PREUZIMANJE
YuCirLat '08 unapređena alatka za konverziju kodnih rasporeda u Wordu

SKREĆEMO PAŽNJU
Beleške: B(l)oga li ti tvoga!- prilog koji će nekog možda čak i da naljuti
Kako pretraživati MSKB
* a pronaći ćete i još mnogo novih sadržaja...

USKORO SERIJA ČLANAKA O OFFICEU 2010

POZIVAMO VAS
* i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.



  (C) 2000-2009 Praktikum na Webu
 

Ćirilični stringovi u VBA

Nivo:  NIVO 2 - klinite za objašnjenje


VBA odbija da radi direktno sa ćiriličnim stringovima. Nema druge, nego da se formira jezgro "pseudo-slova" - promenljivih kojima ćete moći da formirate string.

Nedavno sam bio u prilici da na svojoj koži osetim problem rada sa stringovima u Unicode ćirilici u VBA (reč je o ispisu broja slovima u Excelu, pogledajte prilog). Prosto, nemoguće je da promenite tastaturu, a potom da ispišete ćirilični string, jer VBE to ne prihvata.

Nije bilo druge, nego da formiram tabelu promenljivih koje će interpretirati ćirilična slova. Za tu svrhu, poslužio sam se "programerskim lopovlukom" i preuzeo tabelu kodova Unicode ćiriličnih slova iz sistema makroa YUConv() kolege Dragana Vračara. Rezultat je sledeća tabela:

' velika 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 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)

Ovo jezgro je već primenjeno u makrou SlovimaC(broj) koji možete naći u Download zoni Praktikuma. Ukratko, primena ovoga je jednostavna: ako treba kroz VBA modul negde u dokumentu ispisati string 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 - i teško da ima drugog izbora.

U Excelu ćete string iz VBA modula ispisati ovako:

Activesheet.Range("A1").Value = txtPrakC

a u Wordu:

Selection.TypeText Text:=txtPrakC

i tako dalje...

UPOZORENJE: možete skratiti stringove na dva (tri) znaka, ali bolje nemojte: ako skinete donju crtu, "malo ćirilično e" će se pretvoriti u VBA klauzulu Me koja se odnosi na aktuelni objekat modula.
 

 

  (C) 2000-2009 Praktikum na Webu

novembar 2000.


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2009; Valinor Design; sva prava pridržana.