색상 정렬하는 문제이다.
색상 관련한 문제는 많이 안낸거 같아서 앞으로 2 - 3 개 정도 재밌는 문제로 찾아가려 한다.
코드 진행은
1. 배열에 기본이 되는 색상코드들을 담고
2. 전체영역을 순환하면서 해당 색상이 배열의 몇번째에 위치값을 찾아서 해당 셀을 출력해주면 된다.
3. 이때 배경색과 글자색을 같게 하여 마치 배경만 나온거 처럼 연출한다.
4. 마지막으로 전체영역을 재 순환하며 글자색을 검은색으로 하여 코드를 마무리한다.
더보기
Option Explicit
Sub 컬러_정렬()
Dim sample()
Dim rngAll As Range: Set rngAll = [b4:b10]
Dim rngA As Range
Dim n&, sm, r&
[k4:n10].Interior.Color = xlNone '= 초기화
[k4:n10].Font.Color = vbWhite
ReDim sample(rngAll.Cells.Count - 1)
For Each rngA In rngAll '= 배열에 기본 컬러 담기
sample(n) = rngA.Interior.Color
n = n + 1
Next rngA
For Each rngA In [d4].CurrentRegion
r = Application.Match(rngA.Interior.Color, sample, 0) '= 색상셀들의 위치를 기준셀과 일치여부로 판단
With Cells(4, rngA.Column)
haja_delay .Offset(r - 1, 7)
.Offset(r - 1, 7) = rngA
.Offset(r - 1, 7).Font.Color = rngA.Interior.Color
.Offset(r - 1, 7).Interior.Color = rngA.Interior.Color '= 배경색과 일치시켜 아무것도 없는것처럼..
End With
Next rngA
For Each rngA In [k4:n10] '= 엑셀을.....출력
haja_delay rngA
rngA.Font.Color = vbBlack
Next rngA
End Sub
Function haja_delay(rngA As Range)
Dim i&
For i = 1 To 1500
rngA.Select
Next i
End Function
'VBA > 엑사남_기초방' 카테고리의 다른 글
[기초방] VBA 100제 #55 [ 색상그룹평균 ] (0) | 2023.07.05 |
---|---|
[기초방] VBA 100제 #54 [ 색상그룹정렬 ] (0) | 2023.07.04 |
[기초방] VBA 100제 #52 [ 민원인 서식변경 ] (0) | 2023.07.03 |
[기초방] VBA 100제 #51 [ 주소 나누기 ] (0) | 2023.07.02 |
[기초방] VBA 100제 #46 [ 모래시계 알고리즘 ] (0) | 2023.03.19 |
댓글