Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как программно вставить новый пункт меню в Excel? / 7 сообщений из 7, страница 1 из 1
14.08.2003, 09:36
    #32236107
SashaCrane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно вставить новый пункт меню в Excel?
Было такое что установил некотрый прибамбас к ворду (ocx кажется) и после его запуска появился новый пункт меню. Как можно с помощью VBA добавить пункт меню в Excel, поставить его на первую позицию и ассоциировать с функцией?
...
Рейтинг: 0 / 0
14.08.2003, 09:53
    #32236138
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно вставить новый пункт меню в Excel?
Вы хотите пункт меню именно 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
14.08.2003, 10:06
    #32236151
SashaCrane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно вставить новый пункт меню в Excel?
Да именно об этом меню идет речь (ФАЙЛ, ПРАВКА, ... ОКНА...)
Спасибо.
Я здесь еще один чайниковский вопросец задам:
как из мною написанной функции вернуть ресультать
на делфи это result:=... на C return ...
а на басике как?
...
Рейтинг: 0 / 0
14.08.2003, 10:31
    #32236187
Flare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно вставить новый пункт меню в Excel?
'пример из 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
14.08.2003, 10:59
    #32236230
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно вставить новый пункт меню в Excel?
Так это не имеет отношения к 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
14.08.2003, 11:02
    #32236237
SashaCrane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно вставить новый пункт меню в Excel?
(Напомню, что пишу на VBA в Excel'е)
Метод, который должен возвращать результат у меня оформлен как
sub MyMethod()
End Sub

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

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


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