Удаление кавычек из строки

Visual Basic for Applications:
Удаление кавычек из строки

Как это сделать:

В VBA существует несколько подходов к удалению кавычек из строки. Вот простой пример с использованием функции Replace, которая ищет определенную подстроку (в данном случае, кавычку) в строке и заменяет ее на другую подстроку (пустую строку, если нужно удалить).

Sub RemoveQuotesExample()
    Dim originalString As String
    originalString = "'This' is a ""test"" string."
    
    ' Удаление одиночных кавычек
    originalString = Replace(originalString, "'", "")
    
    ' Удаление двойных кавычек
    originalString = Replace(originalString, Chr(34), "")
    
    Debug.Print originalString 'Вывод: This is a test string.
End Sub

Обратите внимание, что для двойных кавычек мы используем Chr(34), потому что двойная кавычка является символом ASCII 34. Это необходимо, поскольку двойные кавычки также используются для обозначения строковых литералов в VBA.

Для более тонких сценариев, когда кавычки могут быть частью необходимого форматирования (например, внутри закавыченного слова), может потребоваться более сложная логика, возможно, с использованием Regex или посимвольного разбора.

Погружение

VBA, будучи основным инструментом для автоматизации задач в пакете Microsoft Office, предлагает богатый набор функций для манипуляции со строками, среди которых Replace является одной из наиболее часто используемых. Однако эта функция лишь касается поверхности того, что можно достичь с помощью VBA в плане манипуляции со строками.

Исторически VBA, перенимая от своих предшественников акцент на простоте для задач автоматизации офиса, предлагает простую реализацию функций вроде Replace. Однако для современных программных задач, особенно связанных со сложной манипуляцией с строками или санацией, VBA может показать свои ограничения.

В таких случаях программисты могут прибегать к комбинированию VBA с регулярными выражениями (через объект VBScript_RegExp_55.RegExp) для большей гибкости и мощи при разборе и манипуляции со строками. Однако этот подход вводит дополнительную сложность и требует твердого понимания шаблонов regex, что может не подойти всем пользователям.

Несмотря на свои ограничения, функция Replace в VBA эффективно справляется с многими распространенными сценариями удаления кавычек из строк. Она служит быстрым и простым решением для большинства потребностей манипуляции со строками, не углубляясь в более сложную область regex. Для тех, кто сталкивается с пределами возможностей Replace и других базовых функций работы со строками, изучение regex внутри VBA или рассмотрение более мощного языка, специально предназначенного для сложных операций со строками, может стать следующим шагом.