728x90

엑셀 인터페이스에서 정렬

 

데이터를 정렬하고 열람할 수 있는 엑셀의 특성상 다양한 정렬기능을 제공합니다.

그 중 가장 대표적인것은 "정렬" 기능으로 편리하게 사용할 수 있습니다.

당연하지만 VBA에서도 정렬을 지원하고 있고 기능역시 다양합니다.

정렬(SORT) 기능에 대해서 정리하겠습니다. 매개변수가 상당히 다양합니다.

 

<SORT 명령어와 매개변수>

 

expression.Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)

 

  • expression : SORT의 범위나 사용되는 worksheet를 지정합니다.
  • Key1 : 엑셀에서는 정렬하는 기준을 여러개 지정할 수 있습니다. 첫번째 규칙이 적용받는 필드입니다.(새로 막대)
  • Order1 : Key1에 지정된 값의 정렬순서를 결정합니다. XlSortOrder의 값을 입력합니다.
    xlAscending(1) : 값을 오름차순으로 정렬합니다. 기본값으로 아무것도 입력하지 않았을 때도 적용됩니다.
    xlDescending(2) : 값을 내림차순으로 정렬합니다.
    xlManual(-4135) : 선택행정렬 매뉴입니다. 일반적으로는 사용하지 않습니다.
  • Key2, Key3 : 두번째 세번째 규칙에 적용될 필드입니다.
  • Order2, Order3 : 두번째 세번째 규칙이 정렬되는 순서입니다.
  • Header : 첫번째 행이 머리글로 들어갈지를 결정합니다. 인터페이스의 정렬기능에서 " 내 데이터에 머리글 표시"라고 하는 기능입니다.
    xlGuess(0) : 엑셀이 머리글이 어디 있는지 없는지를 결정합니다.
    xlYes(1) : 맨 윗줄을 머리글로 포함하는 것으로 인터페이스에서 "내 데이터에 머리글 표시"의 체크를 끈 상태입니다.
    xlNo(2) : 머리글을 포함하지 않는 것으로 인터페이스에서 "내 데이터에 머리글 표시"의 체크박스를 켠 상태입니다. 이 항목을 입력하지 않으면 디폴트로 설정됩니다.
  • OrderCustom : 사용자 지정목록을 사용하는 경우에 몇번째 목록을 사용할지 지정합니다. 1부터 입력 가능합니다.
  • MatchCase : True는 대소문자를 구분하고, False는 대소문자를 구별하지 않습니다. 피벗테이블의 정렬기능에서는 사용할 수 없다고 합니다. 기본 값은 False입니다.
  • Orientation : 정렬기준이 행기준인지 열기준인지를 결정합니다.
    xlSortColumns(1) : 열 기준으로 정렬합니다.
    xlSortRows(2) : 행 기준으로 정렬하고 이 값이 디폴트입니다.
  • SortMethod : 정렬방법을 지정합니다.
    xlPinYin(1) : 음성학적으로 중국어에 정렬순서를 따릅니다. 기본값입니다.
    xlStroke(2) : 각 글자의 획수로 정렬합니다.
  • DataOption1 : Key1에 지정된 범위(첫 번째 규칙의 범위)의 텍스트를 정렬하는 방법을 지정합니다. 피벗 테이블 정렬에는 적용되지 않습니다.
    xlSortNormal(0) : 기본값으로 숫자 변수를 텍스트와 따로 분류해서 각각 정렬합니다.
    xlSortTextAsNumbers(1) : 텍스트를 숫자로 변환해서 함께 정렬합니다.
  • DataOption2, DataOption3 : Key2, Key3에서 지정됨 범위를 정렬합니다. 
  • 기본적으로 SORT의 모든 매개변수들은 선택형입니다.

 

320x100

 

 

<사용예시>

 

아래 테이블에서 "분류"를 기준으로 정렬을 하려고합니다.

Header를 xlYes로 머리글자를 지정하고 필드의 이름인 "분류"를 이용해 정렬해 보겠습니다

 

예시

 

Sub 예시()

    ActiveWorkbook.Worksheets("Sheet1").Range("D46:F79").Sort key1:="분류", _
    order1:=xlAscending, _
    Header:=xlYes, _
    MatchCase:=False, _
    Orientation:=xlTopToBottom, _
    SortMethod:=xlPinYin

End Sub

 

 

소스가 길기 때문에 줄바꿈 연산자 _ 를 사용해서 아래로 내렸습니다.

사람이 알아보기는 이러면 편하지만 컴퓨터는

ActiveWorkbook.Worksheets("Sheet1").Range("D46:F79").Sort key1:="작물명", order1:=xlAscending, Header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin

이라고 한줄로 써도 얼마든지 인식됩니다.

반응형

+ Recent posts