[VBA 제 47강] ListBox에서 동적범위참조 썸네일 이미지
[VBA 제 47강] ListBox에서 동적범위참조
콘텐츠 타입 MS 오피스 엑셀 2003(2007, 2010가능), Windows XP 이상
용량0KB
조회3,718
즐겨찾기
[VBA 제 47강] ListBox에서 동적범위참조를 즐겨찾기 한 횟수는 0 0입니다.
이용등급 프리미엄
제품 상세정보

 




[ 기초 강좌 ]

 

제 47 강

ListBox에서 동적범위참조

 

Excel의 생명이라고 할 수 있는 ListBox에서 동적범위참조

그 사용법을 알아봅니다.

이럴 때 필요해요

 

데이터 목록중에 한데이터를 삭제했을 때 자동으로 메크로박스에도 없어지게 할 때 필요합니다.

이렇게 사용해요

먼저, UserForm의 버튼을 클릭하면, ListBox가 뜨는데 마지막목록 (안정미)를 지웠을때 ListBox를 보면

목록이 사라져있는것을 볼 수 있습니다.

이부분을 어떻게 하면 좋을까요?

 

 



먼저, 아래의 UserForm 수식을 살펴보겠습니다.

 Private Sub UserForm_Initialize()
   Dim rngArea As Range
   Dim rngStart As Range
  
   Set rngStart = Range("Start ")
   Set rngArea = Range(rngStart, rngStart.End(xlToRight).End(xlDown))
    With ListBox1
        .ColumnHeads = True
        .ColumnCount = 3
        .RowSource = rngArea.Address
        .ColumnWidths = "60 pt;49.95 pt;75 pt"
    End With
End Sub

위와 같이 ListBox의 default=(UserForm_Initialize) 값으로 지정해 주면, (즉 변수 rngArea 의 범위를 (rngStart, rngStart.End(xlToRight).End(xlDown))  부분과 같이 지정한 다음,

ListBoxRowSource 속성 값으로는  rngArea.Address를 설정해 주면)

참조범위가 늘어 나거나 줄어 드는 경우에도 참조합니다.

참고로, ListBoxRowSource 속성 값은 위와 같이 주소값(Address)으로 지정해 주어야 참조할 수 있습니다.

 

 

다음은, ListBox 의 특정 목록을 선택(Click)했을 경우, 발생하게 되는 ListBox 오브젝트의

Change 이벤트 핸들러 프로시저의 내용은 아래와 같습니다.

(아래의 내용에 대해서는 별도의 설명이 필요 없을 듯 해서 생략합니다.)

Private Sub ListBox1_Change()
  Dim i As Integer, r As Integer
    With ListBox1
        If .ListIndex < 0 Then
          MsgBox "선택이 잘못되었습니다", vbExclamation, "김우수"
           Exit Sub
        End If
        r = .ListIndex
         End With
      
     For i = 1 To 3
       Me.Controls("TextBox" & i).Value = ListBox1.List(r, i - 1)
     Next i
End Sub

 

 

아래는 총프로시저입니다.

 

 

 

저작권정보
1. 콘텐츠의 저작권은 쿠키(www.coukey.co.kr)에 있으며, 사용권한은 1인 1카피입니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.
[VBA 제 47강] ListBox에서 동적범위참조
이용후기

업무자동화 맞춤제작

고객님의 상황에 100% 맞춘 콘텐츠 제작 전문 서비스를 이용해 보세요.
프리미엄 무료 이벤트 중