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


VBA는 수년간 Microsoft Office 제품군의 일부였습니다. 완전한 VB 애플리케이션의 완전한 기능과 기능을 갖추고 있지는 않지만 VBA는 Office 사용자에게 Office 제품을 통합하고 작업을 자동화 할 수있는 유연성을 제공합니다.

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

VBA 어레이 란 무엇입니까? 이 기사에서는이 질문에 답하고 자신의 VBA 스크립트 에서 사용하는 방법을 보여줍니다.

VBA 배열이란 무엇입니까?

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

섹션이있는 상자와 같은 배열을 생각해보십시오. 1 차원 배열은 한 줄의 섹션이있는 상자입니다. 2 차원 배열은 두 줄의 섹션으로 구성된 상자입니다.

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

In_content_1 all : [300x250] / dfp : [640x360]->

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 배열을 프로그래밍하는 방법

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

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

VBA에서는 행 또는 열을 참조 할 때 왼쪽 상단부터 1부터 행과 열 을 계산합니다. 따라서 rep 열은 3, 항목 열은 4, 총 열은 7.

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

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

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

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

VBA 스크립트를 Excel에 프로그램으로 배치하려면 VBA 에디터. 개발자메뉴를 선택하고 리본 메뉴의 컨트롤 섹션에서 코드보기를 선택하면 액세스 할 수 있습니다.

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

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

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

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

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

두 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에서 엑셀의 배열수식를 사용할 수 있는 방법이 있는지?

관련 게시물:


18.01.2020