[ 기초 강좌 ]
제 49강
배열(Array)에 대하여Ⅰ
배열(Array)에 대하여 알아봅니다.
이럴 때 필요해요
배열식을 이용하여 데이터를 구해낼때 사용됩니다.
이렇게 사용해요
먼저, 오른 쪽의 버튼(Array_1)을 눌러 나타 나는 결과를 살펴 보시기 바랍니다.
Dim MyWeek As Variant
Dim i As Integer
MyWeek = Array("월", "화", "수", "목", "금", "토", "일")
For i = 0 To 6
Range("C6").Offset(0, i) = MyWeek(i)
Next i
End Sub
먼저, MyWeek라는 가변형(Variant)변수를 선언해 준 다음 ....
MyWeek = Array("월", "화", "수", "목", "금", "토", "일") 라고 변수 MyWeek는 배열(Array)값임을
정의합니다.
For~Next 순환문을 사용하여, 배열형식의 변수 MyWeek에서 변수 i에 해당하는 값을 C6 셀부터
한 칸씩 오른 쪽으로 뿌려 줍니다.
즉, MyWeek(0), MyWeek(1), MyWeek(2), MyWeek(3), MyWeek(4), MyWeek(5), MyWeek(6)의
값("월", "화", "수".... "일" 등)을 차례로 구하게 됩니다.
여기서 특이한 점은, 배열(Array)에서의 최초값은 1이 아니라 0이라는것입니다.
즉, 위 프로시저의 경우 MyWeek(0)에 해당하는 값은 "월", MyWeek(1)의 값은 "화" ...
마지막 MyWeek(6)에 해당하는 값은 "일"이 됩니다.
다시 오른 쪽의 버튼을 눌러 나타 나는 결과를 살펴 보시기 바랍니다.
앞서의 [Array_1] 이라는 프로시저와 다른 점은 아래와 같이 변수 i에 대한 정의 부분입니다.
For i = LBound(MyWeek) To UBound(MyWeek)
버튼에 연결된 프로시저의 경우처럼 배열의 개수(7개)가 적으므로 For i = 0 To 6 과 같이, 직접 0과 6 등의
숫자를 지정해 주어도 됩니다만, 배열의 개수가 많거나 또는 유동적일 경우에는 Lbound와 Ubound 함수를
사용하면 편리합니다.
여기서 Lbound(MyWeek)는 제일 낮은 배열순서인 0을, Ubound(MyWeek)는 제일 높은 배열순서인 6을
의미합니다. 참고로 Lbound와 Ubound 에서의 L은 Lower, U는 Upper의 약자입니다.
첫번째방법 프로시저의 경우에는, 각 셀별로 접근해서 조건에 만족하는 값들을
순환해서 합하는 방법이고,
두번째방법 에 연결된 프로시저는 전체 데이터의 범위를 배열로 처리해서
조건에 맞는 값을 한꺼번에 뿌려 준 후 더하는 방법입니다.
[Data]시트의 데이터 형태와 같이 조건이 많지 않고, 비교적 크지 않은 범위의 경우에는 그다지 큰 차이를
느낄 수 없습니다만, 그렇지 않은 경우에는 첫번째 프로시저보다 두번째 프로시저의 실행속도 가 훨씬 빠른걸 알수있습니다!
//오늘은 여기까지~^^
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.