VB(A)

특정 글자색 추려내기

당근쨈 2019. 3. 16. 15:39



https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=243009863&qb=7IOJ7J20IOuTpOyWtOqwhCDquIDsnpDrp4wg7LaU7Lac&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=U4XS6spVuEVsssKsff8ssssstjw-453943&sid=K8tEGqPdwuz1Q/Dx7KjajQVr 에 올라온 질문입니다.


여러 색깔의 글자가 있고

이 중 특정 글자색만 추려내는 내용입니다.


특정 글자색만 추려내기.xlsm


Option Explicit '선언하지 않은 변수를 사용 못합니다
Option Base 1   '배열을 1부터 시작합니다
Sub GetColor()
    
    Dim AllColor As Range
    Dim SingleRange As Range
    Dim C As Variant
    Dim v() As String
    Dim i As Integer
    
    Range("C1").CurrentRegion.Offset(1).Clear   '기존 자료 삭제
    Set AllColor = Range("A2", Cells(Rows.Count, 1).End(xlUp))  'A열을 순환합니다
    
    '원하는 글자색이 있는 셀을 지정합니다. 취소를 누를 경우 매크로를 종료합니다.
    On Error GoTo j
    C = Application.InputBox("필터링 할 글자색이 있는 셀을 선택하세요", Title:="셀 선택", Type:=8).Font.Color
    
    For Each SingleRange In AllColor
    
        '원하는 글자색을 배열에 삽입합니다
        With SingleRange
        
            If .Font.Color = C Then
                i = i + 1
                ReDim Preserve v(i)
                v(i) = .Value2
            End If
            
        End With
            
    Next
    
    '출력물의 글자색을 변경합니다.
    Range("C2").Resize(UBound(v)) = Application.Transpose(v)
    Range("C1").CurrentRegion.Font.Color = C
    
j:
 
End Sub
 
cs