Академический Документы
Профессиональный Документы
Культура Документы
A u t o matizacin
Excel Buscar en este sitio
Pgina principal
Acceder al editor de
Macros para manejar Expresiones
Visual Basic para
Aplicaciones (VBA)
Regulares
Acceso a las
Propiedades de los
objetos
Acceso a los Mtodos de
Contenidos
los Objetos
Activar la ficha del 1 Presentacin
programador 2 Accediendo al objeto de Expresiones Regulares
Anlisis de datos - 3 Mtodos del objeto Regular Expressions (regExp)
Grficas dinmicas 4 Propiedades del objeto Regular Expressions (regExp)
Cambiar los colores del 5 El objeto de coleccin de patrones (MatchCollection)
fondo de una celda
6 El objeto de coincidencias (Match)
Ciclo Do While...Loop 7 Tabla de patrones en las expresiones regulares
Ciclo Do...Loop Until 8 Macro para reemplazar textos utilizando Expresiones Regulares
Ciclo For Each...Next 9 Macro para localizar textos o patrones complejos dentro de una seleccin dada como entrada
Ciclo For...Next 10 Encontrar palabras completas con Expresiones Regulares
Definicin de funciones 11 Encontrar palabras separadas por espacios en blanco con Expresiones Regulares
Eliminar espacios 12 Encontrar dgitos con Expresiones Regulares
Filas y columnas vacas 13 Encontrar un nmero determinado de dgitos con Expresiones Regulares
Funciones de sumatorias 14 Encontrar palabras al principio del texto con Expresiones Regulares
y productos 15 Encontrar alternativas de texto con Expresiones Regulares
Funciones de texto
Funciones de texto en
VBA Excel
Funciones para el
manejo de colores de
una celda
Presentacin
Funciones para el
manejo de textos
Funciones para la El objeto RegExp (expresiones regulares) es una herramienta
limpieza de textos poderosa para buscar o reemplazar palabras o patrones complejos
Funciones que manejan dentro de un texto,
rangos como
Las expresiones regulares en s mismas forman un lenguaje de
argumentos
programacin. Es necesario conocer este lenguaje para sacar el
google1bb521775c3ea
mayor partido de este objeto. Aqu se muestran solamente
Importancia de la
Automatizacin en Excel ejemplos bsicos. Es necesario que el lector interesado busque
Macro para buscar en un una referencia ms detallada para el uso adecuado de las
texto una lista de expresiones regulares, por ejemplo, puede consultarExpresiones
palabras (funcin InStr) Regularesen la Wikipedia.
Macro para buscar en un Tambin es aconsejable para el principiante utilizar una
texto una lista de
herramienta comoPrueba de Expresiones Regularespara
palabras (operador Like)
familiarizarse en su sintaxis y en sus amplias posibilidades.
Macro para calcular
frecuencia de palabras
Macro para calcular
frecuencias utilizando Accediendo al objeto de Expresiones Regulares
dicccionarios
Macro para calcular
frecuencias utilizando En el editor de VBA de Excel acceda al objeto RegExp a travs
diccionarios deHerramientas => Referencias =>Microsoft VBScript Regular
Macro para combinar Expression 5.5
hojas
Macro para extraer
grupos de texto
utilizando Expresiones
Regulares
Macro para separar
palabras (utilizando
diferentes signos de
https://sites.google.com/site/automatizacionexcel/expresionesregulares 1/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
diferentes signos de
puntuacin)
Macros para asignar
valores a una celda
Macros para asignar
valores a una celda
utilizando la propiedad
Offset
Macros para buscar
palabras en un texto
Macros para calcular
subtotales usando
diccionarios
Macros para cambiar las
propiedades de una
columna
Macros para comparar
dos rangos de valores
Macros para contar
celdas en blanco o con
datos
Macros para contar
objetos de una coleccin
Macros para contar y
sumar
Macros para contar y Mtodos del objeto Regular Expressions (regExp)
sumar condicionalmente
usando funciones de
Excel Execute. Es utilizado para extraer una palabra o patrn de un
Macros para convertir texto dado. Regresa una coleccin de los patrones encontrados.
textos a maysculas, Replace. Es utilizado para reemplazar una palabra o un patrn
minsculas y nombres dentro de un texto dado. El mtodo Replace necesita dos
propios
argumentos: el texto que se busca y el texto por el cual va a ser
Macros para crear
grficas
reemplazado.
Macros para el anlisis
Test. Es utilizado para probar si una palabra o un patrn se
de datos - Auto filtros encuentra en un texto dado. El mtodo regresa verdadero si el
Macros para el anlisis patrn fue encontrado, falso en el otro caso.
de datos - Tablas
dinmicas
Macros para el manejo
de los elementos de una
Propiedades del objeto Regular Expressions (regExp)
coleccin
Macros para el manejo Pattern. Palabra o patrn a buscar
de los elementos de una Global. Verdadero o Falso. Verdadero encuentra todas las
grfica
palabras dentro del texto dado. Falso encuentra solamente la
Macros para eliminar
primera ocurrencia. Falso por omisin.
valores duplicados en
dos o ms columnas IgnoreCase. Verdadero o Falso. Verdadero ignora maysculas o
Macros para encontrar y minsculas. Falso considera maysculas o minsculas. Falso por
eliminar valores omisin.
duplicados en una MultiLine. Verdadero o Falso. Verdadero busca en todas las lneas
columna
en un texto que contenga mltiples lneas. Falso solamente busca
Macros para enviar y
recibir datos a travs de
en la lnea donde se encuentre.
cajas de dilogo
Macros para Hojas de
Trabajo El objeto de coleccin de patrones (MatchCollection)
Macros para leer
archivos de texto
Es regresado por el mtodo Execute
Macros para leer
archivos de texto La coleccin puede tener cero o ms elementos/ coincidencias
separados por comas Propiedades de la coleccin:
Macros para limpieza de Count. Contiene el nmero de elementos/ coincidencias de
datos la coleccin
Macros para manejar Item. Permite acceder aleatoriamente a los elementos de la
carpetas, directorios y
coleccin
archivos
Macros para manejar
Expresiones Regulares
Macros para manejar los El objeto de coincidencias (Match)
elementos de una forma
(objeto Shape)
El objeto est contenido en el objeto de
Macros para procesar
tablas de datos colecciones(MatchCollection)
Macros para realizar Puede contener cero o ms elementos
operaciones bsicas en
las colecciones Propiedades del objeto
https://sites.google.com/site/automatizacionexcel/expresionesregulares 2/17
201763 operaciones bsicas en MacrosparamanejarExpresionesRegularesAutomatizacinExcel
las colecciones Propiedades del objeto
Macros para realizar FirstIndex. La posicin donde se encontr el patrn
operaciones en celdas
Length. La longitud del patrn encontrado
que cumplan ciertos
criterios Value. El valor del patrn encontrado
Macros para seleccionar
celdas con la ayuda de
las teclas de direccin Tabla de patrones en las expresiones regulares
Macros para seleccionar
celdas, columnas y
rangos . Punto. Cualquier caracter salvo el de retorno de carro
Macros para separar ^ Caret. Principio de la lnea
palabras
$ Signo de pesos. Final de la lnea
Macros para trabajar con
celdas especiales * Asterisco. Aparezca 0 o ms veces el caracter que lo
Macros para trabajar con precede
ciclos + Signo de ms. Aparezca 1 o ms veces el caracter que lo
Macros para trabajar con precede
libros
? Signo de interrogacin. Aparezca 0 o 1 veces el caracter
Macros para trabajar con
rangos
que lo precede
Manejo de textos
Modelo de Objetos de [] Corchetes. Conjunto de caracteres
Grficas/ Chart
[^] conjunto de caracteres que no pueden aparecer
Objeto Range
| Barra. Disyuncin
Objetos de
Programacin en Excel () Llaves . Agrupa una serie de patrones en un simple
Power Pivot elemento
Respuestas rpidas {n} Llaves . Que coincida exactamente n veces
Ricardo Villafaa {n,} Llaves . Que coincida al menos n veces
Figueroa
{n,m} Llaves . Que coincida al menos n veces y no mas de m
Separar un texto en
columnas utilizando
frmulas matriciales \n retorno de lnea
Talleres
\t tabulador
Usar el objeto Cells para
seleccionar rangos \w caracter alfanumrico (equivale a [a-zA-Z0-9_])
Usar funciones de Excel \W caracter no alfanumrico (equivale a [^a-zA-Z0-9_])
en Visual Basic \d caracter numrico (equivale a [0-9])
Uso de ADO para
\D caracter no numrico (equivale a [^0-9])
consultar una hoja de
Excel \s caracter de espaciado (espacio, tabulador, nueva lnea, etc)
Uso de la instruccin
With
\S caracter NO de espaciado
Uso de operadores
lgicos en las funciones \b lmites de una palabra
Uso de variables \B interior de una palabra
Uso de Variables Objeto
(Set)
Ventana "Inmediato" del
editor de VBA Macro para reemplazar textos utilizando Expresiones
Mapa del sitio
Regulares
Problema:
https://sites.google.com/site/automatizacionexcel/expresionesregulares 3/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
La siguiente macro:
SubreemplazarRegExp()
'Macroparareemplazartextosutilizandoexpresiones
regulares
'
DimregExAsregExp
DimceldaAsRange
DimnuevoTextoAsString
DimpatronAsString
DimtextoOriginalAsString
DimtextoReemplazoAsString
DimrangoAsRange
patron=Range("B2").Value'patrnabuscar
textoReemplazo=Range("B3").Value'textodereemplazo
SetregEx=NewregExp'crearelobjetoregular
expression
Setrango=Range("A5:A36")'rangodeceldasa
buscar
ForEachceldaInrango
textoOriginal=celda.Value
'AsignarvaloresalaspropiedadesdelobjetoregExp
WithregEx
.Global=True
.MultiLine=True
.IgnoreCase=True
.Pattern=patron
EndWith
https://sites.google.com/site/automatizacionexcel/expresionesregulares 4/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
IfregEx.Test(textoOriginal)Then
nuevoTexto=regEx.Replace(textoOriginal,
textoReemplazo)
celda.Offset(0,1).Value=nuevoTexto
Else
celda.Offset(0,1).Value=""
EndIf
Nextcelda
EndSub
SubExpRegular()
'DefinirlosobjetosdelaExpresinRegular
DimmiRegExpAsRegExp
DimcolMatchesAsMatchCollection
DimregMatchAsMatch
DimmiRangoAsRange
DimopcionAsInteger
DimceldaAsRange
DimRetStrAsString
DimpatronAsString
OnErrorGoToError
opcion=InputBox("Nmerodeopcin")
SelectCaseopcion
https://sites.google.com/site/automatizacionexcel/expresionesregulares 5/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Case1
'Encontrarpalabrasconcretas,ejemploMxico
patron="Mxico"
Case2
'Encontrarnicamentelapalabra"de"(espacios
antesydespus)
patron="\bde\b"
Case3
'Encontrardgitos
patron="\d+"
Case4
'Encontrar7digitos
patron="\d{7}"
Case5
'Primerapalabradecadalnea,noincluye
letrasacentuadas
patron="^\w*"
Case6
'Encontrarlaprimerapalabradecadacelda,
incluyeletrasacentuadas
patron="^[AZ]*"
Case7
'Encontrarnmerosentreparntesis,ejemplo
(999)
patron="\([09]+\)"
Case8
'Alternativas.EncontrarVallartaoOaxaca
patron="Vallarta|Oaxaca"
Case9
'Encontrarnmerosdetelfono,ejemplo(99)
(99)9999999
patron="\(\d{2}\)\s{0,2}\(\d{1,3}\)\s\d{7,9}"
Case10
'Encontrarprecedentes
patron="\b\w+(?=\d{5})"
Case11
'Alternativas(avanzado)
'Encontrarcdigopostal,ejemploCp99999o
C.P.
patron="(CP.\d+)|(C\.P\..\d+)"
Case12
'LapalabraMxicoyeltextocomprendidohasta
encontrarlaexpresinTel
patron="Mxico.*Tel"
Case13
'EncontrarnicamentelapalabraMxicoseguida
delaexpresinTel(noincluyeTel)
patron="Mxico\s(?=Tel)"
Case14
'Expresinprecedidapordospuntos
patron="\b[AZ]+(?=\:)"
CaseElse
MsgBox"Terminado"
End
EndSelect
'CrearelobjetoRegularExpressionyasignndolaala
variableregExp
SetmiRegExp=NewRegExp
'AsignarvaloresalaspropiedadesdelobjetoregExp
WithmiRegExp
.Global=True'bsquedaglobal(msdeuna
ocurrencia)
.Pattern=patron'patrnabuscar
.IgnoreCase=True'ignorarmaysculasyminscalas
https://sites.google.com/site/automatizacionexcel/expresionesregulares 6/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
.MultiLine=True'multilnea
EndWith
'Seleccionarelrangodetrabajo
SetmiRango=Range("A2:A11")
ForEachceldaInmiRango
If(miRegExp.Test(celda.Value)=True)Then
'Obtenerlascoincidenciasatravsdelmtodo
Execute
SetcolMatches=miRegExp.Execute(celda.Value)'
Ejecutalabsqueda
RetStr=""
ForEachregMatchIncolMatches
RetStr=RetStr&"Posicin"
RetStr=RetStr®Match.FirstIndex&"Valor:
"
RetStr=RetStr®Match.Value&vbCrLf
Next
celda.Offset(0,1)=RetStr'colocalosvalores
encontradosenladerechadeltexto
Else
celda.Offset(0,1)=""
EndIf
Nextcelda
ExitSub
Error:
MsgBoxErr.Description,vbCritical
ExitSub
EndSub
https://sites.google.com/site/automatizacionexcel/expresionesregulares 7/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Direcciones
Diego De Montemayor No. 802 Sur, Barrio Antiguo, C.P.
64000 Monterrey, Mxico Tel: (52) (81) 83420121 mano
Morelos 8 Centro Cp 76750 Mxico D.F., Mxico Tel: (52) (52)
2730066
Av. Vallarta No. 5549 casi esquina con Av. Patria, Fracc. Real
Vallarta C.P. 45020 Guadalajara, Mxico Tel: (52) (33)
36298612
Portal De Claveria S/N Col Centro Cp 68000 Oaxaca Mxico
D.F., Mxico Tel: (52) (52) 5140688
Gutenberg 3 Col Centro Cp 62000 Cuernavaca Mor
Cuernavaca, Mxico
Madero 30 Col Centro Cp 06000 Mxico D.F., Mxico Tel:
(52) (52) 51300160
Npoles 62 Cp 06600 Mxico D.F., Mxico Tel: (52) (52)
55331589
Izazaga 8 Col Centro Cp 06080 Mxico D.F., Mxico Tel: (52)
(52) 55214180
Ave 690 S/N CP 45040 Puerto Vallarta, Mxico Tel: (52) (322)
31231511
Av. Eduardo Mata 1918 Col San Jos La Noria Cp 68120
Oaxaca Mxico D.F., Mxico Tel: (52) (52) 5147555
Opcin = 1
https://sites.google.com/site/automatizacionexcel/expresionesregulares 8/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 2
Opcin = 3
Operador \d
https://sites.google.com/site/automatizacionexcel/expresionesregulares para encontrar caracteres numricos 9/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 4
https://sites.google.com/site/automatizacionexcel/expresionesregulares 10/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 5
Opcin = 6
https://sites.google.com/site/automatizacionexcel/expresionesregulares 11/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 7
Opcin = 8
https://sites.google.com/site/automatizacionexcel/expresionesregulares 12/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 8
Opcin = 9
patron = "\(\d{2}\)\s{0,2}\(\d{1,3}\)\s\d{7,9}"
https://sites.google.com/site/automatizacionexcel/expresionesregulares 13/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 10
Encontrar precedentes
patron = "\b\w+(?=\d{5})"
Opcin = 11
Alternativas (avanzado)
Encontrar cdigo postal, ejemplo Cp 99999 o C.P.
patron = "(CP.\d+)|(C\.P\..\d+)"
https://sites.google.com/site/automatizacionexcel/expresionesregulares 14/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 12
Opcin = 13
https://sites.google.com/site/automatizacionexcel/expresionesregulares 15/17
201763 MacrosparamanejarExpresionesRegularesAutomatizacinExcel
Opcin = 14
Vase tambin:
https://sites.google.com/site/automatizacionexcel/expresionesregulares 16/17