Folosirea funcțiilor de convertire a datelor

În VBA tipurile de date nu se convertesc des, dar e bine să se cunoască cel puțin ceea ce fac aceste funcții. Unele limbaje de programare sunt destul de stricte în ceea ce privește solicitarea introducerii explicite a datelor (uneori numită strong data typing). Există câteva situații speciale chiar și în VBA unde un tip de variabilă trebuie convertit în altul. De exemplu, se poate utiliza comanda InputBox pentru a obține unele informații de la utilizator.

Utilizatorul introduce date la tastatură, iar toate datele introduse vor fi caractere (șir de caractere - string). Dar dacă macrocomanda are nevoie să facă operații matematice cu datele introduse, de exemplu utilizarea comenzii + pentru a aduna numere, datele introduse trebuie convertite în variabile numerice (sau folosirea implicită a tipului Variant). Pentru a converti un șir de caractere la un număr întreg, se folosește comanda Cint.

Aceeași problemă apare dacă se importă date dintr-o altă sursă, cum ar fi o bază de date care stochează totul ca variabile de tip String.

VBA oferă un set complet de funcții simple pentru conversia datelor de la un tip de date la altul. Tabelul următor afișează funcțiile VBA pentru conversia simplă a datelor.

De exemplu, următoarele instrucțiuni declară variabila varMyInput fără tip și variabila intMyVar de tip întreg, apoi afișează o casetă de dialog care cere utilizatorului să introducă un număr întreg. În cea de-a treia instrucțiune, valoarea introdusă de utilizator este atribuită variabilei varMyInput, care devine automat de tip Variant/String. A patra instrucțiune utilizează funcția CInt pentru a converti valoarea din varMyInput la un întreg, atribuind rezultatul variabilei intMyVar. A cincea declarație compară intMyVar cu 10, convertește rezultatul la Boolean utilizând funcția CBool și afișează rezultatul (True sau False) într-o casetă de mesaj.

Dim varMyInput
Dim intMyVar As Integer
varMyInput = InputBox("Introduceti un numar:", "10 este True, alte numere - False") 
intMyVar = CInt(varMyInput)
MsgBox CBool(intMyVar = 10)

O variabilă booleană este Adevărată sau Falsă – True sau False. Deci, pe ultima linie de cod a acestui exemplu, se declară: "Dacă valoarea din variabila intMyVar este 10, rezultatul boolean va fi True. Dacă valoarea este alta decât 10, rezultatul va fi False. "

VBA are, de asemenea, un set de funcții care manipulează date în moduri mai complicate. Doar două dintre aceste funcții de manipulare mai complexe sunt folosite în programarea VBA - Format și Chr – care vor fi descrise mai detaliat în această secțiune.

Tabelul următor listează funcțiile VBA pentru manipularea mai complexă a datelor.