Sim! O Microsoft Office VBA oferece suporte a expressões regulares que pesquisam nativamente. Você precisa adicionar "Microsoft VBScript Regular Expressions 5.5" como uma referência no VBA Editor para cada arquivo .docm , .xlsm , etc. no qual você deseja colocar o código Regex:

AmaiorpartedomodelodeobjetoparaestemódulodeexpressãoregularpodeserencontradanoMSDNMultiLine .
Você usa da seguinte forma:
- Instancie um novo objeto regex com
Dim rx as New RegExp - Defina as sinalizações
rx.Global,rx.MultiLineerx.IgnoreCaseconforme desejado - Defina o padrão atribuindo a sequência de padrões apropriada a
rx.Pattern - Se você quiser saber se algo corresponde à regex, use
rx.Test(str), que retornaTrueouFalseapropriadamente - Chamar
rx.Execute(str)retorna um objetoMatchCollection, que se comporta como uma matriz unidimensional baseada em zero de zero ou maisMatchobjects -
Matchobjetos expõem as propriedadesFirstIndex,Length,ValueeSubMatches.-
FirstIndexé o índice baseado em zero do primeiro caractere do local emstrno qual a correspondência foi encontrada -
Lengthé o tamanho da porção correspondida destr -
Valueé o resultado da string correspondida -
SubMatchesé uma matriz baseada em zero dos grupos sub-selecionados dentro da correspondência geral- Infelizmente, o regex do VBA do Office não oferece suporte a grupos nomeados como, por exemplo, Python, por isso pode ser necessário usar uma tentativa e erro para corresponder ao índice do grupo com a parte do padrão em que você está interessado
-
Eu não acredito que haja uma maneira de fazer uma operação substitua no local com sed - é uma funcionalidade somente de pesquisa. Mas, é fácil usar o VBA ao redor para manipular os resultados como você deseja.