CommandBar|Paramenter|Controls.Add|CommandBars|Reset|
|CommandBarPopUp|Controls|Index|OnAction|
|Val()| ActionControl|Shapes.AddShape|CommandBarButton|
기존의 기본명령줄에 콘트롤을 넣어보자
앞페이지에서 페이지간을 이동하는 콘트롤을 만들어 보았고
이때는 사용자정의 명령줄을 만들고
Dim oBar As CommandBar
Set oBar = CommandBars.Add(Position:=msoBarFloating, temporary:=True)
oBar.Controls.Add...
와 같이 콘트롤을 추가하여 시트상에 뜨게(Floating) 하였었다
이것을 기존의 내장된 명령줄에 넣고 싶다면
Dim oBar As CommandBar
Set oBar=CommandBars(1)
oBar.Controls.Add...
와 같이 해나가면 아래의 그림과 같이 콘트롤이 삽입된다
이번에는 기본메뉴명령줄에 PopUp 타입의 메뉴(콘트롤)을 하나 삽입하고
콘트롤(메뉴)에 또 Button타입의 콘트롤을 추가하여 아래 그림과 같이 해본다
- 시트10장삽입
- CommandBars(1)혹은 CommandBars("Worksheet Menu Bar")에 Controls.Add..
- 삽입된 콘트롤과 활성화시트의 위치를 확인하여
- 콘트롤의 Enabled속성을 설정한다
- 삽입된 콘트롤은 엑셀을 닫으면 사라지는 일회용으로 한다
Put Navigation Control Into CommandBar
CommandBarPopUp타입에 CommandBarButton타입을 넣어보자
CommandBarPopUp타입콘트롤은 스스로 OnAction속성은 없고
다른 CommandBarButton타입콘트롤을 담아 주는 콘트롤 역할을 한다
아래의 그림과 같이 Worksheet Menu Bar명령줄의 각각의 콘트롤사이에
사용자정의 콘트롤을 삽입하고 각각의 콘트롤에 수행할수 있는 명령을
부여해 보자
- 콘트롤의 Index속성으로 명령줄내의 위치찾기
- Controls.Add메소드의 매개변수 Before,After에 따라 위치를 앞뒤로 정한다
- 콘트롤을 여러개 반복추가할때 별도의 프로시져를 만들어 사용하고..
- 콘트롤의 Parameter속성을 적절히 활용하고..
- 문자열정보중에서 앞의 숫자만 뽑아주는 편리한 VAL함수..
Put CommandBarPopUp Type Control