Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

Excel & VBA---Brain Training


앞페이지에서 한 것을 다른 방법으로 풀어 보자


이런 문자열을 처리할 때 실은 다른 언어에서는 거의 RegExp라는 개체를
활용한다
아주 오래전..데이타베이스도 텍스트문서였을때 문자열을 다루는 것은
그냥 일반적인 순환을 통하여 한다는 것은 끔찍한 일이였을 것이다
그때 만들어서 널리 활용하는 RegExp라는 개체..
그럼 VBA는 없나?
없다!!
그러나 외부라이브러리 참조하면 된다
누구나 사용하는 웹브라우져의 VBScript가 갖고 있는 개체를 참조한다



RegExp 에 대하여 이해를 하고 활용을 하면
문자열 정보처리에 있어서 뛰어난 능력을 갖게 된다..

웹브라우져가 익스프로어가 아니면 위의 개체가 없을지도
모르나..모두 있다고 가정하고

그림과 같이 참조를 해보시고 아래구문을 실행시켜보시기 바란다

Sub CheckPasswordStrengthRegExp() Dim oRegExp As New VBScript_RegExp_55.RegExp With oRegExp .Global = True .Pattern = "[a-z]" MsgBox .Replace("abc123zdeg2323^322", "") End With End Sub

다시 위의 Pattern속성에 아래와 같이 넣어보시고 실행

.Pattern = "[a-z]|\^"

모두 숫자만 남고 사라졌다..
만약 대문자가 섞여있다면 이것도 아래와 같이 처리하면 된다

.Pattern = "[a-z]|[A-Z]|\^"
MsgBox .Replace("abCABC123zdeg2323^322", "")

순환문을 돌고 번접을 떨지 않아도 되는 파워를 주는 것이
RegExp 개체이니..
위의 Pattern을 잘보시고 어떤 공통점이 있는지..앞전의 문제를
풀어 보시기를...


BrainTraining_Temp_RegExp.



관련하여
셀에 "오늘은 [날짜] 입니다" 라고 들어 있을때
"오늘은 2011/12/2 일입니다" 라고 바꾸기같은 사용자정의함수도 몇개
만들어 넣었다..