2008.05.07 12:02

엑셀 Addin 작성시 툴바 및 메뉴 생성 / 제거 코드

엑셀에서 Addin을 작성할때, 엑셀의 툴바 및 툴바 버튼, 메뉴를 추가하기 위한 코드
- 모든 작업은 ThisWorkbook 개체에서 작업한다.
- 되도록이면 작업하기 전에 On Error Resume Next 를 걸어줘서 오류를 없애는 편이 나을 것임

- Workbook_AddinInstall 이벤트에 아래와 같은 코드 추가
    ' 툴바에 버튼 올리기
    Application.CommandBars.Add "툴바이름"
    Application.CommandBars("툴바이름").Visible = True
    Set btnCmd = Application.CommandBars("툴바이름").Controls.Add(msoControlButton)
    btnCmd.OnAction = "클릭시 실행할 모듈 상의 함수이름1"
    btnCmd.Caption = "버튼이름1"
    btnCmd.FaceId = 64   ' 버튼 아이콘
    btnCmd.Style = msoButtonIcon  ' 버튼 모양
    Set btnCmd = Nothing
   
    Set btnCmd = Application.CommandBars("툴바이름").Controls.Add(msoControlButton)
    btnCmd.OnAction = "클릭시 실행할 모듈 상의 함수이름2"
    btnCmd.Caption = "버튼이름2"
    btnCmd.FaceId = 104   ' 버튼 아이콘
    btnCmd.Style = msoButtonIcon  ' 버튼 모양
    Set btnCmd = Nothing

    ' 메뉴에 삽입하기
    Set cmdBar = Application.CommandBars("worksheet menu bar")
    With cmdBar.Controls.Add(Type:=msoControlPopup)
        .Caption = "상위메뉴이름"
        With .Controls.Add(Type:=msoControlButton)
            .Caption = "메뉴항목이름1"
            .OnAction = "메뉴항목클릭시 실행할 모듈상의 함수 이름1"
            .BeginGroup = True   ' 새로운 가로선을 넣을지 여부
            .FaceId = 64             ' 메뉴상에 표시할 아이콘 번호
        End With
       
        With .Controls.Add(Type:=msoControlButton)
            .Caption = "메뉴항목이름2"
            .OnAction = "메뉴항목클릭시 실행할 모듈상의 함수 이름2"
            .FaceId = 301
        End With
    End With
    Set cmdBar = Nothing


- 툴바 삭제시 Workbook_AddinUninstall 이벤트에 아래와 같은 코드 추가
    ' 툴바 삭제
    Dim cmdBar As CommandBar
   Application.CommandBars("툴바이름").Visible = False   ' 툴바이름은 위에서 생성한 툴바 이름임
   Application.CommandBars("툴바이름").Delete

   ' 메뉴 삭제
    Set cmdBar = Application.CommandBars("worksheet menu bar")
    cmdBar.Controls("상위메뉴이름").Delete
    Set cmdBar = Nothing

신고
Trackback 0 Comment 0


티스토리 툴바