1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

[레벨:30]아별

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")

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. 이거 밥이라도 사셔야하는거 아닙니까!! ㅋㅋ

      농담입니다. ㅎㅎ


문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)