Excel을 사용하면 여러 속성별로 워크 시트의 데이터를 정렬 할 수 있습니다. 그러나 본질적으로 정렬 할 수없는 것 중 하나는 적어도 Excel 2007 이상으로 업데이트하지 않으면 셀 색상입니다. 일부 응용 프로그램의 경우 이것은 매우 편리한 기능이 될 수 있습니다.

다음 매크로 SortByColor는 셀 서식이 지정된 색상을 기준으로 표를 정렬합니다.

Sub SortByColor()

On Error GoTo SortByColor_Err

Dim sRangeAddress As String     Dim sStartCell As String     Dim sEndCell As String     Dim rngSort As Range     Dim rng As Range

Application.ScreenUpdating = False

sStartCell = InputBox("Enter the cell address of the " & _       "top cell in the range to be sorted by color" & _       Chr(13) & "i.e.  'A1'", "Enter Cell Address")



If sStartCell > "" Then         sEndCell = Range(sStartCell).End(xlDown).Address         Range(sStartCell).EntireColumn.Insert         Set rngSort = Range(sStartCell, sEndCell)

For Each rng In rngSort             rng.Value = rng.Offset(0, 1).Interior.ColorIndex         Next         Range(sStartCell).Sort Key1:=Range(sStartCell), _           Order1:=xlAscending, Header:=xlNo, _           Orientation:=xlTopToBottom         Range(sStartCell).EntireColumn.Delete     End If

SortByColor_Exit:

Application.ScreenUpdating = True     Set rngSort = Nothing     Exit Sub

SortByColor_Err:

MsgBox Err.Number & ": " & Err.Description, _       vbOKOnly, "SortByColor"

Resume SortByColor_Exit End Sub

매크로는 먼저 정렬하려는 범위의 시작 셀을 묻는 방식으로 작동합니다. 이것은 범위에서 최상위 셀이어야합니다. 그런 다음 매크로는 색상 값을 저장할 수있는 열 (일시적으로)을 삽입합니다. 그런 다음 지정한 시작 셀에서 정의한 범위의 각 셀을 단계별로 실행합니다.

SortByColor는 데이터 테이블에 헤더 행이 없다고 가정합니다. 그렇다면 실제 정렬 명령을 변경해야합니다. Header : = xlNo를 Header : = xlYes로 변경하면됩니다.

SortByColor 매크로는 셀에 적용된 명시 적 색을 기준으로 만 셀을 정렬하며 셀 색이 조건부 서식의 결과 인 경우에는 정렬되지 않습니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (3122)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excelribbon-Sorting_by_Colors [Sorting by Colors].