powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как программно вставить новый пункт меню в Excel?
7 сообщений из 7, страница 1 из 1
Как программно вставить новый пункт меню в Excel?
    #32236107
SashaCrane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Было такое что установил некотрый прибамбас к ворду (ocx кажется) и после его запуска появился новый пункт меню. Как можно с помощью VBA добавить пункт меню в Excel, поставить его на первую позицию и ассоциировать с функцией?
...
Рейтинг: 0 / 0
Как программно вставить новый пункт меню в Excel?
    #32236138
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы хотите пункт меню именно Excel ( Развернуть, свернуть и т.д.) или же менб из семейства CommandBars. Если 2 то так :
Public Sub CreateMenu()
dim YourMenu As CommandBar
Dim tmpCommandBar As CommandBar
const MNUNAME as string="YourMenu"

For Each tmpCommandBar In Application.CommandBars
If tmpCommandBar.Name = MNUNAME Then
CommandBars( MNUNAME).Delete
Exit For
End If
Next


Set YourMenu = CommandBars.Add(Name:= MNUNAME
, Position:=msoBarTop, MenuBar:=False, temporary:=True)




With YourMenu.Controls.Add(msoControlButton)
.Style = msoButtonIconAndCaption
.BeginGroup = True
.Caption = "Ля-ля-ля"
.OnAction = "SomeAction"
.FaceId = 548
End With


YourMenu.Visible = True
End Sub
public sub SomeAction
msgbox "Ля-ля-ля"
end sub
Если надо не панель а замена меню тогда
Set YourMenu = CommandBars.Add(Name:= MNUNAME
, Position:=msoBarTop, MenuBar:=True, temporary:=True)
...
Рейтинг: 0 / 0
Как программно вставить новый пункт меню в Excel?
    #32236151
SashaCrane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да именно об этом меню идет речь (ФАЙЛ, ПРАВКА, ... ОКНА...)
Спасибо.
Я здесь еще один чайниковский вопросец задам:
как из мною написанной функции вернуть ресультать
на делфи это result:=... на C return ...
а на басике как?
...
Рейтинг: 0 / 0
Как программно вставить новый пункт меню в Excel?
    #32236187
Flare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'пример из MSDN:
'MSDN то у тебя есть? Становишься курсором перед словом "Function" и жмешь F1.

Function BinarySearch(. . .) As Boolean
. . .
' Value not found. Return a value of False.
If lower > upper Then
BinarySearch = False
Exit Function
End If
. . .
End Function
...
Рейтинг: 0 / 0
Как программно вставить новый пункт меню в Excel?
    #32236230
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это не имеет отношения к Excel. Юзайте API для работы с меню.
Вот пример из апплемана
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Const MF_STRING = &H0
Private Const SCOFFSET = 2000
Private Sub YourMenu()
Dim H As Long, M As Long, M1 As Long
H = FindWindow("XLMAIN", vbNullString)
M = GetSystemMenu(H, False)
M1 = AppendMenu(M, MF_STRING, SCOFFSET, "Menu")
End Sub
Хотя я бы не стал лазить в системное меню - у сабжа есть свои панели.
...
Рейтинг: 0 / 0
Как программно вставить новый пункт меню в Excel?
    #32236237
SashaCrane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(Напомню, что пишу на VBA в Excel'е)
Метод, который должен возвращать результат у меня оформлен как
sub MyMethod()
End Sub

Значит мне его заменить на
function MyMethod() As String
MyMethod="Hellow"
End

Я првильно понял?
...
Рейтинг: 0 / 0
Как программно вставить новый пункт меню в Excel?
    #32236283
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПРавильно
Public Function YourFunction () as string
YourFunction="Hello"
end function
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как программно вставить новый пункт меню в Excel?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]