728x90
엑셀 VBA 기본기능 정리 - ActiveX 개체 활용하기
- 개요
- ActiveX 개체 : 버튼, 드롭박스, 라디오버튼, 레이블 등 양식을 만들고 이를 프로시저에서 변수로 불러오거나 이벤트를 정의할 수 있는 개체
- 주의사항
- ActiveX개체와 달리 단순 양식개체는 성능은 비슷할지 모르나 매크로창에서 OLEObject로 불러올 수 없는 결정적인 차이가 있다.
- 개체의 하위종류에 따라(옵션버튼, 체크박스, 텍스트박스 등) 가질 수 있는 속성값이 다르므로 특정 속성값을 검색하는 for문을 만들 경우 종류별로 접근법을 달리해야 한다.
- ActiveX개체가 많을수록 시트를 복사하고 불러오는데 매우 느려진다.
- ActiveX개체를 그룹으로 묶은 경우, 값을 불러오는 경로가 달라지므로 옮길때만 그룹으로 묶고 실 사용전에는 풀어주어야 정상작동한다.
728x90
- 종류
- OptionButton : 라디오 버튼 형태이며, 그룹 당 1개만 선택 가능하다.
- CheckBox : 체크박스 형태이며 그룹과 무관하게, 선택/해제가 가능하다.
- TextBox : 텍스트를 입력하는 칸으로, 특정 셀의 값과 실시간 연결할 수 있다.
- Label : 텍스트를 단순 표시만 가능한 칸으로, 특정 셀과 실시간 연결은 불가능하다.
- 공통 메서드(OLEObjects 개체의 속성)
- Count : 전체 OLEObjects의 개수를 구한다.
- 그 외 : OLEObjects는 추가/삭제 등을 위한 클래스 메서드를 지니나 그 외 실제 조작에서 사용되는 부분은 대부분 속성에 위치해 있다.
- 공통 속성(OLEObjects 개체의 속성)
- 데이터 세팅 관련 : AutoLoad(상시 불러오기 vs 갱신요청시 불러오기), Enabled(수정가능여부)
- 모양 관련 : Border, Interior, Width, Height, Left(좌측 끝 위치). Top(상단 끝 위치), Visible
- 기타 : Name(각 Object의 고유값 이름)
- 종류별 속성(OLEObjects.Object의 속성)
- GroupName : OptionButton / CheckBox에서 확인가능. 각 버튼들이 속하는 그룹을 지정할 수 있다. 특히 OptionButton의 경우, 그룹이 정해지면 그룹 내 단 1개만 활성화가 가능하도록 세팅된다. 그룹명을 기준으로 조회하는 경우가 많으므로 필수적으로 입력해야 함
- Caption : Label / OptionButton / CheckBox에서 확인가능. 버튼이나 라벨에 대한 텍스트를 입력하여 화면에 표기가능하다. 내부 값인 Value와는 별개의 값이다.
- Value : OptionButton / CheckBox에서 확인가능하다. Bool값으로 표현된다.
- Text : TextBox에서 확인가능하다. Label에서는 Caption값이 이를 대신한다.
- LinkedCell : OptionButton / CheckBox / TextBox에서 확인가능하다. 연결된 셀이 있는 경우, 해당 셀의 값을 불러오고 실시간으로 연동한다. 버튼계열은 TRUE/FALSE로 표기되며, 연결된 셀에 다른 값이 있다면 버튼이 불활성화 상태로 화면에 표시된다. 텍스트박스의 경우, 셀의 값을 실시간으로 조회/입력 가능하다.
- 외부 메서드
- 특정 개체의 종류 확인하기
- TypeName(OLEObject.Object) : 결과값은 OptionButton, CheckBox 등 유저에게 제공되는 일반적인 명칭으로 반환된다.
- ActiveSheet.OLEObjects(i).progID : 오브젝트를 눌렀을 때 나오는 =EMBED("■.1.","")의 ■부분에 위치한 값이 반환된다. 가령 OptionButton의 경우엔 "Forms.OptionButton.1"이 반환된다.
- 인덱스로 불러오기 : ActiveSheet.OLEObjects(i)
- 순회 : For Each objX In ActiveSheet.OLEObjects
반응형
'컴퓨터 & 코딩 공부 > 엑셀 & VBA' 카테고리의 다른 글
엑셀 VBA 기본기능 정리 - 아이피 검증 (0) | 2023.11.16 |
---|---|
엑셀 VBA 기본기능 정리 - 파일 조작 (0) | 2023.11.16 |
엑셀 VBA 기본기능 정리 - 특정 값이 배열에 포함되는지 확인하기 (0) | 2023.11.16 |
엑셀 VBA 기본기능 정리 - 중복데이터 처리 (0) | 2023.07.09 |
엑셀 VBA 기본기능 정리 - VBA를 이용한 자동필터, 고급필터 (0) | 2023.07.09 |