Thursday, March 08, 2007
Excel/엑셀] VBA 2차원 배열 선언 초기화 출력 예제; Two Dimensional Array
엑셀 비베(VBA)에서, 2차원 배열을 만들어서 초기화하는 것은 그리 매끄럽게 되지 않았습니다. 요소들을 일일히 대입해 주어야 했습니다. 옛날 GW-BASIC 에서와 같은 그런 원시적인 방법입니다. 더 간단한 방법이 없나 하고 아무리 찾아봐도 없더군요.
비베 에디터에서 F5 키를 누르거나, 엑셀에서 Alt+F8 키를 누르면 VBA 매크로가 실행됩니다.
위의 VBA 코드를 실행하면 다음의 내용과 같은 메시지 박스가 나옵니다. 이차원 배열의 모든 요소들을 하나씩 출력한 것입니다.
---------------------------
Microsoft Excel
---------------------------
(0, 0)번 요소의 값: 662
(0, 1)번 요소의 값: 7
(0, 2)번 요소의 값: 4
(0, 3)번 요소의 값: 74
(1, 0)번 요소의 값: 8
(1, 1)번 요소의 값: 396
(1, 2)번 요소의 값: 299
(1, 3)번 요소의 값: 95
(2, 0)번 요소의 값: 66
(2, 1)번 요소의 값: 73
(2, 2)번 요소의 값: 86
(2, 3)번 요소의 값: 0
(3, 0)번 요소의 값: 116
(3, 1)번 요소의 값: 26
(3, 2)번 요소의 값: 586
(3, 3)번 요소의 값: 42
(4, 0)번 요소의 값: 84
(4, 1)번 요소의 값: 7
(4, 2)번 요소의 값: 41
(4, 3)번 요소의 값: 11
---------------------------
확인
---------------------------
1차원 배열 만들기: ▶▶ Excel/엑셀 VBA] 배열 선언, Array 함수로 초기화 출력 예제; Array Function Example
엑셀 비베, 이차원 배열(Array) 만들기 예제 소스
(엑셀에서 Alt+F11키를 눌러, 비베 에디터를 실행하고, 비베 에디터 메뉴의, "삽입 > 모듈"을 선택한 후, 다음 코드를 붙여 넣습니다.)비베 에디터에서 F5 키를 누르거나, 엑셀에서 Alt+F8 키를 누르면 VBA 매크로가 실행됩니다.
Sub Array_2D_Print_Example()
' 2차원 배열 선언; 첫째 숫자는 행의 최대 첨자, 둘째 숫자는 열의 최대 첨자
Dim a(4, 3)
a(0, 0) = 662: a(0, 1) = 7: a(0, 2) = 4: a(0, 3) = 74
a(1, 0) = 8: a(1, 1) = 396: a(1, 2) = 299: a(1, 3) = 95
a(2, 0) = 66: a(2, 1) = 73: a(2, 2) = 86: a(2, 3) = 0
a(3, 0) = 116: a(3, 1) = 26: a(3, 2) = 586: a(3, 3) = 42
a(4, 0) = 84: a(4, 1) = 7: a(4, 2) = 41: a(4, 3) = 11
Dim I, S
' 배열 요소들을 하나씩 꺼내어, 문자열로 저장
For I = LBound(a, 1) To UBound(a, 1) ' 0~4
For J = LBound(a, 2) To UBound(a, 2) ' 0~3
S = S & "(" & I & ", " & J & ")번 요소의 값: " & a(I, J) & Chr(13)
Next J
Next I
' 배열 내용 출력
MsgBox S
End Sub
' 2차원 배열 선언; 첫째 숫자는 행의 최대 첨자, 둘째 숫자는 열의 최대 첨자
Dim a(4, 3)
a(0, 0) = 662: a(0, 1) = 7: a(0, 2) = 4: a(0, 3) = 74
a(1, 0) = 8: a(1, 1) = 396: a(1, 2) = 299: a(1, 3) = 95
a(2, 0) = 66: a(2, 1) = 73: a(2, 2) = 86: a(2, 3) = 0
a(3, 0) = 116: a(3, 1) = 26: a(3, 2) = 586: a(3, 3) = 42
a(4, 0) = 84: a(4, 1) = 7: a(4, 2) = 41: a(4, 3) = 11
Dim I, S
' 배열 요소들을 하나씩 꺼내어, 문자열로 저장
For I = LBound(a, 1) To UBound(a, 1) ' 0~4
For J = LBound(a, 2) To UBound(a, 2) ' 0~3
S = S & "(" & I & ", " & J & ")번 요소의 값: " & a(I, J) & Chr(13)
Next J
Next I
' 배열 내용 출력
MsgBox S
End Sub
위의 VBA 코드를 실행하면 다음의 내용과 같은 메시지 박스가 나옵니다. 이차원 배열의 모든 요소들을 하나씩 출력한 것입니다.
---------------------------
Microsoft Excel
---------------------------
(0, 0)번 요소의 값: 662
(0, 1)번 요소의 값: 7
(0, 2)번 요소의 값: 4
(0, 3)번 요소의 값: 74
(1, 0)번 요소의 값: 8
(1, 1)번 요소의 값: 396
(1, 2)번 요소의 값: 299
(1, 3)번 요소의 값: 95
(2, 0)번 요소의 값: 66
(2, 1)번 요소의 값: 73
(2, 2)번 요소의 값: 86
(2, 3)번 요소의 값: 0
(3, 0)번 요소의 값: 116
(3, 1)번 요소의 값: 26
(3, 2)번 요소의 값: 586
(3, 3)번 요소의 값: 42
(4, 0)번 요소의 값: 84
(4, 1)번 요소의 값: 7
(4, 2)번 요소의 값: 41
(4, 3)번 요소의 값: 11
---------------------------
확인
---------------------------
1차원 배열 만들기: ▶▶ Excel/엑셀 VBA] 배열 선언, Array 함수로 초기화 출력 예제; Array Function Example
tag: office
엑셀 Excel | 워드 Word | VBA 매크로 | 오피스
<< Home