본문 바로가기

정규식24

[기초방] VBA 100제 #12 [ Like구문 ] 보통 이러한 패턴문제는 Like 와 정규식으로 풀수 있다. https://www.youtube.com/watch?v=sHg8o_RUcag 엑사남님이 이미 잘 정리해서 유튜브에 올려놓으셨으니 기초방분들은 학습하기길 바란다. 이런 패턴의 문제는 준빠님이 올려주신 대로 패턴에 일치하는 값들을 하나씩 붙혀가며 최종적인 문자를 출력하면 된다. 본인은 이번에는 like 구문의 부정형인 ' ! ' 와 정규식의 부정형인 ' ^ ' 과 Replace 조합으로 풀어보려한다. 더보기 Option Explicit Sub 기초방_12_like() Dim rngAll As Range: Set rngAll = [a3:a7] Dim rngA As Range Dim rngX As Range: Set rngX = [c3] Dim str.. 2023. 1. 10.
[VBA] 정규식으로 유일값 찾아내기 이문제는 정규식 패턴을 입맛대로 변경하면서 패턴과 불일치한 유일값을 찾아내는 코드이다. 이문제를 풀기 위해서는 크게 두가지로 상황을 생각할 수 있다. 1. 패턴이 하나만 일치할때 2. 패턴이 두개 일치할 때 어느 하나로 문제를 풀려고 하면 의도한 대로가 아닌 반드시 에러가 생길것이다. 본인은 이 예외 상황을 풀기 위해 사용자함수를 사용하여 예외처리 하였다. 퍼포먼스는 맘에 드는데 코드 길이가 영 맘에 안든다..ㅜ.,ㅡ 더보기 Option Explicit Sub 특이점_찾아내기() Dim Reg As Object: Set Reg = CreateObject("Vbscript.regexp") '= 정규식 선언 Dim rngAll As Range: Set rngAll = [b3:j6] '= 해당영역 설정 Dim.. 2022. 12. 15.
[VBA] 매출을 정렬해보자(Feat. ArrayList, RegExp) 정렬문제는 솔직히 좀 짜증난다.. 굳이 매크로로 안해도 되기에 이게 과제로 나오면 그냥 몸이 꼬이고 그냥 건드리기가 싫어진다. 그래서 문제를 좀 더 꼬아서 만들어 보았다. 문제는 괄호속 매출 기준으로 내림차순 정렬을 하고 순번으로 오름차순 정렬을 하는것이다. 순번과 매출이 모두 숫자가 아니라 텍스트화 되어 있기 때문에 이 상태로 정렬을 하게되면 1, 10, 11, 2, 21, 29,3 .... 뭐 이런식으로 정렬이 될 것이다. 따라서 이러한 문제를 풀기 위해서는 매출을 뽑아내고 이것을 다시 숫자화 시켜서 정렬을 하여야 한다. 그런 다음 이 숫자화 되어 있는 매출을 순환 하면서 원본 데이터에 이 텍스트화 된 데이터에 매출이 있는지 확인 하기 위해서 다시 텍스트화 시켜서 비교하면서 배열에 담아야 한다. 풀이.. 2022. 12. 13.
[VBA] 패턴을 순환하는 정규식을 만들어보자 이번 정규식에 관한 내용은 실제로 쇼핑몰 파싱을 하던 중에 발생한 일이었다. 쇼핑몰 태그를 정규식을 파싱하던 중 하나 이상의 패턴들로 파싱을 하다 보니까 코드가 너무 지저분해서 문자열과 패턴을 함수로 만들어서 불러오면서 사용했더니 코드가 한결 간단해지고 유지보수가 편할거라 생각되어 만들어 보았다. 오토핫키도 그렇고 조금씩 접해보는 언어들에서 사용자 함수의 생성과 활용은 크게 적용되어 앞으로는 코드들을 함수화 시켜서 모듈처럼 사용하려고 한다. 그전에는 가독성도 떨어지고 속도면에서도 문제가 있어 함수 사용을 하지 않았는데, 지금보면 단편적인 사고였던거 같다.. 코딩을 하려면 입체적인 사고가 절대적으로 필요한거 같다.. 이번 코드는 함수로 만들어져서 엑셀에서 함수처럼 불러와서 사용하여야 한다. 물론 나중에 이.. 2022. 8. 31.