Создание собственного головного меню

Автор: Пользователь скрыл имя, 28 Ноября 2011 в 20:02, курсовая работа

Описание работы

Система меню Office 97 включает головную строку меню (menu bar), обычно расположенную в верхней части активного окна. Оно постоянно находится на экране. Изменяться это меню может при переходе к другому активному окну или по командам из программ на VBA. Каждая программа головного меню является именем вертикально расположенного меню, выпадающего при выборе этой команды. Команда такого меню может быть именем подменю (при этом она отмечается направленной вправо стрелкой). Подменю появляется на экране слева или справа от родительского меню, когда пользователь выбирает команду с его именем.

Работа содержит 1 файл

Курсовая.doc

— 452.50 Кб (Скачать)

    Добавить  новую команду в меню можно, применив метод Add коллекции CommandBarControls к объекту, представляющему изменяемое меню. Чтобы добавить собственную команду, необходимо вставить ее имя в меню, а затем в качестве значения свойства OnAction задать имя VBА-процедуры, которая должна вызываться при выборе данной команды. В качестве значения аргумента Туре (Тип) метода Add нужно указать msoControiButton, означающее, что вставляемый в меню элемент будет командой. Добавим команду «ввод накладной» в выпадающее меню «Ввод документов» из панели «Головное меню» на пятое место. Выбор этой команды запускает процедуру Inputlnvoice.

Dim NewCmd As CommandBarButton

Set NewCmd = CommandBars ("Головное мена"). Controls ("Ввод документов")

 .Controls. Add (Type:=msoControlButton, Before: =5)

 Kith NewCmd

 .Caption = "ввод накладной" ' имя команды меню         

 .OnAction = "Inputlnvoice" ‘ вызываемая процедура

End With

    Метод Add позволяет вставлять в меню и встроенные команды. Для этого при вызове необходимо задать значение параметра Id, равное числовому идентификатору данной команды в Office 97. Поскольку в Office 97 количество команд доходит до 4000, здесь будет приведено лишь два фрагмента из начала таблицы идентификаторов, включающих, в частности, некоторые популярные команды из меню File и Edit. 
 

2. “&Spelling…” (Орфография)                             

3. “&Save” (Сохранить)

4. “&Print…” (Печать)

10. “&New…” (Создать)

19. “&Copy” (Копировать)

21. “&Cut” (Вырезать)

22. “&Paste” (Вставить)

23. “&Open…” (Открыть) 
 

Вот как  в меню «Проверки» из панели «Головное  меню» можно вставить команду проверки правописания Spelling.

    Set mySpell = CommandBars («Головное меню»). Controls («Проверки») _ Controls. Add (Id: = 2)

    Разделение  групп логический связанных команд меню горизонтальными линиями позволяет  пользователям более эффективно работать с большим меню, содержащим разнотипные команды. Сами разделяющие линии командами не являются. Установить или убрать их можно в диалоговом окне Настройка. Для этого в этом окне необходимо сделать видимым модифицируемое меню. Затем щелкнуть правой кнопкой мыши команду, над которой нужно провести линию. В появившемся меню выбрать команду Начало группы  (Begin Group). Убирается линия аналогично.

    Ту  же задачу разбиения команд на группы можно решить из VBA, присвоив значение True свойству Begin Group (Начало группы) объекта, представляющего команду, которая должна открывать очередную группу. Чтобы убрать разделяющую линию, нужно присвоить этому свойству False. Вот как выделять группу команд меню «Ввод документов», начинающуюся со вставленной команды «ввод накладной»:

    Set InvCommand = CommandBars («Головное меню»). Controls («Ввод документов») _

    . Controls («ввод накладной»)

InvCommand. BeginGroup = True

    Удаление команд меню

    Удаление  команд и целых выпадающих и вспомогательных  меню позволят упростить работу с приложением, приспособить его к нуждам отдельного пользователя. В Office 97 можно удалять встроенные и пользовательские выпадающие меню из панелей меню, дочерние подменю из родительских меню команды из всех видов меню. Единственное, чего сделать нельзя — удалять встроенную панель меню или встроенное всплывающее меню, даже если из них уделены все команды.

    Удаленные из меню встроенные подменю и команды  можно затем восстановить. Собственные  удаленные подменю и команды  придется при необходимости воссоздавать заново.

    Для удаления компонента меню в диалоговом окне Настройка модифицируемое меню сделать видимым, щелкнуть правой кнопкой мыши удаляемый элемент и в появившемся меню выбрать команду Удалить (Delete).

    Чтобы целиком удалить пользовательскую панель меню нужно перейти на вкладку Панели инструментов диалогового окна Настройка и, выбрав в списке Панели инструментов имя удаляемой панели меню, щелкнуть кнопку Удалить.

    Для удаления компонента меню используется метод Delete (Удалить). Этот оператор, например, выпадающее меню Favorites из панели меню Web:

    CommandBars («Web»). Controls («Favorites»). Delete

    Собственную (пользовательскую) панель меню «Головное меню» можно целиком удалить оператором:

    CommandBars («»Головное меню). Delete

Восстановить  можно только встроенный удаленный элемент меню. Как и другие действия над меню, это делается в окне Настройка или из VBA. Если при этом восстановится заголовок выпадающего меню или подменю, вместе с ним вместе с ним восстановится само меню и все его потомки.

   Как всегда в диалоговом окне Настройка нужно сделать модифицируемое меню видимым. Затем, щелкнув правой кнопкой мыши заголовок выпадающего меню или подменю, которое нужно восстановить, в появившемся меню нужно выбрать команду Сброс (Reset).

   Восстановить  встроенный компонент меню программно можно методом Reset. Например, следующий оператор восстанавливает выпадающее меню Favorites из панели меню Web:

   CommandBars («Web»). Controls («Favorites»). Reset

   А вот как восстановить всю панель меню Menu Bar из Word:

   CommandBars («Menu Bar»). Reset 
 
 
 
 
 

 

Условие задачи: 

Рассчитать годовой  удой с одной коровы, если
через полгода будет выбраковано n коровы (отсчет от 1 июня)
по  данной производственной формуле Y=(((A*U)*T)/A)-(((n*U)*k)/n)
A - поголовье скота (55 коров)
T - лактационный период (300 дн.)
U - средний удой молока в день  от одной коровы (15 кг.)
n - выбракованные коровы  
k - кол-во дней, когда выбракованные  коровы давали молоко 

Блок-схема:

 
 
 
 
 
 
 
 
 
 
 
 

 
 

 
 
 

 

 
 
 

 

 
 
 

 

 
 
 

 
 
 
 
 

Текст решения задачи: 
 

Макрос  перехода с титульного листа на линейный процесс: 

Sub Макрос1()

'

' Макрос1 Макрос

' Макрос записан  12.11.2010 (student)

' 

'

    Sheets("Лин_процесс").Select

End Sub 
 

Макрос  кнопки пересчета  решения задачи: 

Sub пересчитать()

'

' пересчитать Макрос

' Макрос записан  12.11.2010 (student)

' 

'

    ActiveCell.FormulaR1C1 = _

        "=(((R[-6]C*R[-4]C)*R[-5]C)/R[-6]C)-(((R[-3]C*R[-4]C)*R[-2]C)/R[-3]C)"

    Range("C18").Select

End Sub 
 

Макрос  выполнения задачи: 

Public Sub Лин_РЛ_2()

Dim Y, A, T, U, n, k

A = Worksheets("Лин_процесс").Range("C3").Value

T = Worksheets("Лин_процесс").Range("C4").Value

T = Worksheets("Лин_процесс").Range("C5").Value

n = Worksheets("Лин_процесс").Range("C6").Value

k = Worksheets("Лин_процесс").Range("C7").Value

Worksheets("Лин_процесс").Range("C8").Value = Y

End Sub 
 
 

Макрос  линейных окон: 
 

Sub Лин_окна_2()

Dim Z As Single

A = InputBox("Введите A", "Ввод данных")

T = InputBox("Введите T", "Ввод данных")

U = InputBox("Введите  U", "Ввод данных")

n = InputBox("Введите  n", "Ввод данных")

k = InputBox("Введите  k", "Ввод данных")

Y = (((A * U) * T) / A) - (((n * U) * k) / n)

MsgBox Y, "Вывод Y"

End Sub 
 

Макрос функции: 
 

Public Function Yfun(A As Single, T As Single, U As Single, n As Single, k As Single) As Single

Yfun = (((A * U) * T) / A) - (((n * U) * k) / n)

End Function 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Алгоритм  решения задачи. 

    1. Вызвать «Microsoft Excel», нажатием «Пуск» → «Все программы» → «Microsoft Office» → «Microsoft Excel». Присвоить новой рабочей книге имя ShEA_23b.exl, где первые три буквы соответствуют инициалам (первые буквы фамилии, имени, отчества), а цифры номеру группы.

  
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    2. Присвоить первому рабочему листу имя «Титул», а второму – «Лин_процесс».

 
 
 
 
 
 

3. На первом листе («Титул») разработать титульный лист заданий по VBA.

 
 
 
 
 
 
 
 
 
 

    4. Создать на листе «Титул» кнопку «Лин_процесс», нажатием «Вид» → «Панель инструментов» → «Формы». На появившейся панели выбрать фигуру «кнопка». 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    5. Написать макрос перехода на другой лист, нажатием кнопки «Лин_процесс». Вызвать «Сервис» → «Макрос» → «Редактор Visual Basic» → «Insert» → «Module». В появившемся окне написать: 

Sub Макрос1()

'

' Макрос1 Макрос

' Макрос записан  12.11.2010 (student)

' 

'

    Sheets("Лин_процесс").Select

End Sub

 

6. На листе «Лин_процесс» разместить условия задачи.

 
 
 
 
 
 
 
 
 
 
 
 
 

    7. Под текстом задачи составить таблицу по условию данной задачи. Ячейка A11Название, ячейка C11Кол-во.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    8. В ячейке С18  записать формулу =(((C12*C14)*C13)/C12)-(((C15*C14)*C16)/C15. 

 
 
 
 

   9. Под составленной таблицей разместить кнопку «Посчитать», прописав ей макрос. Проверить работу кнопки. 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

Sub пересчитать()

'

' пересчитать  Макрос

Информация о работе Создание собственного головного меню