본문 바로가기

기초방11

[기초방] VBA 100제 #16 [ 이벤트 + 빈셀삭제하기 ] 이러한 문제는 임시적으로 배열에 담았다가 출력을 하면 더 쉽게 가능하지만 아직은 배열과정이 아니기에 철저하게 셀기반으로 풀어보려 한다. 크루들이 과제를 풀어가는 것을 보니 일단 이벤트 개념은 확실히 잡고 가는거 같다. 본인이 공부할때는 이벤트가 참 어려웠다. 엑사남님 강의를 제대로 안 들은것도 있었지만 모듈에서 짜던 코드들이 시트를 넘나 드는것을 보면서 많이 힘들었던 기억이 있다. 엑사남님 강의를 정독으로 3번쯤 볼때 '아..이걸 왜 어려워했지' 했을 정도로 강의 자체를 쉽게 쉽게 하셨으니, 지금 잘 이해가 안 가는 분들은 꼭 강의를 정독하길 바란다. 이벤트에서 Target 이라는 것은 쉽게 말해서 selection 이라고 생각하면 된다. 내가 선택한 셀 또는 영역이 target이 된다. 이문제에서 각 .. 2023. 1. 16.
[기초방] VBA 100제 #13 [ 정규식으로 계산하기 ] 이번 문제는 숫자와 사칙계산 부호만을 이용하여 계산하는 문제이다. 숫자만 가져오는 구문은 like문처럼 [0-9] 이렇게 하거나 정규식 패턴은 \d 이렇게 하면 되는데, \d 는 1234 라는 숫자가 있으면 1만 선택이 된다. 여러자리의 숫자를 선택하려면 \d+ 이렇게 하면된다. 이 문제를 해결하기 위해서 본인이 사용한 패턴은 이렇다. .Pattern = "[^\d++-×÷]" 숫자가 아니고 사칙연산 기호가 아닌 모든것을 패턴으로 잡고 삭제하기 위함이다. 부정기호인 ^ 의 사용으로 선택된 패턴들이 반전되는것을 볼 수 있다. 우리가 사용하는 사칙연산 기호중 곱하기와 나누기는 컴퓨터가 이해하는 기호와는 다르기 때문에 변경을 해줘야 한다. If .test(rngX) Then str = Replace(.Repl.. 2023. 1. 15.
[기초방] VBA 100제 #10 [ 데이터 영역 재설정하기 ] 데이터 영역을 랜덤화해서 재설정하는 구문이다. 보통 이러한 문제는 랜덤 난수를 추출하여 그것에 따라 정렬하여 재배치 하면 된다. 문제풀이는 이렇다. 1. 난수를 발생 2. 난수와 기존값을 조합하여 임시 영역에 추출 3. 정렬 4. 난수와 기존값 분리 5. 기존값을 새로운 위치에 추출 6. 난수와 기존값을 출력한 영역 삭제 더보기 Option Explicit Sub 기초방10_1() Dim bln As Boolean Dim rngall As Range Dim i& Application.ScreenUpdating = False For i = 1 To 2 '= 문제에 따른 영역 재 설정 If bln = False Then Set rngall = [c5:c14] Else Set rngall = [e21:k27].. 2023. 1. 6.