Перейти к содержимому

Фото
- - - - -

Visual Basic for Aplication внешний вид приложения


  • Вы не можете создать новую тему
  • Please log in to reply
Пока никто не отвечал в этой теме...

#1 ULiX

ULiX
  • Новобранец
  • 1 сообщений

Отправлено 28 апреля 2006 - 03:04

Задача.
При открытии документа Exel отобразить приветственную страницу с одной лиш кнопкой на запуск проекта. (При запуске проекта Exel вообще становится невидимым и пользователь работает в созданых форрмах).

Реализую задачу (пытаюсь)
Овормляем процедуру при открытии книги:

'----------------------------------------------------
Private Sub Workbook_Open()
Application.Caption = "База работников"
Intro.Activate 'Активация листа представления

With ActiveWindow
.DisplayWorkbookTabs = False 'скрыть ярлыки листов
.DisplayGridlines = False 'Скрыть сетку
.DisplayHorizontalScrollBar = False 'Скрыть горизонтальную прокрутку
.DisplayVerticalScrollBar = False 'Скрыть вертикальную прокрутку
.DisplayHeadings = False 'Скрыть названия строк и столбцов
End With

Application.DisplayFormulaBar = False 'Скрыть панель формул
'Application.DisplayFullScreen = True ' Включить полный экран

'Отключение лишних панелей
'НО ПРИ ПОПЫТКЕ СКРЫТЬ МЕНЮ СЛЕДСТВИЕ - "RunTime Error" :blink:
'Поэтому защищенные панели мы скрывать не пытаемся
For Each bar In Application.CommandBars
If bar.Protection = 0 Then bar.Visible = False
Next

DecMenuBar 'Определение собственного меню и скрытие прежнего

End Sub

'----------------------------------------------------
Public Sub DecMenuBar()

'Application.CommandBars("Worksheet Menu Bar").Protection = msoBarNoProtection
ControlsCount = Application.CommandBars("Worksheet Menu Bar").Controls.Count
For i = 1 To ControlsCount
Application.CommandBars("Worksheet Menu Bar").Controls.Item(i).Visible = True
Next i

'Процесс добавления своих пунктов (пока в ремарке) <_<
'Set myMenuBar = Application.CommandBars.ActiveMenuBar
'Set newMenu = myMenuBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
'newMenu.Caption = "Меню"
'Set ctrl1 = newMenu.CommandBar.Controls _
' .Add(Type:=msoControlButton, ID:=1)
'With ctrl1
' .Caption = "Старт проекта"
' .TooltipText = "Старт проекта"
' .Style = msoButtonCaption
'End With

End Sub
'----------------------------------------------------


Я было подумал, сбросив значение свойства protection в msoBarNoProtection (0) у меня получится скрыть панель, так как это свойство у панелей имеет значение msoBarNoChangeVisible (8), но увы, что я добился - это вывод другого типа ошибки.

Попытки изменить свойства Application.CommandBars.ActiveMenuBar также приводят к ошибкам, так как по сути является указателем на Application.CommandBars(1) что и является меню.

Причем, если закрыть меню через встроеную в Exel настройку панели, то она исчезнет, но при закрытии коструктора панели, меню сного отобразится.

ПОМОГИТЕ HELP!

Как видите, всё чего я смог добиться - это сделать невидимыми все элементы меню, но у меня задача скрыть всю панель!

Ещё бы очень хотелось узнать, как заменить стандартное всплывающее меню при клике правой кнопкой на панеле, чтоб устранить возможность отобразить другие панели. Или как перехватить событие кликанья по панели.
  • 0