1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

출처 : http://support.microsoft.com/kb/830502/ko

 

 
이 문서에서는 Microsoft Excel 2000 이상에서 메뉴 및 메뉴 모음을 사용자 지정하는 방법을 설명합니다. 이 문서에는 Microsoft Excel에서 메뉴 모음, 메뉴, 명령, 하위 메뉴 및 바로 가기 메뉴를 프로그래밍 방식으로 관리하고 사용자 지정하기 위한 단계별 지침과 코드 예제가 포함되어 있습니다.

소개
Microsoft Excel 2000, Microsoft Excel 2002 및 Microsoft Office Excel 2003에서 메뉴 모음...

Microsoft Excel 2000, Microsoft Excel 2002 및 Microsoft Office Excel 2003에서 메뉴 모음 및 메뉴를 사용자 지정하는 것과 관련된 대부분의 일반적인 작업을 수행하려면 사용자 지정 대화 상자를 사용합니다. 고급 작업을 수행하거나 사용자 지정 프로그램의 메뉴 모음 및 메뉴를 조정하려는 경우 Microsoft VBA(Visual Basic for Applications) 코드를 만들 수 있습니다.

사용자 지정 대화 상자를 사용하는 방법에 대한 자세한 내용을 보려면 도움말 메뉴에서 Microsoft Excel 도움말을 누르고 Office 길잡이나 도움말 마법사에서 메뉴 모음 사용자 지정을 입력한 다음 검색을 시작합니다.를 눌러 나타나는 항목을 참조하십시오.

이 문서에서는 메뉴 모음, 메뉴, 메뉴 항목, 하위 메뉴 및 바로 가기 메뉴를 사용자 지정하기 위한 VBA 코드를 작성하는 방법을 배울 수 있습니다.

추가 정보
Microsoft는 모든 보증(상품, 특정 목적에 대한 적합성 및 비침해에 대한 묵시적인 보증을 포함하며 이에 제한되지 않음)을 배제하며 예를...

Microsoft는 모든 보증(상품, 특정 목적에 대한 적합성 및 비침해에 대한 묵시적인 보증을 포함하며 이에 제한되지 않음)을 배제하며 예를 보여주기 위한 목적으로만 이 프로그래밍 예제를 제공합니다. 본 문서의 내용은 프로시저를 작성하고 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다.

이 문서의 예제

이 문서의 예제에서는 Excel 2000, Excel 2002 및 Excel 2003에서 VBA 코드를 사용하여 메뉴를 사용자 지정합니다. 예제 매크로를 사용하려면 다음과 같이 하십시오.
  1. Excel을 시작합니다.
  2. 도구 메뉴에서 매크로를 가리킨 다음 Visual Basic Editor를 누릅니다.
  3. 삽입 메뉴에서 모듈을 누릅니다.
  4. 이 문서의 매크로 예제 중 하나를 입력하거나, 복사하여 붙여넣기 작업으로 매크로 예제를 모듈 시트에 복사합니다.
  5. 실행 메뉴에서 Sub/사용자 정의 폼 실행을 누릅니다.
  6. 매크로 대화 상자가 나타나면 매크로 이름을 누른 다음 실행을 누릅니다.
  7. 명령 모음

    Microsoft Office에서 도구 모음, 메뉴 모음 및 바로 가기 메뉴는 모두 명령 모음이라는 하나의 개체 형식으로, 프로그래밍 방식으로 제어됩니다. 다음 항목은 모두 VBA에서 CommandBar 개체로 표시됩니다.
    • 메뉴 모음, 도구 모음 및 바로 가기 메뉴
    • 메뉴 모음 및 도구 모음의 메뉴
    • 메뉴, 하위 메뉴 및 바로 가기 메뉴의 하위 메뉴
    • 기본 제공 메뉴 모음이나 기본 제공 도구 모음을 수정할 수 있을 뿐 아니라, 사용자 지정 도구 모음, 메뉴 모음 및 바로 가기 메뉴를 만들고 수정하여 사용자 VBA 코드와 함께 제공할 수 있습니다. 프로그램의 기능을 도구 모음의 개별 단추나 메뉴의 명령 이름 그룹으로 제공할 수 있습니다. 도구 모음과 메뉴는 모두 명령 모음이므로 같은 종류의 컨트롤을 사용합니다.

      VBA 및 Microsoft Visual Basic에서 단추 및 메뉴 항목은 CommandBarButton 개체로 표시됩니다. 메뉴 및 하위 메뉴를 표시하는 팝업 컨트롤은 CommandBarPopup 개체로 표시됩니다. 이 문서의 예제에서 "Menu"라는 컨트롤과 "Submenu"라는 컨트롤은 모두 메뉴와 하위 메뉴를 표시하는 팝업 컨트롤입니다. 메뉴와 하위 메뉴는 모두 고유한 컨트롤 집합을 포함하는 고유한 CommandBar 개체입니다.

      Microsoft Excel에서는 메뉴 모음과 도구 모음을 동일한 프로그래밍 가능 개체 형식인 CommandBar 개체라고 합니다. CommandBar 개체의 컨트롤을 사용하여 메뉴, 메뉴 항목, 하위 메뉴 및 바로 가기 메뉴를 나타낼 수 있습니다. Type 인수에서 각 컨트롤과 관련된 상수를 사용하여 메뉴, 하위 메뉴 또는 명령에 사용할 컨트롤의 종류를 지정합니다.

      컨트롤 상수

      다음 목록에서는 Excel 2003에서 특정 메뉴 모음 컨트롤에 사용할 그래픽 컨트롤의 종류를 지정하는 다양한 컨트롤 상수를 보여 줍니다.
      • MsoControlActiveX*
      • MsoControlAutoCompleteCombo***
      • MsoControlButton
      • MsoControlButtonDropdown
      • MsoControlButtonPopup
      • MsoControlComboBox
      • MsoControlCustom
      • MsoControlDropdown
      • MsoControlEdit
      • MsoControlExpandingGrid
      • MsoControlGauge
      • MsoControlGenericDropdown
      • MsoControlGraphicCombo
      • MsoControlGraphicDropdown
      • MsoControlGraphicPopup
      • MsoControlGrid
      • MsoControlLabel
      • MsoControlLabelEx***
      • MsoControlOCXDropDown
      • MsoControlPane **
      • MsoControlPopup
      • MsoControlSpinner***
      • MsoControlSplitButtonMRUPopup
      • MsoControlSplitButtonPopup
      • MsoControlSplitDropdown
      • MsoControlSplitExpandingGrid
      • MsoControlWorkPane**
      • * = Microsoft Excel 2000에서 새로 추가된 컨트롤 상수
        ** = Microsoft Excel 2002에서 새로 추가된 컨트롤 상수
        *** = Microsoft Office Excel 2003에서 새로 추가된 컨트롤 상수

        메뉴 모음

        메뉴 모음은 명령 모음의 한 종류로 메뉴, 메뉴 항목 및 하위 메뉴를 포함하는 개체입니다.

        Excel에서 메뉴 모음 및 메뉴 항목을 관리하는 방법에 대한 자세한 내용을 보려면 다음과 같이 하십시오.
        1. Microsoft Visual Basic Editor를 시작합니다.
        2. 도움말 메뉴에서 Microsoft Visual Basic 도움말을 누릅니다.
        3. Office 길잡이 상자나 도움말 마법사 상자에 메뉴를 입력한 다음 검색을 시작합니다.를 누릅니다.
        4. Excel 2003 및 Excel 2002의 경우 메뉴 모음과 메뉴 항목 추가 및 관리를 누르고, Excel 2000의 경우 메뉴 및 도구 모음 정보를 누릅니다.
        5. 런타임에 메뉴 모음과 해당 메뉴 모음의 컨트롤을 모두 수정할 수 있습니다. 메뉴 모음을 변경하면 메뉴 모음의 모양이나 위치에 영향을 줄 수 있습니다. 컨트롤의 변경 내용은 해당 컨트롤 종류에 따라 달라집니다. 다음 표에서는 일반적인 컨트롤 속성과 컨트롤의 상태, 동작 또는 내용을 변경하기 위한 일반적인 메서드를 보여 줍니다.
          표 축소표 확대
          속성 또는 메서드 용도
          Add CommandBars 개체 컬렉션의 Add 메서드를 사용하고 Menubar 인수에 TRUE 값을 지정하여 메뉴 모음을 추가합니다.
          Enabled Enabled 속성이 TRUE 값으로 설정되어 있으면 Visual Basic 코드를 사용하여 지정된 메뉴 모음을 표시할 수 있습니다. Enabled 속성이 FALSE 값으로 설정되어 있으면 지정된 메뉴 모음을 표시할 수 없습니다. 그러나 메뉴 모음은 사용 가능한 명령 모음 목록에 나타납니다.
          Protection 특정 사용자 작업으로부터 메뉴 모음을 보호할 수 있게 해줍니다.
          Position 프로그램 창을 기준으로 새 메뉴 모음의 위치를 지정합니다. 프로그램 창을 기준으로 한 메뉴 모음의 위치는 MsoBarPosition 상수 속성 중 하나일 수 있습니다. 이러한 상수 속성으로는 msoBarLeft, msoBarTop, msoBarRight, msoBarBottom, msoBarFloating, msoBarPopup(바로 가기 메뉴를 만들 때 사용) 또는 msoBarMenuBar(Apple Macintosh 전용)가 있습니다.
          Visible 컨트롤의 표시/숨김 여부를 지정합니다.

          명령 모음 컨트롤의 ID 반환

          다음 예제 코드에서는 활성 메뉴 모음의 ID를 반환합니다.
          Sub Id_Control ()
          Dim myId as Object
             set myId = CommandBars("Worksheet Menu Bar").Controls("Tools")
             MsgBox myId.Caption & Chr(13) & MyId.Id
          End Sub
          

          활성 메뉴 모음의 이름 확인

          다음 예제 코드에서는 활성 메뉴 모음의 이름을 반환합니다.
          Sub MenuBars_GetName()
             MsgBox CommandBars.ActiveMenuBar.Name
          End Sub
          

          기본 제공 또는 사용자 지정 메뉴 모음의 활성 상태 저장

          OriginalMenuBar 변수를 공용 변수로 선언하여 서브루틴이 Auto_Close 서브루틴 등의 다른 서브루틴에서 이 변수를 사용할 수 있게 만들 수 있습니다. 변수를 이렇게 선언하고 사용하면 사용자의 이전 메뉴 모음이 원래 상태로 다시 설정됩니다. 다음 예제 매크로는 메뉴 모음을 다시 설정합니다.
          Public OriginalMenuBar as Object
          
          Sub MenuBars_Capture()
             Set OriginalMenuBar = CommandBars.ActiveMenuBar
          End Sub

          사용자 지정 명령 모음 만들기

          다음 예제 코드에서는 My Command Bar라는 사용자 지정 명령 모음을 만듭니다.
          Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub
          

          사용자 지정 명령 모음을 만들 때 Temporary:=True 인수를 사용할 수도 있습니다. Temporary:=True 인수를 사용하면 Excel을 종료할 때 명령 모음이 자동으로 다시 설정될 수 있습니다. 다음 코드에서는 Temporary:=True 인수를 사용하여 사용자 지정 명령 모음을 만듭니다.
          Sub MenuBar_Create()
          Application.CommandBars.Add Name:="My command bar", Temporary:=True
          End Sub

          사용자 지정 명령 모음 표시

          다음 예제에서는 사용자 지정 My Custom Bar 메뉴 모음을 만들어 표시한 다음 기본 제공 메뉴 모음을 이 메뉴 모음으로 바꿉니다.
          Sub MenuBar_Show()
          Dim myNewBar As Object
             Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)
             ' You must first enable your custom menu bar before you make it visible.
             ' Enabling a menu bar adds it to the list of available menu bars on
             ' the Customize dialog box.
          ' Setting the menubar property to True replaces the built-in menu bar.
             myNewBar.Enabled = True
             myNewBar.Visible = True
          End Sub
          

          사용자 지정 명령 모음 삭제

          다음 예제 코드에서는 Custom 1이라는 사용자 지정 메뉴 모음을 삭제합니다.
          Sub MenuBar_Delete()
             CommandBars("Custom1").Delete
          End Sub
          

          명령 모음 숨기기

          다음 예제 코드에서는 사용 가능한 메뉴 모음 목록에서 기본 제공 Chart 메뉴 모음을 제거합니다.
          Sub MenuBar_Display()
             CommandBars("Chart").Enabled = False
          End Sub

          명령 모음 표시

          다음 예제 코드에서는 사용 가능한 메뉴 모음 목록에 기본 제공 Chart 메뉴 모음을 추가합니다.
          Sub MenuBar_Display()
             CommandBars("Chart").Enabled = True
          End Sub

          기본 제공 명령 모음 복원

          메뉴 모음을 복원하면 메뉴와 메뉴 항목 모두의 기본 컨트롤이 다시 설정됩니다. 다음 예제 코드에서는 기본 제공 Chart 메뉴 모음을 복원합니다.
          Sub MenuBar_Restore()
             CommandBars("Chart").Reset
          End Sub
          참고 기본 제공 메뉴 모음만 다시 설정할 수 있고 사용자 지정 메뉴 모음은 다시 설정할 수 없습니다.

          메뉴

          메뉴 모음을 복원하면 메뉴와 메뉴 항목 모두의 기본 컨트롤이 다시 설정됩니다. 다음 예제 코드에서는 기본 제공 Chart 메뉴 모음을 복원합니다.
          Sub MenuBar_Restore()
             CommandBars("Chart").Reset
          End Sub
          참고 기본 제공 메뉴 모음만 다시 설정할 수 있고 사용자 지정 메뉴 모음은 다시 설정할 수 없습니다.

          명령 모음에 사용자 지정 메뉴 컨트롤 추가

          다음 예제 코드에서는 프로그래밍 방식으로 추가한 메뉴 이름을 Worksheet 메뉴 모음에 추가합니다. 예를 들어, 이 코드에서는 New Menu라는 메뉴 이름을 Worksheet 메뉴 모음에 추가합니다.

          참고 이 메뉴에 원하는 이름을 지정할 수 있습니다.
          Sub Menu_Create()
          Dim myMnu As Object
             Set myMnu = CommandBars("Worksheet menu bar").Controls. _
                Add(Type:=msoControlPopup, before:=3)
             With myMnu
             ' The "&" denotes a shortcut key assignment (Alt+M in this case).
                .Caption = "New &Menu"
             End With
          End Sub
          

          명령 모음의 메뉴 컨트롤 비활성화

          비활성화된 메뉴 컨트롤은 명령 모음에 희미하게 나타나며 사용할 수 없습니다. 다음 예제에서는 New Menu 메뉴를 비활성화합니다.
          Sub Menu_Disable()
             CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False
          End Sub

          명령 모음의 메뉴 컨트롤 활성화

          다음 예제 코드에서는 "명령 모음의 메뉴 컨트롤 비활성화" 절에서 비활성화한 New Menu 메뉴를 활성화합니다.
          Sub Menu_Disable()
             CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True
          End Sub

          명령 모음의 메뉴 컨트롤 삭제

          다음 예제 코드에서는 "명령 모음에 사용자 지정 메뉴 컨트롤 추가" 절에서 만든 New Menu 메뉴를 Worksheet 메뉴 모음에서 삭제합니다.
          Sub Menu_Delete()
             CommandBars("Worksheet menu bar").Controls("New &Menu").Delete
          End Sub
          

          명령 모음의 메뉴 컨트롤 복원

          다음 예제 코드에서는 기본 제공 Chart 메뉴 모음을 Worksheet 메뉴 모음에 복원합니다.
          Sub Menu_Restore()
          Dim myMnu As Object
             Set myMnu = CommandBars("Chart")
             myMnu.Reset
          End Sub

          명령

          명령을 수정할 수 있는 범위는 컨트롤 종류에 따라 다릅니다. 일반적으로 단추는 활성화하거나 숨길 수만 있습니다. 입력란, 드롭다운 목록 상자 및 콤보 상자의 경우 목록에서 항목을 추가하거나 삭제할 수 있으므로 보다 융통성이 있습니다. 또한 목록에서 선택한 항목의 값을 보고 수행되는 작업을 확인할 수 있습니다. 모든 컨트롤의 동작을 기본 제공 함수나 사용자 지정 함수로 변경할 수 있습니다.

          다음 표에서는 일반적인 컨트롤 속성과 컨트롤의 상태, 동작 또는 내용을 변경하기 위한 메서드를 보여 줍니다.
          표 축소표 확대
          속성 또는 메서드 용도
          Add 명령 모음에 명령을 추가합니다.
          AddItem 드롭다운 목록 상자나 콤보 상자의 드롭다운 목록 부분에 항목을 추가합니다.
          Style 단추 표면에 아이콘을 표시할지 또는 캡션을 표시할지를 지정합니다.
          OnAction 사용자가 컨트롤의 값을 변경할 때 실행할 프로시저를 지정합니다.
          Visible 컨트롤의 표시/숨김 여부를 지정합니다.

          Excel 2003 및 Excel 2002의 메뉴에 대한 자세한 내용을 보려면 다음과 같이 하십시오.
          1. Visual Basic Script Editor를 시작합니다.
          2. 도움말 메뉴에서 Microsoft Visual Basic 도움말을 누릅니다.
          3. 검색 상자에 메뉴를 입력한 다음 Enter 키를 누릅니다.
          4. 메뉴 모음과 메뉴 항목 추가 및 관리를 누릅니다.

          5. 메뉴 컨트롤에 구분줄 추가

            다음 예제 코드에서는 Insert 메뉴의 Worksheet 명령 위에 구분줄을 추가합니다.
            Sub menuItem_AddSeparator()
               CommandBars("Worksheet menu bar").Controls("Insert") _
               .Controls("Worksheet").BeginGroup = True
            End Sub
            참고 구분줄을 제거하려면 BeginGroup 속성을 False로 설정합니다.

            메뉴에 사용자 지정 명령 컨트롤 만들기

            다음 예제 코드에서는 Worksheet 메뉴 모음의 Tools 메뉴에 Custom1이라는 새 명령을 만들고, 사용자가 Custom1을 누르면 Code_Custom1 매크로를 실행합니다.
            Sub menuItem_Create()
               With CommandBars("Worksheet menu bar").Controls("Tools")
                  .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"
                  .Controls("Custom1").OnAction = "Code_Custom1"
               End With
            End Sub

            명령 컨트롤 옆에 확인 표시 추가

            다음 예제 코드에서는 Custom1 명령이 선택되지 않은 경우 해당 명령 옆에 확인 표시를 추가하고 Custom1 명령이 선택된 경우 확인 표시를 제거합니다.
            Sub menuItem_checkMark()
            Dim myPopup as Object
            
               Set myPopup = CommandBars("Worksheet menu bar").Controls("Tools")
               If myPopup.Controls("Custom1").State = msoButtonDown Then
                  ' Remove check mark next to menu item.
                  myPopup.Controls("Custom1").State = msoButtonUp
                  MsgBox "Custom1 is now unchecked"
                  Else
                    ' Add check mark next to menu item.
                     myPopup.Controls("Custom1").State = msoButtonDown
                     MsgBox "Custom1 is now checked"
                End If
            End Sub

            명령 모음의 명령 컨트롤 비활성화

            다음 예제 코드에서는 "메뉴에 사용자 지정 명령 컨트롤 만들기" 절에서 Tools 메뉴에 만든 Custom1 명령을 비활성화합니다.
            Sub MenuItem_Disable()
            Dim myCmd as Object
               Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
               myCmd.Controls("Custom1").Enabled = False
            End Sub

            명령 모음의 명령 컨트롤 활성화

            다음 예제 코드에서는 "명령 모음의 명령 컨트롤 비활성화" 절에서 비활성화한 Custom1 명령을 활성화합니다.
            Sub MenuItem_Enable()
            Dim myCmd as Object
               Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
               myCmd.Controls("Custom1").Enabled = True
            End Sub
            

            메뉴의 명령 컨트롤 삭제

            다음 예제 코드에서는 File 메뉴의 Save 명령을 삭제합니다.
            Sub menuItem_Delete()
            Dim myCmd As Object
               Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
               myCmd.Controls("Save").Delete
            End Sub
            

            메뉴의 기본 제공 명령 컨트롤 복원

            메뉴의 명령 컨트롤을 복원하려면 해당 컨트롤의 ID 번호를 알고 있어야 합니다. ID 번호를 확인하려면 "명령 모음 컨트롤의 ID 반환" 절을 참조하십시오. 다음 예제에서는 "메뉴의 명령 컨트롤 삭제" 절에서 삭제한 Save 명령을 복원합니다.
            Sub menuItem_Restore()
            Dim myCmd As Object
               Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
               ' Id 3 refers to the Save menu item control.
               myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5
            End Sub

            하위 메뉴

            하위 메뉴는 명령을 누를 때 부모 메뉴의 옆에 나타납니다. 하위 메뉴 컨트롤에 해당하는 명령의 명령 이름 오른쪽 끝에는 작은 검은색 화살표가 표시됩니다.

            하위 메뉴 추가

            다음 예제 코드에서는 Worksheet 메뉴 모음의 Tools 메뉴에 NewSub라는 새 하위 메뉴를 추가합니다.
            Sub SubMenu_Create()
            Dim newSub as Object
               Set newSub = CommandBars("Worksheet menu bar").Controls("Tools")
               With newSub
                  .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"
               End With
            End Sub

            하위 메뉴에 명령 추가

            다음 예제 코드에서는 NewSub 하위 메뉴에 SubItem1이라는 새 명령을 추가하고, 사용자가 SubItem1을 누르면 Code_SubItem1 매크로를 실행합니다.
            Sub SubMenu_AddItem()
            Dim newSubItem as Object
               Set newSubItem = CommandBars("Worksheet menu bar") _
               .Controls("Tools").Controls("NewSub")
               With newSubItem
                  .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"
                  .Controls("SubItem1").OnAction = "Code_SubItem1"
               End With
            End Sub
            

            하위 메뉴의 명령 컨트롤 비활성화

            다음 예제 코드에서는 "하위 메뉴에 명령 추가" 절에서 만든 동일한 SubItem 명령을 비활성화합니다.
            Sub SubMenu_DisableItem()
               CommandBars("Worksheet menu bar").Controls("Tools") _
               .Controls("NewSub").Controls("SubItem1").Enabled = False
            End Sub


            다음 예제에서는 동일한 SubItem 명령을 활성화합니다.
            Sub SubMenu_DisableItem()
               CommandBars("Worksheet menu bar").Controls("Tools") _
               .Controls("NewSub").Controls("SubItem1").Enabled = True
            End Sub

            하위 메뉴의 명령 삭제

            다음 예제에서는 "하위 메뉴에 명령 추가" 절에서 NewSub 하위 메뉴에 만든 SubItem1 명령을 삭제합니다.
            Sub SubMenu_DeleteItem()
               CommandBars("Worksheet menu bar").Controls("Tools") _
               .Controls("NewSub").Controls("SubItem1").Delete
            End Sub
            

            하위 메뉴 컨트롤 비활성화

            다음 예제 코드에서는 "하위 메뉴 추가" 절에서 Tools 메뉴에 만든 NewSub 하위 메뉴를 비활성화합니다.
            Sub SubMenu_DisableSub()
               CommandBars("Worksheet menu bar").Controls("Tools") _
               .Controls("NewSub").Enabled = False
            End Sub
            참고 비활성화된 컨트롤을 활성화하려면 Enabled 속성을 True로 설정합니다.

            하위 메뉴 컨트롤 삭제

            다음 코드 예제에서는 "하위 메뉴 추가" 절에서 Tools 메뉴에 만든 NewSub 하위 메뉴를 삭제합니다.
            Sub SubMenu_DeleteSub()
               CommandBars("Worksheet menu bar").Controls("Tools") _
               .Controls("NewSub").Delete
            End Sub

            바로 가기 메뉴 모음

            바로 가기 메뉴는 사용자가 개체를 마우스 오른쪽 단추로 누를 때 나타나는 부동 명령 모음입니다. 바로 가기 메뉴 모음에 포함되는 컨트롤은 명령 모음에 포함되는 컨트롤과 종류 및 동작이 동일합니다. 대부분의 프로그램에서는 프로그램의 인터페이스에서 바로 가기 메뉴를 만들거나 수정할 수 없습니다. 따라서 런타임에 바로 가기 메뉴를 만들고 수정해야 합니다.

            Excel 2002 및 Excel 2003의 바로 가기 메뉴에 대한 자세한 내용을 보려면 다음과 같이 하십시오.
            1. Visual Basic Script Editor를 시작합니다.
            2. 도움말 메뉴에서 Microsoft Visual Basic 도움말을 누릅니다.
            3. 검색 상자에 바로 가기를 입력한 다음 Enter 키를 누릅니다.
            4. 바로 가기 메뉴 추가 및 표시를 누릅니다.
            5. 새 바로 가기 메뉴 모음 만들기

              다음 예제 코드에서는 myShortcutBar라는 새 바로 가기 메뉴 모음을 만듭니다.
              Sub Shortcut_Create()
              Dim myShtCtBar as Object
                 Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _
                 Position:=msoBarPopup)
                 ‘ This displays the shortcut menu bar.
                 ‘ 200, 200 refers to the screen position in pixels as x and y coordinates.
                 myShtCtBar.ShowPopup 200,200
              End Sub
              
              
              참고 이 바로 가기 메뉴 모음은 컨트롤(메뉴 항목 또는 하위 메뉴)이 추가되지 않았으므로 빈 상태로 나타납니다.

              바로 가기 메뉴

              바로 가기 메뉴 모음은 특정 Excel 개체를 마우스 오른쪽 단추로 누를 때 나타납니다. Excel에는 다양한 메뉴를 사용할 수 있는 여러 가지 바로 가기 메뉴 모음이 있습니다. 사용자 지정 바로 가기 메뉴 모음을 만들고 기본 제공 메뉴 모음을 사용자 지정할 수도 있습니다.

              바로 가기 메뉴 모음에 명령 만들기

              다음 예제 코드에서는 myShortcutBar 바로 가기 메뉴 모음에 Item1이라는 새 메뉴 명령을 만들고, 사용자가 Item1을 누르면 Code_Item1 매크로를 실행합니다.
              Sub Shortcut_AddItem()
              Dim myBar as Object
                 Set myBar = CommandBars("myShortcutBar")
                 With myBar
                    .Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1"
                    .Controls("Item1").OnAction = "Code_Item1"
                 End With
                 myBar.ShowPopup 200,200
              End Sub

              바로 가기 메뉴 모음의 명령 컨트롤 비활성화

              다음 예제 코드에서는 "바로 가기 메뉴 모음에 명령 만들기" 절에서 만든 Item1 명령을 비활성화합니다.
              Sub Shortcut_DisableItem()
                 Set myBar = CommandBars("myShortcutBar")
                 myBar.Controls("Item1").Enabled = False
                 myBar.ShowPopup 200,200
              End Sub
              참고 비활성화된 항목을 활성화하려면 Enabled 속성을 True로 설정합니다.

              바로 가기 메뉴 모음의 명령 삭제

              다음 예제 코드에서는 myShortcutBar 바로 가기 메뉴 모음의 Item1이라는 메뉴 명령을 삭제합니다.
              Sub Shortcut_DeleteItem()
                 Set myBar = CommandBars("myShortcutBar")
                 myBar.Controls("Item1").Delete
                 myBar.ShowPopup 200,200
              End Sub

              바로 가기 메뉴 모음 삭제

              바로 가기 메뉴 모음을 삭제하면 해당 항목이 모두 제거됩니다. 삭제된 사용자 지정 메뉴 모음은 복원할 수 없습니다. 삭제된 사용자 지정 메뉴 모음을 복원하려면 해당 메뉴 모음과 메뉴 항목 및 하위 메뉴를 모두 다시 만들어야 합니다.

              다음 예제 코드에서는 "바로 가기 메뉴 모음에 명령 만들기" 절에서 만든 myShortCutBar 바로 가기 메뉴 모음을 삭제합니다.
              Sub Shortcut_DeleteShortCutBar()
                 CommandBars("MyShortCutBar").Delete
              End Sub

              기본 제공 바로 가기 메뉴 모음의 명령 복원

              다음 예제 코드에서는 워크시트 Cell 바로 가기 메뉴 모음의 기본 명령을 복원합니다.
              Sub Shortcut_RestoreItem()
                 CommandBars("Cell").Reset
              End Sub

              바로 가기 메뉴의 하위 메뉴

              바로 가기 메뉴 모음에 하위 메뉴를 만들 수 있습니다. 하위 메뉴는 명령 컨트롤을 누를 때 부모 메뉴의 옆에 나타납니다. 하위 메뉴 컨트롤에 해당하는 명령의 이름 오른쪽에는 작은 검은색 화살표가 표시됩니다.

              바로 가기 메뉴 모음에 새 하위 메뉴 만들기

              다음 예제에서는 워크시트 Cell 바로 가기 메뉴에 NewSub라는 새 하위 메뉴를 추가합니다.
              Sub ShortcutSub_Create()
                 CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _
                 .Caption = "NewSub"
                  ' This displays the shortcut menu bar.
                  ' 200, 200 refers to the screen position in pixels as x and y coordinates.
                 CommandBars("Cell").ShowPopup 200, 200
              End Sub
              참고 이 하위 메뉴는 메뉴 항목이 추가되지 않았으므로 빈 상태로 나타납니다.

              바로 가기 메뉴 모음에 있는 하위 메뉴에 명령 컨트롤 만들기

              다음 매크로는 Cell 바로 가기 메뉴에 만든 NewSub 하위 메뉴에 SubItem1 명령을 추가하고, 사용자가 SubItem1을 누르면 Code_SubItem1 매크로를 실행합니다.
              Sub ShortcutSub_AddItem()
              Dim newSubItem as Object
                 Set newSubItem = CommandBars("Cell").Controls("NewSub”)
                 With newSubItem
                    .Controls.Add(Type:=msoControlButton, before:=1).Caption = "subItem1"
                    ' This will run the subItem1_Code macro when subItem1 is clicked.
                    .Controls("subItem1").OnAction = "Code_subItem1"
                 End With
                 ' This displays the Cell shortcut menu bar.
                 ' 200, 200 refers to the screen position in pixels as x and y coordinates
                 CommandBars("Cell").ShowPopup 200, 200
              End Sub

              바로 가기 메뉴의 하위 메뉴 항목 컨트롤 비활성화

              다음 예제 코드에서는 NewSub 하위 메뉴의 SubItem1 명령을 비활성화합니다.
              Sub ShortcutSub_DisableItem()
                 CommandBars("Cell").Controls("NewSub") _
                 .Controls("subItem1").Enabled = False
                 ' This displays the Cell shortcut menu bar.
                 ' 200, 200 refers to the screen position in pixels as x and y coordinates.
                 CommandBars("Cell").ShowPopup 200, 200
              End Sub
              참고 비활성화된 항목을 활성화하려면 Enabled 속성을 True로 설정합니다.

              바로 가기 메뉴의 하위 메뉴 항목 컨트롤 삭제

              다음 예제에서는 NewSub 하위 메뉴의 SubItem1 명령을 삭제합니다.
              Sub ShortcutSub_DeleteItem()
                 CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete
                 ' This displays the Cell shortcut menu bar.
                 ' 200, 200 refers to the screen position in pixels as x and y coordinates.
                 CommandBars("Cell").ShowPopup 200, 200
              End Sub
              

              바로 가기 메뉴의 하위 메뉴 컨트롤 비활성화

              다음 예제 코드에서는 Cell 바로 가기 메뉴 모음의 NewSub 하위 메뉴를 비활성화합니다.
              Sub ShortcutSub_DisableSub()
                 CommandBars("Cell").Controls("NewSub").Enabled = False
                 ' This displays the Cell shortcut menu bar.
                 ' 200, 200 refers to the screen position in pixels as x and y coordinates.
                 CommandBars("Cell").ShowPopup 200, 200
              End Sub
              참고 비활성화된 항목을 활성화하려면 Enabled 속성을 True로 설정합니다.

              바로 가기 메뉴의 하위 메뉴 컨트롤 삭제

              다음 예제 코드에서는 Cell 바로 가기 메뉴 모음에 만든 NewSub 하위 메뉴를 삭제합니다.
              Sub ShortcutSub_DeleteSub()
                 CommandBars("Cell").Controls("NewSub").Delete
                 ' This displays the Cell shortcut menu bar.
                 ' 200, 200 refers to the screen position in pixels as x and y coordinates.
                 CommandBars("Cell").ShowPopup 200, 200
              End Sub
              

              추가 정보 찾기

              다음 리소스에서는 Excel에서 메뉴 및 메뉴 모음을 사용자 지정하는 방법에 대한 자세한 내용을 제공합니다.

              개체 찾아보기

              개체 찾아보기에는 특정 명령에 대한 모든 속성 및 메서드의 전체 목록이 포함되어 있습니다. 이 정보를 찾아보려면 Alt+F11을 눌러 Visual Basic Editor로 전환하고, 보기 메뉴의 개체 찾아보기(또는 F2 키)를 누르고, 검색 상자에 컨트롤 이름을 입력한 다음 Enter 키를 누르거나 검색을 누릅니다.

              Microsoft 기술 자료

              Microsoft 기술 자료에는 Microsoft 고객기술지원부 지원 담당자를 위한 Microsoft 제품 정보가 포함되어 있습니다. Microsoft 고객도 Microsoft 기술 자료를 사용할 수 있습니다. 이 포괄적인 데이터베이스에는 Microsoft 제품에 대한 기술 정보, 문서화된 수정 프로그램 목록, 설명서 오류, 기술 지원에 대한 질문과 대답 등이 포함된 자세한 문서가 들어 있습니다.

              Microsoft 기술 자료에 연결하려면 다음 Microsoft 웹 사이트를 방문한 다음 페이지에 나타나는 지시를 따르십시오.

               

               

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 25485
64 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 _ 윈도우 도움말 file [레벨:30]아별 2017-04-21 389
63 기타 [VBA] 컴퓨터 이름 알아내기 등 PC 환경 변수 읽오이기.. Environ [레벨:30]아별 2015-04-08 1312
62 기타 [VBA] 엑셀 파일을 PDF로 저장(EXPORT) 시키기 [1] [레벨:30]아별 2015-01-21 3385
61 기타 [펌] 추가 기능 개발시 리본메뉴에 넣을 MSO Image 쉽게 확인하기 imagefile [레벨:30]아별 2015-01-09 851
60 기타 엑셀 2013에서 웹 브라우저 컨트롤(ActiveX, web browser)을 시트에 삽입할 수 없는 문제.. imagefile [레벨:30]아별 2014-01-19 2016
59 기타 [ VBA Tip ] 엑셀 VBA로 사진(JPG)의 EXIF 정보(GPS 포함) 불러 들이기.. imagefile [6] [레벨:30]아별 2012-02-27 4874
58 기타 VBA로 인디언식 이름 만들어주는 사용자 정의 함수 만들기.. imagefile [1] [레벨:30]아별 2012-01-11 3056
57 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 file [2] [레벨:30]아별 2011-10-05 5467
56 기타 [펌] VBA 공부를 시작하시는분들에게 추천하는 강의자료 imagefile [4] [레벨:30]아별 2011-03-21 10915
55 기타 VBA _ 레지스트리 다루기 ( registry control ) imagefile [레벨:30]아별 2011-03-19 4873
54 기타 엑셀에서 소리 내기(재생) _ sound play file [1] [레벨:30]아별 2010-12-13 4561
53 기타 헷갈리기 쉬운 워크시트 함수와 VBA함수 비교표 imagefile [레벨:30]아별 2010-10-05 4336
52 기타 기본 제공 대화 상자 실행하면 초기 값 설정 imagefile [레벨:30]아별 2010-08-25 3745
51 기타 [펌] 엑셀 VBA 총정리 _ Excel 개체 모델 참조 등 image [2] [레벨:30]아별 2010-03-09 10686
50 기타 [링크] VBA로 파일을 다루는 방법에 대한 강좌들을 모아놓은 겁니다. [레벨:30]아별 2010-03-03 7190
49 현재 엑셀 파일의 색상표(Color Chart) 확인용 코드 [레벨:30]아별 2009-12-24 5254
48 [펌] Visual Basic (비쥬얼 베이직) 함수 정리 imagefile [레벨:30]아별 2009-11-27 15266
47 엑셀 사용자 정의 수식(UDF)에 도움말 넣는 방법. [레벨:30]아별 2009-11-11 3944
» Excel에서 메뉴 및 메뉴 모음을 사용자 지정하는 방법 image [레벨:30]아별 2009-11-04 5148
45 기타 엑셀 기본 제공 대화 상자 인수 목록 file [레벨:30]아별 2009-11-04 5815