방법: 워크시트에서 프로그래밍 방식으로 데이터 정렬

업데이트: 2008년 7월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • 문서 수준 프로젝트

  • 응용 프로그램 수준 프로젝트

Microsoft Office 버전

  • Excel 2003

  • Excel 2007

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

런타임에 워크시트 범위와 목록에 포함된 데이터를 정렬할 수 있습니다. 다음 코드에서는 여러 열로 구성된 Fruits라는 범위를 첫 번째 열의 데이터를 기준으로 정렬한 다음 두 번째 열의 데이터를 기준으로 정렬합니다.

Visual Studio 2008 SP1(서비스 팩 1)부터는 런타임에 응용 프로그램 수준 추가 기능에서도 데이터를 정렬할 수 있습니다.

문서 수준 사용자 지정의 데이터 정렬

NamedRange 컨트롤의 데이터를 정렬하려면

  • NamedRange 컨트롤의 Sort 메서드를 호출합니다. 다음 예제를 실행하려면 Fruits라는 NamedRange 컨트롤이 워크시트에 있어야 합니다. 이 코드는 ThisWorkbook 클래스가 아닌 시트 클래스에 배치해야 합니다.

    Me.Fruits.Sort( _
        Key1:=Me.Fruits.Columns(1), Order1:=Excel.XlSortOrder.xlAscending, _
        Key2:=Me.Fruits.Columns(2), Order2:=Excel.XlSortOrder.xlAscending, _
        Orientation:=Excel.XlSortOrientation.xlSortColumns, _
        Header:=Excel.XlYesNoGuess.xlNo, _
        SortMethod:=Excel.XlSortMethod.xlPinYin, _
        DataOption1:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption2:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption3:=Excel.XlSortDataOption.xlSortNormal)
    
    this.Fruits.Sort(
        this.Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending,
        this.Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending,
        Excel.XlYesNoGuess.xlNo, missing, missing, 
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal); 
    

ListObject 컨트롤의 데이터를 정렬하는 다음과 같은 코드를 Sheet1.vb 또는 Sheet1.cs에 추가합니다. 이 코드에서는 이름이 Sheet1인 워크시트에 fruitList라는 Microsoft.Office.Tools.Excel.ListObject 컨트롤이 있는 것으로 가정합니다.

ListObject 컨트롤의 데이터를 정렬하려면

  • ListObject 호스트 컨트롤의 Range 속성에 대한 Sort 메서드를 호출합니다.

    Me.fruitList.Range.Sort( _
        Key1:=Me.fruitList.ListColumns(1).Range, Order1:=Excel.XlSortOrder.xlAscending, _
        Key2:=Me.fruitList.ListColumns(2).Range, Order2:=Excel.XlSortOrder.xlAscending, _
        Orientation:=Excel.XlSortOrientation.xlSortColumns, _
        Header:=Excel.XlYesNoGuess.xlYes)
    
    this.fruitList.Range.Sort(
        this.fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
        this.fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending, 
        Excel.XlYesNoGuess.xlYes, missing, missing, 
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin, 
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal);
    

응용 프로그램 수준 추가 기능의 데이터 정렬

네이티브 범위의 데이터를 정렬하려면

  • 네이티브 Excel Microsoft.Office.Interop.Excel.Range 컨트롤의 Sort 메서드를 호출합니다. 다음 예제를 실행하려면 Fruits라는 네이티브 Excel 컨트롤이 워크시트에 있어야 합니다.

    Dim Fruits As Excel.Range = Me.Application.Range("A1", "B2")
    Fruits.Sort( _
        Key1:=Fruits.Columns(1), Order1:=Excel.XlSortOrder.xlAscending, _
        Key2:=Fruits.Columns(2), Order2:=Excel.XlSortOrder.xlAscending, _
        Orientation:=Excel.XlSortOrientation.xlSortColumns, _
        Header:=Excel.XlYesNoGuess.xlNo, _
        SortMethod:=Excel.XlSortMethod.xlPinYin, _
        DataOption1:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption2:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption3:=Excel.XlSortDataOption.xlSortNormal)
    
    Excel.Range Fruits = Application.get_Range("A1", "B3");
        Fruits.Sort(
        Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending,
        Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending,
        Excel.XlYesNoGuess.xlNo, missing, missing,
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal); 
    

ListObject 컨트롤의 데이터를 정렬하려면

  • 네이티브 Excel Microsoft.Office.Interop.Excel.ListObject 컨트롤의 Range 속성에 대한 Sort 메서드를 호출합니다. 다음 예제에서는 활성 워크시트에 fruitList라는 네이티브 Excel Microsoft.Office.Interop.Excel.ListObject 컨트롤이 있다고 가정합니다.

    Dim fruitList As Excel.ListObject = CType(Application.ActiveSheet,  _
        Excel.Worksheet).ListObjects.AddEx(Excel.XlListObjectSourceType.xlSrcRange, _
        Application.Range("A1", "B2"))
    fruitList.Range.Sort( _
    Key1:=fruitList.ListColumns(1).Range, Order1:=Excel.XlSortOrder.xlAscending, _
    Key2:=fruitList.ListColumns(2).Range, Order2:=Excel.XlSortOrder.xlAscending, _
    Orientation:=Excel.XlSortOrientation.xlSortColumns, _
    Header:=Excel.XlYesNoGuess.xlYes)
    
    Excel.ListObject fruitList = 
         ((Excel.Worksheet)Application.ActiveSheet).
             ListObjects.Add(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange,
             Application.get_Range("A1", "B3"), 
             missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo, missing); 
        fruitList.Range.Sort(
            fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
            fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
            missing, Excel.XlSortOrder.xlAscending,
            Excel.XlYesNoGuess.xlYes, missing, missing,
            Excel.XlSortOrientation.xlSortColumns,
            Excel.XlSortMethod.xlPinYin,
            Excel.XlSortDataOption.xlSortNormal,
            Excel.XlSortDataOption.xlSortNormal,
            Excel.XlSortDataOption.xlSortNormal);
    

참고 항목

작업

방법: 증분 변경되는 데이터를 사용한 범위 자동 입력

방법: 코드에서 워크시트 범위 참조

방법: 통합 문서에서 일정 범위에 스타일 적용

개념

워크시트 작업

NamedRange 컨트롤

ListObject 컨트롤

Office 솔루션의 선택적 매개 변수 이해

변경 기록

날짜

변경 내용

이유

2008년 7월

응용 프로그램 수준 추가 기능에 사용할 수 있는 코드 예제가 추가되었습니다.

고객 의견