XL2000: Excel에서 정렬 배열 VBA 매크로 사용 방법

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

213818
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
요약
Microsoft Excel 2000에서 사용하는 Microsoft VBA 매크로를 또는 프로시저 값의 배열 정렬 직접적인 방법이 없습니다. 이 문서에서는 배열을 정렬하는 데 사용할 수 두 개의 서로 다른 알고리즘을 설명합니다: 선택 정렬거품형 정렬.
추가 정보
Microsoft을 배제하며 제한되지 않은 묵시적된 보증 (상품성 및 특정 목적에의 적합성에 대한 묵시적인, 목적으로만 프로그래밍 예제를 제공합니다. 이 문서에서는 프로시저를 작성하고 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 기술 지원 담당자는 특정 절차에 대한 기능을 설명할 수 있지만 추가 기능을 제공하거나 특정 요구 사항에 맞도록 프로시저를 구성하지는 이 예제를 수정하지 않습니다.
프로그래밍 경험이 제한되어 있으면 Microsoft 인증 파트너 문의하거나 Microsoft 자문 서비스 할 수 있습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.

인증된 Microsoft 파트너 - https://partner.microsoft.com/global/30000104

Microsoft 권고 서비스 - http://support.microsoft.com/gp/advisoryservice

사용할 수 있는 지원 옵션 및 Microsoft 연락하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

방법 1: 선택 정렬

선택 정렬 중 보다 쉽게 프로그래밍할 수 있는 정렬 간에 있습니다 있지만 데이터 큰 배열을 거품 정렬 것보다 더 느리게 실행될 경향이 있습니다.

수행할 수 있는 선택 종류의 가진 배열의 요소 수는 n 1 사이의 수 1 n 큰 요소를 찾습니다. 이러한 요소를 n 아니면 가장 큰 요소와를 요소 n 교환하십시오. 그런 다음 1의 최대 요소 n - 1 찾아 이 요소를 n-1 인 경우 가장 큰 요소가 n-1 요소와 교환할. 다음에는 1의 최대 요소 n - 2 찾아, 이러한 요소를 n-2 아니면 요소 n-2, 가장 큰 요소와 교환할 등을.

다음 VBA Variant 형식 배열의 함께 선택 정렬 예입니다.
  1. 입력 또는 모듈 시트에 다음 붙여넣기: Option Base 1
    Function SelectionSort(TempArray As Variant)    Dim MaxVal As Variant    Dim MaxIndex As Integer    Dim i, j As Integer    ' Step through the elements in the array starting with the    ' last element in the array.    For i = UBound(TempArray) To 1 Step -1        ' Set MaxVal to the element in the array and save the        ' index of this element as MaxIndex.        MaxVal = TempArray(i)        MaxIndex = i        ' Loop through the remaining elements to see if any is        ' larger than MaxVal. If it is then set this element        ' to be the new MaxVal.        For j = 1 To i            If TempArray(j) > MaxVal Then                MaxVal = TempArray(j)                MaxIndex = j            End If        Next j        ' If the index of the largest element is not i, then        ' exchange this element with element i.        If MaxIndex < i Then            TempArray(MaxIndex) = TempArray(i)            TempArray(i) = MaxVal        End If    Next iEnd FunctionSub SelectionSortMyArray()    Dim TheArray As Variant    ' Create the array.    TheArray = Array(15, 8, 11, 7, 33, 4, 46, 19, 20, 27, 43, 25, 36)    ' Sort the Array and display the values in order.    SelectionSort TheArray    For i = 1 To UBound(TheArray)        MsgBox TheArray(i)    Next iEnd Sub					
  2. 매크로를 실행하려면 도구 메뉴에서 매크로 를 가리킨 다음 매크로 클릭하십시오.
  3. SelectionSortMyArray 매크로를 선택하고 실행 을 클릭하십시오.

방법 2: 거품 정렬

거품 정렬 더 어렵게 선택 정렬 것보다 프로그래밍할 수 있지만 더 빠르고 효율적으로 더 큰 배열을 데이터 실행할 경향이.

거품 정렬 수행하려면 n-1 요소 배열의 각 요소는 한 후 이를 사용하여 비교할 1로 평가 (즉, 요소 2 1 요소에 비해, 요소 2 3, 요소 등을 위해 비교됩니다). 이러한 두 요소는 요소 뒤에 요소를 보다 크면 교환됩니다. 요소 없음 자세한 교환을 때까지 이 과정을 계속하십시오. 다음 VBA Variant 형식 배열의 함께 거품 정렬 예입니다.
  1. 입력 또는 모듈 시트에 다음 코드를 붙여: Option Base 1
    Function BubbleSort(TempArray As Variant)    Dim Temp As Variant    Dim i As Integer    Dim NoExchanges As Integer    ' Loop until no more "exchanges" are made.    Do        NoExchanges = True        ' Loop through each element in the array.        For i = 1 To UBound(TempArray) - 1            ' If the element is greater than the element            ' following it, exchange the two elements.            If TempArray(i) > TempArray(i + 1) Then                NoExchanges = False                Temp = TempArray(i)                TempArray(i) = TempArray(i + 1)                TempArray(i + 1) = Temp            End If        Next i    Loop While Not (NoExchanges)End FunctionSub BubbleSortMyArray()    Dim TheArray As Variant    ' Create the array.    TheArray = Array(15, 8, 11, 7, 33, 4, 46, 19, 20, 27, 43, 25, 36)    ' Sort the Array and display the values in order.    BubbleSort TheArray    For i = 1 To UBound(TheArray)        MsgBox TheArray(i)    Next iEnd Sub					
  2. 매크로를 실행하려면 도구 메뉴에서 매크로 를 가리킨 다음 매크로 클릭하십시오.
  3. SelectionSortMyArray 매크로를 선택하고 실행 을 클릭하십시오.
참고: 이러한 예제 중 모두 오름차순으로 정렬합니다. 내림차순으로 선택 정렬 수행하려면 변경 ">"를 "<" 다음 줄에 있는SelectionSort 함수:
If TempArray(j) > MaxVal Then				
내림차순으로 거품 정렬 수행하려면 변경 ">" 수 있는 "<" 다음 줄에 있는BubbleSort 함수:
If TempArray(i) > TempArray(i + 1) Then				
xl2000

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 213818 - 마지막 검토: 12/05/2015 12:20:29 - 수정: 3.5

Microsoft Excel 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbdtacode kbhowto kbinfo kbprogramming KB213818 KbMtko
피드백