엑셀 리본바의 컨트롤(버튼, 토글버튼 등)의 상태를 관리하는 방법을 설명한다. 즉, 토글버튼이 눌려져 있게 하거나 보이지 않게 한다거나 여러가지 상태를 관리하는 방법이다.
기본적으로 custom IRibbonUI의 작성은 customUI.xml 파일의 작성을 통해 만들 수 있다. 아래 글을 참조해서 엑셀 상단에 나만의 리본바를 추가할 수 있다.
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="XLGanttTab" label="ExcelGantt"
insertBeforeMso="TabHome">
<group id="customGroup1" label="오늘날짜선">
<toggleButton id="Btn1"
label="Show Line"
size="normal"
getPressed="Btn1_onGetPressed"
onAction="showLine"
imageMso="OutlineExpandAll" />
<button id="Btn2"
label="Scroll Today"
size="normal"
getVisible="Btn2_onGetVisible"
onAction="scrollToday"
imageMso="WindowSideBySideSynchronousScrolling"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
위와 같은 리본바를 만들었다고 가정했을 때,
토글버튼의 눌려진 상태 관리
토글버튼의 눌려진 상태 관리를 위해서는 getPressed 이벤트를 사용하여 관리한다. 위 customUI.xml 파일에 getPressed 이벤트와 함수명을 입력하고 아래의 코드와 같이 이벤트를 받는 함수를 만들고 ReturnedValue 에 조건에 따라 원하는 상태값( True, Falue)을 입력하면, 눌려진 상태를 관리할 수 있다.
Sub Btn1_onGetPressed(ByRef control As Office.IRibbonControl,
ByRef ReturnedValue As Variant)
If Sheets("option").Range("B3").value = 1 Then
ReturnedValue = True
Else
ReturnedValue = False
End If
End Sub
IRibbonControl 객체의 Visible 상태 관리
버튼, 토글버튼 등 IRibbonControl 객체의 Visible 상태를 관리하기 위해서는 getVisible 이벤트를 사용하여 관리한다. 위 customUI.xml 파일에 getVisible 이벤트와 함수명을 입력하고 아래의 코드와 같이 이벤트를 받는 함수를 만들고 ReturnedValu 에 조건에 따라 원하는 상태값(True, False)을 입력하면, Visible 상태를 관리할 수 있다.
Sub Btn1_onGetVisible(ByRef control As Office.IRibbonControl,
ByRef ReturnedValue As Variant)
If Sheets("option").Range("B3").value = 1 Then
ReturnedValue = True
Else
ReturnedValue = False
End If
End Sub
'Programming > VBA(Excel)' 카테고리의 다른 글
VBA 엑셀에 공공데이터 휴일정보 읽어오기 (0) | 2024.05.02 |
---|---|
VBA로 엑셀 시트 보호하기(Protect, Unprotect) (0) | 2024.04.18 |
엑셀의 원하는 sheet를 변수에 담기 (0) | 2023.07.12 |
엑셀의 리본바를 마음대로 변경해 보자 (0) | 2023.07.12 |
엑셀의 개발자 도구 사용해보기 (0) | 2023.07.11 |