Lost Information!

엑셀 VBA 기초 - ListBox를 활용하여 쉽게 리스트 입력하기 - 1편 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기초 - ListBox를 활용하여 쉽게 리스트 입력하기 - 1편

Lostinformation 2020. 12. 23. 12:27

모두가 칼퇴하는 그날까지~

 

지난 글에서는 

한글과 영어, 숫자,

기타 문자까지 엑셀이

알아내는 방법

알려드렸습니다.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2470

 

엑셀 VBA 기초 - 한글, 영어, 숫자, 기타문자를 알아내는 엑셀

모두가 칼퇴하는 그날까지~ 지난 글에서는 엑셀 시트를 PDF로 저장하는 방법에 대해 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참고해주세요. red-s.tistor

red-s.tistory.com

 

이번 글에서는

리스트 박스를

활용하는 방법에 대해 

알려드리도록 하겠습니다.

 

이런 형태의 지출내역이

있다고 생각해볼게요.

 

그럼 이걸 리스트 박스에

옮겨볼 건데요.

 

ALT + F11을 눌러주세요.

 

그리고 마우스 오른쪽

버튼을 누른 뒤 삽입에서

사용자 정의 폼을 눌러주시고

 

도구 상자에서 목록 상자를

선택 후 적당한 크기로 

드래그해주세요

 

빨간색으로 표시된 아이콘이

목록 상자(ListBox)입니다.

 

 

그리고 왼쪽 하단에 있는

Caption에서 이름을 

변경하게 되며 해당 유저 폼의

이름이 변경됩니다.

 

그럼 이제 엑셀에 있는

리스트를 옮겨 넣어야겠죠.

 

저의 리스트의 범위는

B5:F27까지 입니다.

 

그리고 리스트 박스를

클릭 후에 왼쪽 하단에서

RowSource의 범위

B5:F27로 적어주면

 

이렇게 정확한 범위를

입력한 것과 다르게 

앞쪽의 날짜만 입력되는 것을

확인할 수 있습니다.

 

그때는 이렇게

ColumnCount를 기본값인

1에서 항목의 수만큼

5로 변경해주면

 

 

이렇게 리스트가 

정상적으로 불러와지는 것을

확인할 수 있습니다.

 

그리고 가운데 정렬방법은

예전에 알려드린 대로 

 

 

왼쪽 하단의 TextAlign

2-fmTextAlignCenter로 

변경해주면 문자들이 모두

가운데 정렬됩니다.

 

또한 항목마다 칸의 크기를

변경해주고 싶다면

 

ColumnWidths

100;50;100;50;100으로 적어

각 항목마다 원하는 크기로

변경할 수 있습니다.

 

 

마지막으로 타이틀을

고정시키기 위해 

ColumnHeadsTrue

변경해주면

 

최종적으로 이러한 형태의

리스트 박스를 만들 수 있습니다.

 

그리고 만약 데이터의 

값이 늘어나거나 줄어들어도

리스트 박스가 반영하기를

원한다면 Offset을

활용하면 됩니다.

 

수식에 이름 관리자를

눌러주시고 새로 만들기를

눌러 주시 후에 반영할 데이터를

지정해주시면 됩니다.

 

=offset(처음 시작 셀, 행 이동,

열이동, 행 개수, 열개수)

로 적어주시면 됩니다.

 

이렇게 만들어진 리스트라는

이름을 처음 리스트 박스에

범위에 입력해주면

데이터의 양이 변하여도 

리스트 박스도 반영하여 

데이터가 변경됩니다.

 

그럼 다음 글에서는 

속성으로 입력하는 방법이

아닌 VBA로 입력하는 방법을

알려드리도록 하겠습니다.

 

여기까지 궁금하신 점은

댓글에 남겨주시고요.

 

공감 구독도 부탁드립니다.

 

Comments