본문 바로가기

characters6

[기초방] VBA 100제 #39 [ 문자조합하기 ] 이번 문제는 characters + 정규식 문제의 확장편 정도로 생각해주면 좋을것 같다. 39번 문제는 [이전] 데이터를 보면 알겠지만 처음을 제외하곤 숫자 뒤에 % 가 4자리씩 순환하고 있는데 이걸 나머지 숫자에도 %을 삽입하라는 문제이다. 39-1은 이웃하지 않은 알파벳과 숫자의 조합으로 조합문자를 만들어 내는 것이다. 39번은 정규식으로 풀려면 패턴을 일치시켜야 하기에 정규식 패턴을 다음과 같이 만들어 보았다. 패턴설명은 뒤에 % 가 없는 숫자를 패턴으로 하는 정규식 패턴이다. firstindex는 일치 패턴의 바로 직전까지를 의미하기 때문에 firstindex + cnt를 함으로서 글자가 삽입되더라도 그 위치를 변경해가면서 결국 의도한대로 패턴과 일치된 숫자들 뒤로 % 를 삽입할 수 있다. Set.. 2023. 3. 14.
[기초방] VBA 100제 #37 [ Characters ] 37번 문제인데 38번으로 표기해서 크루인 [시훈아빠]님한테 혼이났다.. 37번으로 알고 가시길... 이문제는 Characters의 매소드중 Insert를 알고 모르고의 차이가 크다.. 이걸 Replace로 하게 되면 코드가 많이 지저분해질것이다. Characters 매소드에 대해선 Characters의 고찰편에서 자세하게 다뤄보도록 하겠다. With Reg .Pattern = "[^\s]+" .Global = True End With 해당 정규식 패턴은 [ 띄어쓰기가 아닌 모든 문자 ] 라는 의미이다. With rngA.Characters(idx, Len(Ma)) If .Font.Color = vbRed Then .Insert ("[" & Ma & "]") End If End With 이 구문은 핵심구.. 2023. 3. 6.
[기초방] VBA 100제 #30 [ 폰트처리하기_2 ] 이번 문제는 이렇다. [ 고래밥 ]단어가 들어가 있는 셀은 고래밥만 빨강색으로 칠하고 Bold 처리를 하고 [ 깡 ] 이 포함된 과자는 중간에 영문자 이후부터 과자의 풀네임에 파란색 폰트 컬러로 변경하고 Bold 처리하는 구문이다. 고래밥을 찾는 구문은 전 시간에 Instr + Characters 구문을 사용한적 있기 때문에 큰 어려움이 없으리라 본다. If InStr(rngA, Str) Then Pos = InStr(rngA, Str) With rngA.Characters(Pos, Len(rngA)) .Font.Color = vbRed .Font.Bold = True End With End If [ 깡 ] 이 들어있는 과자이름은 과자 이름을 전부다 색상변경을 해야하기 때문에 기초방이라는것을 감안하여 정.. 2023. 2. 7.
[기초방] VBA 100제 #29 [ 폰트처리하기 ] 이번 문제는 각각의 셀안에 모든값이 Bold 처리 되었거나, 일부만 Bold 처리 되었을 때, 이를 모두 Bold처리하고 노란색 음영을 주는 29번 문제와 영역의 모든 값을 병합한 후 29에서 처리한 Bold 영역에 빨간색과 Bold 처리하는 문제이다. 셀의 폰트 컬러가 아닌 셀안에 특정 단어의 컬러에 변화를 주려면 Characters구문을 알아야 한다. 전에 비슷한 문제를 낸 적이 있다. https://1stminokingdom.tistory.com/56 [VBA] 글자색 바꾸기(feat. Instr/Characters) 오늘 해볼건 이런것이다. 색상 을 변경할 단어를 Inputbox로 입력받은 후 입력받은 단어를 색상은 빨강색 / Bold는 True하는 작업이다. 이 역시 막상 해보려면 좀 난감하기에.. 2023. 2. 7.