로그인 유지
이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.
2012.02.14 17:54
아.. 이것은.. 꼬꼬질.. +_+;;
꼬리에 꼬리를 무는 질문이군요.. ㅎㅎ
CustomUI까지 구성하시다니.. 꽤 고수급이신듯 싶습니다.
그 정도의 사전 지식이 있다는 가정하에 답변 드리겠습니다.
사용자 추가한 탭을 보이거나 숨기는 것은 getVisible 속성을 사용하시면 됩니다.
아래 링크에 가셔서 샘플 파일을 다운 받으시고.. 다운 받은 압축 파일 중에서 "Hide-Display-Tab.xlsm"파일을 참고해보세요.
http://www.rondebruin.nl/hidevisible.htm
위 파일을 다운 받아 보시면 아시겠지만..
리본메뉴 설정에 익숙하지 않으시면 잘 이해가 안 되실 수 있겠다 싶어서..
제가 설명을 좀 보태보겠습니다. (괜한 짓인가요? ^_^;;)
CustomUI Editor 프로그램에서..
<!-- 아래와 같이 onLoad에 RibbonOnLoad 프로시저를 지정해주시구요.. -->
<customUI onLoad="RibbonOnLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<!-- 사용자가 추가하는 Tab에는 GetVisible 속성을 추가하세요.. 예제에서는 Tag속성을 사용해서 탭을 식별하게 했네요.. -->
<ribbon>
<tabs>
<tab id="MyCustomTab" label="My Tab" insertAfterMso="TabHome" getVisible="GetVisible" tag="MyPersonalTab" >
CustomUI Editor는 이제 닫으시구요..
엑셀창의 VB Editor에서.. 아래와 같은 코드를 작성하시면 됩니다.
Option Explicit
'### 공용 변수를 선언합니다.
Dim Rib As IRibbonUI
Public MyTag As String
'### 이 아이는 XML에서 onLoad 속성에서 정의해준 프로시저죠..
'### 현재 리본 오브젝트를 Rib로 정의합니다.
Sub RibbonOnLoad(ribbon As IRibbonUI)
Set Rib = ribbon
End Sub
'### 탭을 보여주는 프로시저..
Sub DisplayRibbonTab()
Call RefreshRibbon(Tag:="MyPersonalTab")
'### 탭을 숨기는 프로시저
Sub HideEveryTab()
Call RefreshRibbon(Tag:="")
'### Visible에 대한 변수를 바꾸어도 바로 리본에 적용되지는 않습니다.
'### 처음 로드될때의 캐시값을 계속 사용하기 때문이죠.. Invalidate로 캐시값을 전부 무효로 만들어줘야 값을 갱신합니다.
Sub RefreshRibbon(Tag As String)
MyTag = Tag
If Rib Is Nothing Then
MsgBox "Error, Save/Restart your workbook"
Else
Rib.Invalidate
End If
'### 변수에 따른 Visible을 리본에 반영하는 프로시저죠..
'### 바로 위의 RefreshRibbon 프로시저에서 Rib.Invalidate로 캐시값을 갱신해줄때 자동으로 호출이 됩니다.
Sub GetVisible(control As IRibbonControl, ByRef visible)
If MyTag = "show" Then
visible = True
If control.Tag Like MyTag Then
visible = False
도움이 되셨기를.. ^^
ps. 이거 밥이라도 사셔야하는거 아닙니까!! ㅋㅋ
농담입니다. ㅎㅎ
새 창으로
선택한 기호
아.. 이것은.. 꼬꼬질.. +_+;;
꼬리에 꼬리를 무는 질문이군요.. ㅎㅎ
CustomUI까지 구성하시다니.. 꽤 고수급이신듯 싶습니다.
그 정도의 사전 지식이 있다는 가정하에 답변 드리겠습니다.
사용자 추가한 탭을 보이거나 숨기는 것은 getVisible 속성을 사용하시면 됩니다.
아래 링크에 가셔서 샘플 파일을 다운 받으시고.. 다운 받은 압축 파일 중에서 "Hide-Display-Tab.xlsm"파일을 참고해보세요.
http://www.rondebruin.nl/hidevisible.htm
위 파일을 다운 받아 보시면 아시겠지만..
리본메뉴 설정에 익숙하지 않으시면 잘 이해가 안 되실 수 있겠다 싶어서..
제가 설명을 좀 보태보겠습니다. (괜한 짓인가요? ^_^;;)
CustomUI Editor 프로그램에서..
<!-- 아래와 같이 onLoad에 RibbonOnLoad 프로시저를 지정해주시구요.. -->
<customUI onLoad="RibbonOnLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<!-- 사용자가 추가하는 Tab에는 GetVisible 속성을 추가하세요.. 예제에서는 Tag속성을 사용해서 탭을 식별하게 했네요.. -->
<ribbon>
<tabs>
<tab id="MyCustomTab" label="My Tab" insertAfterMso="TabHome" getVisible="GetVisible" tag="MyPersonalTab" >
CustomUI Editor는 이제 닫으시구요..
엑셀창의 VB Editor에서.. 아래와 같은 코드를 작성하시면 됩니다.
Option Explicit
'### 공용 변수를 선언합니다.
Dim Rib As IRibbonUI
Public MyTag As String
'### 이 아이는 XML에서 onLoad 속성에서 정의해준 프로시저죠..
'### 현재 리본 오브젝트를 Rib로 정의합니다.
Sub RibbonOnLoad(ribbon As IRibbonUI)
Set Rib = ribbon
End Sub
'### 탭을 보여주는 프로시저..
Sub DisplayRibbonTab()
Call RefreshRibbon(Tag:="MyPersonalTab")
End Sub
'### 탭을 숨기는 프로시저
Sub HideEveryTab()
Call RefreshRibbon(Tag:="")
End Sub
'### Visible에 대한 변수를 바꾸어도 바로 리본에 적용되지는 않습니다.
'### 처음 로드될때의 캐시값을 계속 사용하기 때문이죠.. Invalidate로 캐시값을 전부 무효로 만들어줘야 값을 갱신합니다.
Sub RefreshRibbon(Tag As String)
MyTag = Tag
If Rib Is Nothing Then
MsgBox "Error, Save/Restart your workbook"
Else
Rib.Invalidate
End If
End Sub
'### 변수에 따른 Visible을 리본에 반영하는 프로시저죠..
'### 바로 위의 RefreshRibbon 프로시저에서 Rib.Invalidate로 캐시값을 갱신해줄때 자동으로 호출이 됩니다.
Sub GetVisible(control As IRibbonControl, ByRef visible)
If MyTag = "show" Then
visible = True
Else
If control.Tag Like MyTag Then
visible = True
Else
visible = False
End If
End If
End Sub
도움이 되셨기를.. ^^
ps. 이거 밥이라도 사셔야하는거 아닙니까!! ㅋㅋ
농담입니다. ㅎㅎ