Visual Basic for Applications:
Eliminando comillas de una cadena

Cómo:

En VBA, hay múltiples enfoques para eliminar comillas de una cadena. Aquí hay un ejemplo sencillo usando la función Replace, la cual busca una subcadena específica (en este caso, una comilla) dentro de una cadena y la reemplaza con otra subcadena (una cadena vacía si se eliminan).

Sub RemoveQuotesExample()
    Dim originalString As String
    originalString = "'Esto' es una cadena de ""prueba""."
    
    ' Eliminar comillas simples
    originalString = Replace(originalString, "'", "")
    
    ' Eliminar comillas dobles
    originalString = Replace(originalString, Chr(34), "")
    
    Debug.Print originalString 'Salida: Esto es una cadena de prueba.
End Sub

Nota que para las comillas dobles, usamos Chr(34) porque una comilla doble es el carácter ASCII 34. Esto es necesario ya que las comillas dobles también se usan para denotar literales de cadena en VBA.

Para escenarios más matizados donde las comillas puedan ser parte del formato necesario (por ejemplo, dentro de una palabra citada), podría requerirse una lógica más sofisticada, tal vez involucrando Regex o análisis carácter por carácter.

Análisis profundo

VBA, siendo un pilar en la automatización de tareas dentro de la suite de Microsoft Office, ofrece un rico conjunto de funciones de manipulación de cadenas, siendo Replace una de las más utilizadas. Sin embargo, esta función solo rasca la superficie de lo que se puede lograr con VBA en términos de manipulación de cadenas.

Históricamente, VBA adoptó de sus predecesores un énfasis en la simplicidad para tareas de automatización de oficina, de ahí la implementación directa de funciones como Replace. Sin embargo, para tareas de programación modernas, especialmente aquellas que involucran manipulaciones o saneamientos de cadenas complejas, VBA podría mostrar sus limitaciones.

En tales casos, los programadores podrían recurrir a combinar VBA con expresiones regulares (a través del objeto VBScript_RegExp_55.RegExp) para mayor flexibilidad y poder en el análisis y manipulación de cadenas. Este enfoque, sin embargo, introduce una complejidad adicional y requiere un sólido entendimiento de patrones de regex, lo cual podría no ser adecuado para todos los usuarios.

A pesar de sus limitaciones, la función Replace de VBA cubre eficientemente muchos escenarios comunes que involucran la eliminación de comillas de cadenas. Sirve como una solución rápida y sencilla para la mayoría de las necesidades de manipulación de cadenas sin adentrarse en el territorio más complejo de regex. Para aquellos que alcanzan los límites de lo que Replace y otras funciones básicas de cadenas pueden hacer, explorar regex dentro de VBA o considerar un lenguaje más robusto adaptado a operaciones complejas de cadenas podría ser los próximos mejores pasos.