I doppi apici (") nelle stringhe

Ultima modifica: 30-05-2016

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ù.

Ecco alcuni esempi:

  1. Poniamo la parola "Ciao" tra doppi apici
  2. "Casa" è la prima parola virgolettata
  3. l'ultima parola da virgolettare è "casa"
  4. "Giovanni" ama "Maria"
  5. "Giovanni ama Maria"
  6. Io so che "Giovanni" ama "Maria"
  7. Sappaimo che "Giovanni" e "Maria" si amano
  8. Sappaimo che "Giovanni e Maria" si amano

Possiamo intervenire in questo modo:

Perchè una parola che fa parte di una stringa venga mostrata tra doppi apici (") occorre che la parola da virgolettare sia preceduta e seguita da una coppia di doppi apici:

Messaggio = "Poniamo la parola ""Ciao"" tra doppi apici"
Range("F2") = Messaggio

' viene visualizzato
' Poniamo la parola "Ciao" tra doppi apici

Se la parola sta all'inizio della stringa e/o alla fine la stringa viene modificata in questo modo aggiungendo un terzo apice all'inizio e/o alla fine:

 

Vediamo gli esempi in pratica.

Messaggio1 = """Giovanni"" ama Maria"
Messaggio2 = "Giovanni ama ""Maria"""
Messaggio3 = """Giovanni"" ama ""Maria"""
Range("F2") = Messaggio1
Range("F3") = Messaggio2
Range("F4") = Messaggio3

' le tre variabili vengono rispettivamente visualizzate:

'      "Giovanni" ama Maria
'      Giovanni ama "Maria"
'      "Giovanni" ama "Maria"

Leggermente diverso e più complesso è il caso in cui la parola da virgolettare sia restituita da una variabile.

In questo caso c'è da lavorare con le concatenazioni di stringhe ( & ) per creare la stringa finale.

A = "Giovanni": B = "Maria"
Messaggio1 = "Io so che """ & A & """ ama """ & B & """"
Messaggio2 = "Sappaimo che """ & A & """ e """ & B & """ si amano"
Messaggio3 = "Sappaimo che """ & A & " e " & B & """ si amano"
Messaggio4 = """" & A & """ ama """ & B & """"
Messaggio5 = """" & A & " ama " & B & """"

Range("F24") = Messaggio1
Range("F25") = Messaggio2
Range("F26") = Messaggio3
Range("F27") = Messaggio4
Range("F28") = Messaggio5

' che restituiscono

'       Io so che "Giovanni" ama "Maria"
'       Sappaimo che "Giovanni" e "Maria" si amano
'       Sappaimo che "Giovanni e Maria" si amano
'       "Giovanni" ama "Maria"
'       "Giovanni ama Maria"

Se queste tecniche sembrano complesse è possibile usare il codice ascii relativo al doppio apice che è Chr(34). Questo un esempio:

A = "Giovanni": B = "Maria"
Messaggio = "Sappiamo che " & Chr(34) & A & Chr(34) & " e " & Chr(34) & B & Chr(34) & " si amano"
Range("F18") = Messaggio

'       che restituisce

'       Sappiamo che "Giovanni" e "Maria" si amano

Bene. Anche questa volta ... Buon lavoro.