Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по VBA.doc
Скачиваний:
108
Добавлен:
26.08.2019
Размер:
1.04 Mб
Скачать

Vba7. Сортировка чисел в столбце по возрастанию или убыванию с созданием формы и панели инструментов с кнопкой

В предыдущих работах, посвященных созданию формы, запуск программы выполнялся с помощью кнопки размещенной на листе Excel. Целью этой работы является создание панели инструментов с кнопкой для выполнения программы.

1. Создайте панель инструментов и разместите на ней кнопку. Панель инструментов должна появляться при открытии рабочей книги. В окне редактора Visual Basic выберите лист ThisWorkBook и включите в него следующие две процедуры:

1) Процедура создания новой панели инструментов при открытии рабочей книги

Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)

'Создание новой панели инструментов

With Application.CommandBars.Add(Name:="Моя панель инструментов", _

Position:=msoBarTop, MenuBar:=False, Temporary:=True)

.Visible = True

With .Controls

'Создание кнопки с надписью

With .Add(Type:=msoControlButton, Id:=1) 'добавить кнопку на панель инструментов

.Caption = "Сортировка" 'надпись на кнопке

.TooltipText = "Сортировка" 'всплывающая подсказка

.Style = msoButtonCaption

.OnAction = "Sort" 'при нажатии на кнопку выполняется процедура

End With

End With

End With

End Sub

2) Процедура, удаления созданной панели инструментов при закрытии приложения

Private Sub Workbook_WindowDeactivate(ByVal Wn As Excel.Window)

With Application

.CommandBars("Моя панель инструментов").Delete

End With

End Sub

В результате будет создана панель инструментов с кнопкой Сортировка (см. Рис).

2. Добавьте модуль через пункт меню Вставка/Модуль и введите процедуру Sort для отображения формы на экране.

Sub Sort()

UserForm1.Show

End Sub

3. В окне редактора создайте форму, разместите на ней требуемые элементы управления и установите свойства (см. Рис. на следующей стр.).

4. Напишите процедуры, связанные с формой, а также процедуру UserForm_Initialize (задание значений по умолчанию).

Private Sub UserForm_Initialize() ' Процедура инициализации формы

OB1.Value = True

OptionButton1.Value = True

SB1.Min = 1

SB1.Max = 100

TB1.Value = SB1.Value

SB2.Min = 1

SB2.Max = 100

TB2.Value = SB2.Value

E nd Sub

5. Напишите процедуры сортировки. Сортировка выбором заключается в том, что требуется найти элемент массива, имеющий наименьшее значение и переставить его с первым элементом, затем проделать то же самое, начав со второго элемента.

9. Самостоятельные и контрольные задания Задание 1

  1. Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так.

  2. П усть x1=y1=1; xi=0.3xi-1; yi=xi-1+yi-1, i=2,3,… Дано натуральное n. Найти

  3. Даны целые числа а1, а2, а3. Получить целочисленную матрицу [bij] i, j=1,2,3, для которой bij=ai-3aj.

Задание 2

  1. Даны 3 действительных числа a, b, c (a0). Полностью исследовать квадратное уравнение ax2+bx+c=0, т.е. если действительных корней нет, то должно быть выведено сообщение об этом, иначе должны быть найдены и помещены в текстовые поля 2 корня.

  2. Пусть a0=1; ak=kak-1+1/k; k=2,3,… Дано натуральное n. Получить an.

  3. Дана действительная матрица размера m x n. Определить числа b1,b2,…,bm, равные соответственно:

а) суммам элементов строк;

б) произведением элементов строк;

в) наименьшим значениям элементов строк;

г) значениям средних арифметических элементов строк;

д) разностям наибольших и наименьших значений элементов строк.