|
0 / 0 / 0
Регистрация: 23.07.2008
Сообщений: 47
|
|||||||||||
Создание нового меню в меню Файл в Excel23.07.2008, 13:34. Показов 6315. Ответов 5
Метки нет (Все метки)
Небольшое вступление:
я решил сделать надстройку для Excel, при ее установке в меню 'Файл' должен добавиться новый пункт. Здесь все ясно, делаю так:
Кстати из кода следует, что мое меню относится к семейству CommandBars, но среди объектов этого семейства я его не нахожу (также, впрочем, как и 'File'). Помогите советом.
0
|
|||||||||||
| 23.07.2008, 13:34 | |
|
Ответы с готовыми решениями:
5
Создание нового окна, после выбора графы из меню Создание меню (чтобы открывались ссылки на вкладках меню)
|
|
krosh
|
|
| 24.07.2008, 09:40 | |
|
Небольшое вступление:
я решил сделать надстройку для Excel, при ее установке в меню 'Файл' должен добавиться новый пункт. Здесь все ясно, делаю так: Application.CommandBars('File').Controls .Add Type:=msoControlPopup Но затем в это новое меню должны добавляться команды и вот тут-то и проблема - не могу понять как мне в коде указать в какое меню должна добавиться команда. Если сделать это с помощью макрорекордера то получится вот что: Application.CommandBars('Настраиваемое всплывающее меню2').Controls.Add Type:=msoControlButton, ID:=2949 Если использовать этот код то все работает, но не ясно что такое 'Настраиваемое всплывающее меню2'. Это не имя (его для этого объекта задать не удается) и не свойство Caption. Так что же ЭТО и как ЭТО задать. Кстати из кода следует, что мое меню относится к семейству CommandBars, но среди объектов этого семейства я его не нахожу (также, впрочем, как и 'File'). Помогите советом. значит так: 'Настраиваемое всплывающее меню2' - это имя даденое твоему меню макрорекордером, если тебе не нравится это имя - поменяй его ( CommandBars('Настраиваемое всплывающее меню2').name = 'myMenu' ) |
|
|
0 / 0 / 0
Регистрация: 23.07.2008
Сообщений: 47
|
|
| 24.07.2008, 10:50 [ТС] | |
|
Приветствую.
Спасибо за совет. Действительно, оказалось 'Настраиваемое всплывающее меню2' - это имя и предложенным способом его можно изменить. Но тут какая-то путаница: объект CommandBarControl не имеет свойства Name это свойство объекта CommandBab, а ведь изначально я создаю именно Control и задать ему имя не получается. Каким образом Control превращается в Bar? И как програмно можно определить какое имя ему присвоено по умолчанию, чтобы затем его изменить? Или есть другой способ?
0
|
|
|
krosh
|
||||||
| 24.07.2008, 12:00 | ||||||
|
можно попробовать например так:
|
||||||
|
0 / 0 / 0
Регистрация: 28.05.2008
Сообщений: 21
|
|
| 24.07.2008, 12:27 | |
|
Может,что-то поможет:
Public Sub enbled1() 'создает строку по паролю 'Set mybar = CommandBars('VB Custom Bar') Set myBar = CommandBars.Add(Name:='VB Custom Bar', Position:=msoBarTop, Temporary:=True) myBar.Visible = True user = InputBox('Введите пароль') If user = 'SAM' Then myBar.Enabled = True Set myBar1 = myBar.Controls.Add(Type:=msoControlButto n) With myBar1 .Visible = True .OnAction = 'Привет' End With Else CommandBars('Visual Basic').Reset myBar.Enabled = False End If End Sub Public Sub добавление() 'две кнопки Set myBar = CommandBars('VB Custom Bar') With myBar .Controls.Add Type:=msoControlButton, Id:=3 .Controls(1).Enabled = False .Controls.Add Type:=msoControlButton, Id:=3 End With myBar.Visible = True End Sub Public Sub заголовок() 'создает строку меню Custom и кнопку на ней Set myBar = CommandBars.Add(Name:='Custom', Position:=msoBarTop, Temporary:=True) myBar.Visible = True Set mycontrol = myBar.Controls.Add(Type:=msoControlButto n, Id:=3) With mycontrol .DescriptionText = 'Старт Программы поиска опечаток ' .Caption = ' Программа поиска опечаток ' End With End Sub Public Sub сброс() 'убирает строку инструментов 'Custom' For Each bar In CommandBars Debug.Print bar.Name If bar.Name = 'Custom' Then 'If (bar.BuiltIn = False) And (bar.Visible = False) Then bar.Delete Stop End If Next End Sub Public Sub сброс_кнопок() 'на VB Custom Bar For Each bar In CommandBars('VB Custom Bar').Controls 'Debug.Print bar.Name 'If (bar.BuiltIn = False) And (bar.Visible = False) Then bar.Delete Stop Next End Sub Public Sub Смена_фасада() 'смена фасада первой кнопки на VB Custom Bar Set ctrl = CommandBars('VB Custom Bar').Controls(1) With ctrl If .Id < 25 Then .FaceId = 15 .Tag = 'Changed control' End If .Enabled = True End With For Each ctl In CommandBars('VB Custom Bar').Controls ctl.Caption = CStr(ctl.Id) Next ctl End Sub Public Sub ID_кнопки() 'вывод ID кнопок меню For Each bar In CommandBars('VB Custom Bar').Controls 'If bar.Id = 17 Then Debug.Print bar.Caption, bar.Id, bar.FaceId 'End If Next End Sub Public Sub смена_названия() 'замена названия кнопки её номером For Each ctl In CommandBars('VB Custom Bar').Controls ctl.Caption = CStr(ctl.Id) Next ctl End Sub Public Sub добавка() 'добавляет кнопку к VB Custom Bar Set myBar = CommandBars('VB Custom Bar') Set mycontrol = myBar.Controls.Add(Type:=msoControlButto n) With mycontrol .FaceId = 2 .OnAction = 'MySub' End With myBar.Visible = True End Sub Public Sub добавка_к_меню() 'добавляет пункт к активному меню с подсказкой и началом группы Set mymenubar = CommandBars.ActiveMenuBar.Controls.Add(T ype:=msoControlButton) With mymenubar .Visible = True .TooltipText = 'сделал пункт меню' .Style = msoButtonIconAndCaption .BeginGroup = True .FaceId = 6 .Caption = 'наконец-то' .State = msoButtonMixed End With End Sub Public Sub кнопки() 'если есть встроенный фасад на кнопке , то копирует в буфер Set mycontrol = CommandBars('VB Custom Bar').Controls(1) With mycontrol If .BuiltInFace = True Then .CopyFace End If .State = msoButtonDown End With End Sub Public Sub уборка_кнопок() 'уборка пользовательских кнопок For Each ctl In Command
0
|
|
|
0 / 0 / 0
Регистрация: 23.07.2008
Сообщений: 47
|
||||||
| 24.07.2008, 13:06 [ТС] | ||||||
|
Приветствую.
Спасибо всем. Действительно
0
|
||||||
| 24.07.2008, 13:06 | |
|
Помогаю со студенческими работами здесь
6
Создание меню и сохранение в текстовой файл Как убрать строку меню ' Файл Правка Вид ...' в Excel?
Как добавить выплывающее меню к уже готовому горизонтальному меню (не меняя дизайн горизонтального меню)?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|