I doppi apici (") nelle stringhe
Il problema
Alle volte vorremmo che certe parole da visualizzare in certi messaggi o in elementi da noi usati nelle UserForm vengano virgolettate, ovvero visualizzate tra doppi apici. La cosa è possibile usando semplicemente alcuni doppi apici in più.
Soluzione
Ecco alcuni esempi:
Io voglio che la parola "casa" sia virgolettata
il codice sarà: Frase = "Io voglio che la parola ""casa"" sia virgolettata"
"Casa" è la prima parola della frase virgolettata
il codice sarà: Frase = """Casa"" è la prima parola della frase virgolettata"
Ora virgoletto l'ultima parola della "frase"
il codice sarà: Frase = "Ora virgoletto l'ultima parola della ""frase"""
"Tutto virgolettato"
il codice sarà: Frase = """Tutto virgolettato"""
Come si vede dagli esempi appena mostrati, perchè una parola venga virgolettata, occorre che sia preceduta e seguita da una coppia di doppi apici: "La parola ""casa"" è virgolettata". Se la parola da virgolettare si trova all'inizio e/o alla fine della stringa i doppi apici diventano tre perchè il primo e/o l'ultimo doppio apice è quello che delimita l'intera stringa: """Casa"" è la prima parola virgolettata"
oppure
"l'ultima parola da virgolettare è ""casa"""
Se in una stringa vogliamo virgolettare il contenuto di una variabile è la stessa cosa ma il problema sembra leggermente più complesso perchè noteremo che a volte dobbiamo usare ben quattro doppi apici.
Per includere una variabile in una stringa dobbiamo usare l'operatore di concatenamento &. Questo operatore infatti concatena due o più sottostringhe creandone una sola che le comprende tutte. Normalmente siamo soliti agire in questo modo:
la prima operazione da fare è l'assegnazione dei valori alle variabili:
A = "Giovanni": B = "Maria"
per ottenere la frase:
Giovanni ama Maria
scriviamo:
Frase = A & " ama " & B
Ma possiamo desiderare virgolettare le due variabili. Allora vediamo le varie forme che potremmo avere.
A = "Giovanni": B = "Maria"
Io so che "Giovanni" ama "Maria"
Messaggio = "Io so che """ & A & """ ama """ & B & """"
Sappiamo che "Giovanni" e "Maria" si amano
Messaggio = "Sappiamo che """ & A & """ e """ & B & """ si amano"
Sappiamo che "Giovanni e Maria" si amano
Messaggio = "Sappiamo che """ & A & " e " & B & """ si amano"
"Giovanni" ama "Maria"
Messaggio = """" & A & """ ama """ & B & """"
"Giovanni ama Maria"
Messaggio = """" & A & " ama " & B & """"
In alternativa, in sostituzione degli apici in più da usare in una stringa per visualizzare il doppio apice, è possibile usare chr(34) che è il codice Ascii che rappresenta il doppio apice.
Per ottenere Sappiamo che "Giovanni" e "Maria" si amano potremmo usare:
Messaggio = "Sappiamo che " & Chr(34) & A & Chr(34) & " e " & Chr(34) & B & Chr(34) & " si amano"
Conclusioni
Dagli esempi visti possiamo evidenziare che per virgolettare delle semplici parole in una stringa è sufficiente aggiungere 2 doppi apici prima e dopo la parola. Il terzo doppio apice che si nota nel primo gruppo di esempi è il solito doppio apice che si mette prima e dopo una stringa.
Nel secondo gruppo di istruzioni il discorso sembra complicarsi, ma in realtà non è così. Prendiamo e cerchiamo di analizzare una delle stringhe appena costruite.
Io so che "Giovanni" ama "Maria"
"Io so che """ & A & """ ama """ & B & """"
Nella stringa notiamo la presenza dell'operatore "&" il che ci autorizza a pensare che tutta la stringa è composta da cinque sottostringhe:
"Io so che """
A
""" ama """
B
""""
Se osserviamo le singole sottostringhe notiamo che tutte rispettano la sintassi che abbiamo usato nel primo gruppo di esempi..
Un po' emblematica è solo la sottostringa formata da soli 4 doppi apici. In realtà non rappresenta altro che:
un doppio apice per iniziare la stringa
una coppia di doppi apici per visualizzare il doppio apice nella stringa finale
un altro doppio apice finale per chiudere la stringa
Buon lavoro
prelevato sul sito www.ennius.altervista.org