이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.
글 수 113
사용자지정 메뉴를 사용 합니다
아래와 같이 사용자 지정 메뉴를 만들어 사용하고자 하는데 메뉴가 옆으로만 추가되고(위에그림)
아래로는 추가 되지 않네요(2단,3단 형식)
옆으로 5-10개 이후에는 아래에 추가 되도록 할수는 없나요(아래그림)
코드는
Sub dhMakeMenu()
'메뉴 만들기
Dim c As CommandBar
Dim strCur As String
strCur = "'" & ThisWorkbook.Name & "'!"
dhDeleteMenu
Set c = Application.CommandBars.Add(Name:=cMenu, Position:=msoBarTop, MenuBar:=False, temporary:=True)
dhMakeSubMenu c, msoControlButton, False, strCur & "전체시트삭제11", "SO Sheet 내용 삭제", "SO Sheet 내용 삭제", 270
dhMakeSubMenu c, msoControlButton, False, strCur & "data입력국내1", "첫째Data 입력", "첫째Data 입력", 66
dhMakeSubMenu c, msoControlButton, False, strCur & "data입력해외3", "두번째Data 입력", "두번째Data 입력", 350
dhMakeSubMenu c, msoControlButton, False, strCur & "실행1", "일일BackOrder 확인", "일일BackOrder 확인", 284
dhMakeSubMenu c, msoControlButton, True, strCur & "실행2", "전체Order 확인", "전체Order 확인", 433
dhMakeSubMenu c, msoControlButton, False, strCur & "대영주문", "대영화학 주문추가", "대영화학 주문추가", 83
dhMakeSubMenu c, msoControlButton, False, strCur & "유창주문", "유창 주문추가", "유창 주문추가", 104
dhMakeSubMenu c, msoControlButton, False, strCur & "미래주문", "미래테크윈 주문추가", "미래테크윈 주문추가", 92
dhMakeSubMenu c, msoControlButton, False, strCur & "신규확인", "신규Item 확인", "신규Item 확인", 93
dhMakeSubMenu c, msoControlButton, False, strCur & "신규등록00", "신규ITEM Master 등록", "신규ITEM Master 등록", 136
dhMakeSubMenu c, msoControlButton, False, strCur & "SO_NO중복1", "대치PO 확인(all)", "대치PO 확인(all)", 351
dhMakeSubMenu c, msoControlButton, False, strCur & "필터", "MyData 확인", "MyData 확인", 361
dhMakeSubMenu c, msoControlButton, True, strCur & "JSH필터", "짝지Data 확인(BackOrder)", "짝지Data 확인(BackOrder)", 165
dhMakeSubMenu c, msoControlButton, False, strCur & "SH필터1", "짝지Data 확인(ALL)", "짝지Data 확인(ALL)", 51
dhMakeSubMenu c, msoControlButton, False, strCur & "ETD대상", "ETD대상 보기", "ETD대상 보기", 59
dhMakeSubMenu c, msoControlButton, False, strCur & "모두표시", "전체PO보기", "전체PO보기", 247
'dhMakeSubMenu c, msoControlButton, False, strCur & "esGoHome", "엑사모 방문", "엑사모 방문", 1016
'dhMakeSubMenu c, msoControlButton, False, strCur & "esHelp", "도움말", "도움말", 984
'dhMakeSubMenu c, msoControlButton, False, strCur & "esQuit", "프로그램 종료", "종료", 1019
'With c.Controls
' .Add ID:=369 '서식 붙여넣기
' .Item(.Count).BeginGroup = True
' .Add ID:=370 '값붙여넣기
'.Add ID:=441 '화면에 보이는셀
'.Add ID:=442 '현재 영역 선택
'2004.11.12 버그 수정
' If Val(Application.Version) > 9 Then
' .Add ID:=5837 '테두리없음
' dhAddFaceID .Item(.Count), 20
' .Add ID:=5836 '수식
' dhAddFaceID .Item(.Count), 387
' .Add ID:=1956 '연결하여 붙여넣기
' dhAddFaceID .Item(.Count), 226
'Else
'End If
' .Add ID:=5837 '테두리없음
' dhAddFaceID .Item(.Count), 20
' .Add ID:=5836 '수식
' dhAddFaceID .Item(.Count), 387
' .Add ID:=1956 '연결하여 붙여넣기
'dhAddFaceID .Item(.Count), 226
'Add ID:=755 '선택하여붙여넣기
'dhAddFaceID .Item(.Count), 45
'End With
c.Visible = True
Set c = Nothing
'선택하여 붙여넣기 단축 메뉴
'ctrl + shift + v
Application.OnKey "^+v", "dhRunPasteSpecial"
End Sub
아래로는 추가 되지 않네요(2단,3단 형식)
옆으로 5-10개 이후에는 아래에 추가 되도록 할수는 없나요(아래그림)
코드는
Sub dhMakeMenu()
'메뉴 만들기
Dim c As CommandBar
Dim strCur As String
strCur = "'" & ThisWorkbook.Name & "'!"
dhDeleteMenu
Set c = Application.CommandBars.Add(Name:=cMenu, Position:=msoBarTop, MenuBar:=False, temporary:=True)
dhMakeSubMenu c, msoControlButton, False, strCur & "전체시트삭제11", "SO Sheet 내용 삭제", "SO Sheet 내용 삭제", 270
dhMakeSubMenu c, msoControlButton, False, strCur & "data입력국내1", "첫째Data 입력", "첫째Data 입력", 66
dhMakeSubMenu c, msoControlButton, False, strCur & "data입력해외3", "두번째Data 입력", "두번째Data 입력", 350
dhMakeSubMenu c, msoControlButton, False, strCur & "실행1", "일일BackOrder 확인", "일일BackOrder 확인", 284
dhMakeSubMenu c, msoControlButton, True, strCur & "실행2", "전체Order 확인", "전체Order 확인", 433
dhMakeSubMenu c, msoControlButton, False, strCur & "대영주문", "대영화학 주문추가", "대영화학 주문추가", 83
dhMakeSubMenu c, msoControlButton, False, strCur & "유창주문", "유창 주문추가", "유창 주문추가", 104
dhMakeSubMenu c, msoControlButton, False, strCur & "미래주문", "미래테크윈 주문추가", "미래테크윈 주문추가", 92
dhMakeSubMenu c, msoControlButton, False, strCur & "신규확인", "신규Item 확인", "신규Item 확인", 93
dhMakeSubMenu c, msoControlButton, False, strCur & "신규등록00", "신규ITEM Master 등록", "신규ITEM Master 등록", 136
dhMakeSubMenu c, msoControlButton, False, strCur & "SO_NO중복1", "대치PO 확인(all)", "대치PO 확인(all)", 351
dhMakeSubMenu c, msoControlButton, False, strCur & "필터", "MyData 확인", "MyData 확인", 361
dhMakeSubMenu c, msoControlButton, True, strCur & "JSH필터", "짝지Data 확인(BackOrder)", "짝지Data 확인(BackOrder)", 165
dhMakeSubMenu c, msoControlButton, False, strCur & "SH필터1", "짝지Data 확인(ALL)", "짝지Data 확인(ALL)", 51
dhMakeSubMenu c, msoControlButton, False, strCur & "ETD대상", "ETD대상 보기", "ETD대상 보기", 59
dhMakeSubMenu c, msoControlButton, False, strCur & "모두표시", "전체PO보기", "전체PO보기", 247
'dhMakeSubMenu c, msoControlButton, False, strCur & "esGoHome", "엑사모 방문", "엑사모 방문", 1016
'dhMakeSubMenu c, msoControlButton, False, strCur & "esHelp", "도움말", "도움말", 984
'dhMakeSubMenu c, msoControlButton, False, strCur & "esQuit", "프로그램 종료", "종료", 1019
'With c.Controls
' .Add ID:=369 '서식 붙여넣기
' .Item(.Count).BeginGroup = True
' .Add ID:=370 '값붙여넣기
'.Add ID:=441 '화면에 보이는셀
'.Add ID:=442 '현재 영역 선택
'2004.11.12 버그 수정
' If Val(Application.Version) > 9 Then
' .Add ID:=5837 '테두리없음
' dhAddFaceID .Item(.Count), 20
' .Add ID:=5836 '수식
' dhAddFaceID .Item(.Count), 387
' .Add ID:=1956 '연결하여 붙여넣기
' dhAddFaceID .Item(.Count), 226
'Else
'End If
' .Add ID:=5837 '테두리없음
' dhAddFaceID .Item(.Count), 20
' .Add ID:=5836 '수식
' dhAddFaceID .Item(.Count), 387
' .Add ID:=1956 '연결하여 붙여넣기
'dhAddFaceID .Item(.Count), 226
'Add ID:=755 '선택하여붙여넣기
'dhAddFaceID .Item(.Count), 45
'End With
c.Visible = True
Set c = Nothing
'선택하여 붙여넣기 단축 메뉴
'ctrl + shift + v
Application.OnKey "^+v", "dhRunPasteSpecial"
End Sub
안녕하세요? 맑은이슬님..
도구모음을 만들어서 사용했던게 오만년 전이라 잠시 생소했습니다. ^_^;;
요즘은 전부 리본메뉴로 만들어서 사용해서 도구 모음 만들었던게 기억이 가물가물했습니다. 하하..
도구모음을 2개 만들어서 아이템을 나눠 넣으면 해결 될 것 같습니다.
VBA를 좀 더 공부해보고 싶으시면 리본메뉴를 만드는 것을 한번 공부해보시는 것도 재미있을 것 같네요..
참조 게시물 : http://www.abyul.com/zbxe/83200
첨부파일을 참고하세요..
다운받기 : abui.com_splitCommandBars_20130129.xls
'===============================================================================
1. eMenu2를 하나 더 만드시구요..
2. Commandbar를 하나 더 만드셔서 아이템을 나눠 넣습니다.
3. Sub dhDeleteMenu() 프로시저에 새로 만든 도구모음을 삭제하는 코드를 추가해줍니다.
'===============================================================================
Option Explicit
Const cMenu As String = "JaeHyeon Kim" '도구 모음의 이름
Const cMenu2 As String = "JaeHyeon Kim2" '도구 모음의 이름
Sub dhMakeMenu()
'메뉴 만들기
Dim c As CommandBar
Dim strCur As String
strCur = "'" & ThisWorkbook.Name & "'!"
dhDeleteMenu
Set c = Application.CommandBars.Add(Name:=cMenu, Position:=msoBarTop, MenuBar:=False, temporary:=False)
dhMakeSubMenu c, msoControlButton, False, strCur & "전체시트삭제11", "SO Sheet 내용 삭제", "SO Sheet 내용 삭제", 270
dhMakeSubMenu c, msoControlButton, False, strCur & "data입력국내1", "첫째Data 입력", "첫째Data 입력", 66
dhMakeSubMenu c, msoControlButton, False, strCur & "data입력해외3", "두번째Data 입력", "두번째Data 입력", 350
dhMakeSubMenu c, msoControlButton, False, strCur & "실행1", "일일BackOrder 확인", "일일BackOrder 확인", 284
dhMakeSubMenu c, msoControlButton, True, strCur & "실행2", "전체Order 확인", "전체Order 확인", 433
dhMakeSubMenu c, msoControlButton, False, strCur & "대영주문", "대영화학 주문추가", "대영화학 주문추가", 83
dhMakeSubMenu c, msoControlButton, False, strCur & "유창주문", "유창 주문추가", "유창 주문추가", 104
dhMakeSubMenu c, msoControlButton, False, strCur & "미래주문", "미래테크윈 주문추가", "미래테크윈 주문추가", 92
c.Visible = True
Set c = Nothing
Set c = Application.CommandBars.Add(Name:=cMenu2, Position:=msoBarTop, MenuBar:=False, temporary:=False)
dhMakeSubMenu c, msoControlButton, False, strCur & "신규확인", "신규Item 확인", "신규Item 확인", 93
dhMakeSubMenu c, msoControlButton, False, strCur & "신규등록00", "신규ITEM Master 등록", "신규ITEM Master 등록", 136
dhMakeSubMenu c, msoControlButton, False, strCur & "SO_NO중복1", "대치PO 확인(all)", "대치PO 확인(all)", 351
dhMakeSubMenu c, msoControlButton, False, strCur & "필터", "MyData 확인", "MyData 확인", 361
dhMakeSubMenu c, msoControlButton, True, strCur & "JSH필터", "짝지Data 확인(BackOrder)", "짝지Data 확인(BackOrder)", 165
dhMakeSubMenu c, msoControlButton, False, strCur & "JSH필터1", "짝지Data 확인(ALL)", "짝지Data 확인(ALL)", 51
dhMakeSubMenu c, msoControlButton, False, strCur & "ETD대상", "ETD대상 보기", "ETD대상 보기", 59
dhMakeSubMenu c, msoControlButton, False, strCur & "모두표시", "전체PO보기", "전체PO보기", 247
c.Visible = True
Set c = Nothing
'선택하여 붙여넣기 단축 메뉴
'ctrl + shift + v
Application.OnKey "^+v", "dhRunPasteSpecial"
End Sub
'===============================================================================
Sub dhDeleteMenu()
On Error Resume Next
Application.CommandBars(cMenu).Delete '메뉴 삭제하기
Application.CommandBars(cMenu2).Delete '메뉴 삭제하기
Application.OnKey "^+v", "" '바로가기 메뉴 취소
On Error GoTo 0
End Sub
'===============================================================================