[ 기초 강좌 ]
제 35 강
DropDownBox(TransposeAllItem)
Excel의 생명이라고 할 수 있는 DropDownBox(TransposeAllItem)
그 사용법을 알아봅니다.
이럴 때 필요해요
입력된 데이터의 목록만들어 선택하였을 때 선택한 데이터만 표시되게 할 때 필요합니다.
이렇게 사용해요
아래의 그림처럼 요일을 선택했을 때 , 그요일만 표시가 되도록 해보겠습니다.
Worksheet오브젝트를 열어서 아래와 같은 내용의 Change이벤트 프로시저를 작성하세요.
Private Sub Worksheet_Change(ByVal Target As Range) |
먼저, 작업에 필요한 변수(rngSelect, cmbCombo 등)들을 선언해 줍니다.
간혹, "변수가 프로그램 중에 사용될 것을 어떻게 미리 알고 항상 프로시저 앞 부분에 모두 다 선언합니까?"
… 라는 질문을 하시는 분이 계시더군요.
그것은, 필요한 모든 변수를 미리 다 생각해서 적어 주는 것이 아닙니다.
코드를 짜기 전에 어떤 순서를 따를 것인가를 생각하여 최소한의 변수들만 도입부분에 선언해 줍니다.
그리고, 나머지는 프로그래밍을 하면서 하나씩 추가를 한 다음, 코드가 완성되고 나서 순서를 고쳐 주는 것입니다.
On Error Resume Next |
먼저, 마우스의 오른쪽으로 위 드롭다운 박스를 눌러 NameBox 창에 나타 나는 정의된 이름(MyCombo)을
참조하시기 바라며, 아울러 위 Intersect메서드의 참조범위로 지정된 [ItemArea] 는 D8에서 J8까지 이름정의 되었습니다.
If Not rngSelect Is Nothing Then |
If 조건문을 사용하여 변수 rngSelect의 영역, 즉 ItemArea로 [이름정의]된 영역의 셀 값에 변동이 있으면
먼저, 변수 cmbCombo로 정의된 드롭다운 박스의 목록들을 모두 지웁니다.(RemoveAllItems)
.AddItem Application.Transpose([ItemArea]) |
그 다음엔, 해당 드롭다운 박스에 Excel의 Transpose함수를 사용하여 ItemArea영역의 데이터를 세로의
형태로 바꾸어 다시 채워 넣습니다.(AddItem)
.Listlndex |
끝으로, 다시 채워 진 목록들 중 항상 첫번 째 목록이 나타 나도록 조치해 줍니다.
End With |
With 문과 If 문을 모두 종료합니다.
End Sub |
참고로, 이와 같이 [양식]도구모음으로 사용된 드롭다운박스 등의 개체들은 VBA 또는 Macro 등으로 해당 개체의 속성을
지정하거나 변경할 수 있습니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.