Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)Dim LDim S As ObjectDim FIDim ТекстПроцедурыDim xlmodule As Workbook 'ObjectSet xlmodule = ActiveWorkbook'удаляем все макросы из Лист1 (других макросов сюда не ложить)On Error Resume NextFor L = xlmodule.VBProject.VBComponents(1).CodeModule.CountOfLines To 1 Step -1FI = Left(xlmodule.VBProject.VBComponents(1).CodeModule.Lines(L, 1), 17) Debug.Print xlmodule.VBProject.VBComponents(1).CodeModule.Lines(L, 1)If FI = "Public Sub Налист" Then xlmodule.VBProject.VBComponents(1).CodeModule.DeleteLines L, 3 End IfNext LApplication.CommandBars("Worksheet Menu Bar").Controls("Листы").DeleteSet S = Application.CommandBars("Worksheet Menu Bar")For Each MB In Application.CommandBarsDebug.Print MB.NameNextWith Application.CommandBars("Worksheet Menu Bar")'Создание строки меню Файл With .Controls.Add(Type:=msoControlPopup) .Caption = "&Листы" With .Controls For L = 1 To Sheets.CountТекстПроцедуры = "Public Sub Налист" & L & "()" & vbCrLf & "Sheets(" & """" & Sheets(L).Name & """" & ").Select" & vbCrLf & "End sub" xlmodule.VBProject.VBComponents(1).CodeModule.AddFromString ТекстПроцедуры With .Add(Type:=msoControlButton) .Caption = Sheets(L).Name .OnAction = "ЭтаКнига.Налист" & L End With Next L End With End WithEnd WithEnd Sub