Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

VBA는 수년 동안 Microsoft Office 제품군의 일부였습니다. 완전한 VB 응용 프로그램의 모든 기능과 성능을 가지고 있지는 않지만 VBA는 Office 사용자에게 Office 제품을 통합하고 해당 제품에서 수행하는 작업을 자동화할 수 있는 유연성을 제공합니다.

VBA에서 사용할 수 있는 가장 강력한 도구 중 하나는 전체 데이터 범위를 배열이라는 단일 변수에 로드하는 기능입니다. 이러한 방식으로 데이터를 로드하면 다양한 방식으로 해당 데이터 범위를 조작하거나 계산을 수행할 수 있습니다.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    그렇다면 VBA 배열이란 무엇입니까? 이 기사에서 우리는 그 질문에 답하고 자신의 VBA 스크립트에서 이를 사용하는 방법을 보여줄 것입니다.

    VBA 어레이란 무엇입니까?

    Excel에서 VBA 배열을 사용하는 것은 매우 간단하지만 한 번도 사용해 본 적이 없다면 배열의 개념을 이해하는 것이 약간 복잡할 수 있습니다.

    내부에 섹션이 있는 상자와 같은 배열을 생각하십시오. 1차원 배열은 한 줄의 섹션이 있는 상자입니다. 2차원 배열은 두 줄의 섹션이 있는 상자입니다.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    이 "상자"의 각 섹션에 원하는 순서대로 데이터를 넣을 수 있습니다.

    VBA 스크립트 시작 부분에서 VBA 배열을 정의하여 이 "상자"를 정의해야 합니다. 따라서 한 세트의 데이터(1차원 배열)를 저장할 수 있는 배열을 만들려면 다음 줄을 작성합니다.

    Dim arrMyArray(1 To 6) As String

    나중에 프로그램에서 괄호 안의 섹션을 참조하여 이 배열의 모든 섹션에 데이터를 배치할 수 있습니다.

    arrMyArray(1) = "Ryan Dube"

    다음 줄을 사용하여 2차원 배열을 만들 수 있습니다.

    Dim arrMyArray(1 To 6,1 to 2) As Integer

    첫 번째 숫자는 행을 나타내고 두 번째 숫자는 열을 나타냅니다. 따라서 위의 배열은 6행과 2열의 범위를 가질 수 있습니다.

    다음과 같이 데이터가 있는 이 배열의 모든 요소를 ​​로드할 수 있습니다.

    arrMyArray(1,2) = 3

    그러면 셀 B1에 3이 로드됩니다.

    배열은 문자열, 부울, 정수, 부동 소수점 등과 같은 모든 유형의 데이터를 일반 변수로 보유할 수 있습니다.

    괄호 안의 숫자도 변수가 될 수 있습니다. 프로그래머는 일반적으로 For 루프를 사용하여 배열의 모든 섹션을 계산하고 스프레드시트의 데이터 셀을 배열로 로드합니다. 이 문서의 뒷부분에서 이 작업을 수행하는 방법을 볼 수 있습니다.

    Excel에서 VBA 배열을 프로그래밍하는 방법

    스프레드시트에서 다차원 배열로 정보를 로드할 수 있는 간단한 프로그램을 살펴보겠습니다.

    예를 들어 제품 판매 스프레드시트에서 판매 담당자의 이름, 품목 및 총 판매액을 가져오려는 스프레드시트를 살펴보겠습니다.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    VBA에서 행이나 열을 참조할 때 행과 열은 왼쪽 상단에서 1부터 계산합니다. 따라서 rep 열은 3, item 열은 4, total 열은 7입니다.

    이 세 개의 열을 11개 행 모두에 로드하려면 다음 스크립트를 작성해야 합니다.

    Dim arrMyArray(1 To 11, 1 To 3) As String
    Dim i As Integer, j As Integer
    For i = 2 To 12
    For j = 1 To 3
    arrMyArray(i-1, j) = Cells(i, j).Value
    Next j
    Next i

    헤더 행을 건너뛰려면 첫 번째 For look의 행 번호가 1이 아닌 2에서 시작해야 합니다. 즉, 셀 값을 로드할 때 배열 행 값에 대해 1을 빼야 합니다. Cells(i, j).Value를 사용하여 배열에 넣습니다.

    VBA 배열 스크립트를 삽입할 위치

    Excel에 VBA 스크립트를 배치하려면 VBA 편집기를 사용해야 합니다. 개발자를 선택하여 액세스할 수 있습니다. 메뉴에서 코드 보기 선택 리본의 컨트롤 섹션에서.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    메뉴에 개발자가 표시되지 않으면 추가해야 합니다. 이렇게 하려면 파일을 선택합니다. 및 옵션 Excel 옵션 창을 엽니다.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    선택 명령을 드롭다운에서 모든 명령으로 변경합니다. . 개발자 선택 왼쪽 메뉴에서 추가를 선택합니다. 버튼을 눌러 오른쪽 창으로 이동합니다. 확인란을 선택하여 활성화하고 확인을 선택합니다. 종료합니다.

    코드 편집기 창이 열리면 왼쪽 창에서 데이터가 있는 시트가 선택되어 있는지 확인합니다. 워크시트 선택 왼쪽 드롭다운에서 활성화 오른쪽에서. 그러면 Worksheet_Activate()라는 새 서브루틴이 생성됩니다.

    이 기능은 스프레드시트 파일이 열릴 때마다 실행됩니다. 이 서브루틴 내부의 스크립트 창에 코드를 붙여넣습니다.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    이 스크립트는 12개 행에서 작동하며 3열에서 담당자 이름, 4열에서 항목, 7열에서 총 판매액을 로드합니다.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    두 For 루프가 모두 끝나면 2차원 배열 arrMyArray에는 원본 시트에서 지정한 모든 데이터가 포함됩니다.

    Excel VBA에서 배열 조작

    모든 최종 판매 가격에 5%의 판매세를 적용하고 모든 데이터를 새 시트에 쓴다고 가정해 보겠습니다.

    결과를 새 시트에 쓰는 명령을 사용하여 첫 번째 루프 다음에 또 다른 For 루프를 추가하여 이를 수행할 수 있습니다.

    For k = 2 To 12
    Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
    Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
    Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
    Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
    Next k

    이렇게 하면 전체 어레이가 Sheet2로 "언로드"되고, 추가 행에는 세금 금액에 대해 5%를 곱한 합계가 포함됩니다.

    결과 시트는 다음과 같습니다.

    Excel에서 VBA 배열이란 무엇이며 프로그래밍하는 방법

    보시다시피 Excel의 VBA 배열은 다른 Excel 트릭만큼 매우 유용하고 다양합니다.

    위의 예는 배열에 대한 매우 간단한 사용입니다. 훨씬 더 큰 배열을 생성하고 배열에 저장한 데이터에 대해 정렬, 평균화 또는 기타 여러 기능을 수행할 수 있습니다.

    실제 창의력을 발휘하려면 두 개의 다른 시트에서 셀 범위를 포함하는 두 개의 배열을 만들고 각 배열의 요소 간에 계산을 수행할 수도 있습니다.

    응용 프로그램은 당신의 상상력에 의해서만 제한됩니다.