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:

  1. Io voglio che la parola "casa" sia virgolettata

    il codice sarà: Frase = "Io voglio che la parola ""casa"" sia virgolettata"

     

  2. "Casa" è la prima parola della frase virgolettata

    il codice sarà: Frase = """Casa"" è la prima parola della frase virgolettata"

     

  3. Ora virgoletto l'ultima parola della "frase"

    il codice sarà: Frase = "Ora virgoletto l'ultima parola della ""frase"""

     

  4. "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"

  1. Io so che "Giovanni" ama "Maria"

    Messaggio = "Io so che """ & A & """ ama """ & B & """"

     

  2. Sappiamo che "Giovanni" e "Maria" si amano

    Messaggio = "Sappiamo che """ & A & """ e """ & B & """ si amano"

     

  3. Sappiamo che "Giovanni e Maria" si amano

    Messaggio = "Sappiamo che """ & A & " e " & B & """ si amano"

     

  4. "Giovanni" ama "Maria"

    Messaggio = """" & A & """ ama """ & B & """"

     

  5. "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:

 

Buon lavoro

 

prelevato sul sito www.ennius.altervista.org