Запись макроса в MS Excel

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    334,65 Кб
  • Опубликовано:
    2014-03-30
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Запись макроса в MS Excel

Задание 1

С помощью макрорекордера записать макрос в MS Excel. Назначить горячие клавиши для выполнения макроса.

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

Вариант

Задание

1

Макрос, центрирующий содержимое ячейки по вертикали и горизонтали


Выбираем меню Сервис > Макрос > Начать запись.

Выполняем центрирование содержимого активной ячейки (ПКМ > Формат ячеек > вкладка Выравнивание).

Останавливаем запись.

Запускаем редактор VBA (Alt+F11), получаем готовый код.

Макрос1()

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

' Макрос записан 13.05.2011

' Сочетание клавиш: Ctrl+мSelection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = FalseWith

End Sub

Выбираем меню Сервис > Настройка, вкладка Команды, Категория Макросы, команда Настраиваемая кнопка, перетаскивем ее на панель инструментов.

Диалоговое окно Настройка НЕ ЗАКРЫВАЕМ, щелкаем по созданной кнопке ПКЛ (правой клавишей мыши), выбираем из контекстного меню Назначить макрос

Рисунок 1 - Назначение макроса кнопке

Задание 2

Создать функции пользователя. На рабочем листе создать таблицы значений функций. Просчитать 10 значений для каждой функции (интервал и шаг выбрать самостоятельно).

Вариант

Задание


а

б

в

1




Определяем пользовательские функции (пишем их в уже созданном Module1 из Задания 1).

Function y(x As Single) As Single= Cos(3 * Application.Pi * x) + Sin(5 * Application.Pi * x)Functionz(x, y As Single) As Single= ((1 + x ^ 4 + x ^ 2) ^ (1 / 3) + y) / (1 + y)Functiong(x As Single) As Singlex < 1 Then= Abs((x ^ 2 - 5) / x)= x + 10IfFunction

Далее составляем таблицу значений и используем мастер функций.

Рисунок 2

Задание 3

Создать функцию и процедуру с использованием оператора Select Case.

Вычислить сумму премии по итогам работы магазина по следующему правилу:

если продукции продано меньше, чем на C1 руб., то премия составит k1% от стоимости реализованной продукции;

если продукции продано не меньше, чем на C1 руб., но меньше, чем на C2 руб., то премия составит k2%;

если продукции продано не меньше, чем на C2 руб., но меньше, чем на C3 руб., то премия составит k3%.;

если продукции продано не меньше, чем на C3 руб., то премия составит k4%.

Для функции создать на рабочем столе таблицу значений (минимум по одному значению из каждого интервала).

Процедура запрашивает данные с помощью оператора InputBox и выдает результат с помощью оператора MsgBox.

Вариант

Задание


C1

C2

C3

k1

k2

k3

k4

1

10000

20000

40000

1

1,5

3

4,5


Function mycase(x As Long)Case xIs < 10000= x * 0.0110000 To 20000= x * 0.01520000 To 40000= x * 0.03Else= x * 0.045SelectFunctionmycase1()x, p As Double= InputBox("введите сумму")Case xIs < 10000= x * 0.0110000 To 20000= x * 0.01520000 To 40000= x * 0.03Else= x * 0.045Select

Работа процедуры:

Рисунок 3

Задание 4

Создать процедуры с использованием операторов цикла For/Next и Do/Loop.

а) Найти сумму и произведение первых n членов ряда (использовать цикл For/Next).

б) Определить количество членов ряда, необходимых для достижения суммой значения k (использовать цикл Do/Loop).

Результат работы процедуры выдать с помощью оператора MsgBox.


Задание

Вариант

Ряд

n

k

1

2, 4, 6, 8, …

8

110

Ryad()

Dim s, n, i As Bytep As Long= 0= 1= 1i = 2 To 16 Step 2= s + i= p * ii

MsgBox ("Сумма=" & s & Chr(13) & "Произведение=" & p)

End SubMSum()n, s As Byte= 1= 2= s + 2= n + 1While s <= 110

MsgBox ("Сумма = " & s & Chr(13) & "Достигнута на " & n & " члене ряда")Sub

Результаты:

Рисунок 4

оператор массив макрос значение

Задание 5

Создать процедуры с использованием операторов цикла For/Next и For/Each.

а) Значения элементов массива берутся из ячеек рабочего листа (ячейки должны быть предварительно заполнены). Результат вычислений вывести в ячейку рабочего листа. Для вычислений использовать цикл For/Next.

б) Размер массива вводится с помощью оператора InputBox. Массив заполнить случайными числами с помощью функции Rnd. Массив вывести в ячейки рабочего листа. Результат вычислений вывести с помощью оператора MsgBox. Для вычислений использовать цикл For/Each.

Вариант

Задание

1

Найти количество элементов массива размера 3х4, попадающих в отрезок от 1 до 5


Sub MasSum()Mas(3, 4)s, i, j As Byte= 0i = 1 To 3j = 1 To 4(i, j) = Cells(i, j)(Mas(i, j) > 1) And (Mas(i, j) < 5) Then= s + 1 'считаем количествоIfji(4, 4) = sSubMasSum2()Mas(3, 4)i, j, s As Byte, d As Variant

Dim n, m As Byte= InputBox("введите количество строк массива")= InputBox("введите количество столбцов массива")

s = 0i = 1 To nj = 1 To m(i, j) = Int(Rnd * 10)

Cells(i + 5, j) = Mas(i, j) 'вывод массива с 6 строки

If (Mas(i, j) > 1) And (Mas(i, j) < 5) Then= s + 1 'считаем количествоIfji("колво = " & s)

End Sub

Рисунок 5

Задание 6

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

Форма должна содержать текстовые поля, текстовые поля со счетчиками, выпадающие списки,  флажки, переключатели, кнопки.

Размер таблицы базы данных должен быть ограничен. Например, таблица может содержать до 20 записей. Если таблица уже содержит 20 строк, то при попытке добавления новой записи выдавать сообщение о том, что таблица переполнена.

Записать макрос для построения шаблона таблицы на рабочем листе. Шапка таблицы соответствует полям формы. Если на рабочем листе уже существует таблица, то при выполнении макроса она должна быть удалена.

Записать макрос для удаления выделенной строки таблицы и очистки всей таблицы.

На рабочем листе создать кнопки. Выполнение макросов назначить этим кнопкам. Для выбора способа сортировки на рабочем листе создать переключатели для определения критерия и направления сортировки. Также создать аналогичные пункты меню.

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

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

Перед внесением данных в таблицу проверять, все ли поля формы заполнены. Если есть незаполненные поля, выдать сообщение с предупреждением.

База данных может быть дополнена другими возможностями по личному усмотрению.

Задание выполнено на листе «Задание 6». Тексты процедур и функций находятся в модуле Module1 и формы UserForm1 файла КР в1.xls.

Рисунок 6 - Форма

Рисунок 7 - Пункты меню

Основные процедуры и функции Формы:

'проверка все ли поля заполнены

prov() As Boolean

prov = TrueTextBox1 = "" Then prov = FalseTextBox2 = "" Then prov = FalseTextBox3 = "" Then prov = FalseComboBox1 = "" Then prov = FalseComboBox2 = "" Then prov = False

End Function

'Добавить

Sub CommandButton1_Click()iRow As Integer 'последния строкаiStr As String

iRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1

If iRow >= 23 Then("БД переполнена" & Chr(13) & "Выполните очистить БД")

UserForm1.Hideprov = False Then

MsgBox ("Все поля должны быть заполнены")

Else("A" & CStr(iRow + 1)).Select.Value = TextBox1.Text.Offset(0, 1).Value = TextBox2.Text.Offset(0, 2).Value = TextBox3.Text.Offset(0, 3).Value = ComboBox1.Text.Offset(0, 4).Value = ComboBox2.TextOptionButton1.Value = True Then= "Тверсия"IfOptionButton2.Value = True Then= "Аверсия"= "Рверсия"If.Offset(0, 5).Value = iStrCheckBox1.Value = True Then= "Да"= "Нет"If.Offset(0, 6).Value = iStr


'обработка счетчика

Private Sub SpinButton1_SpinDown().Value = SpinButton1.Value

End SubSub SpinButton1_SpinUp().Value = SpinButton1.ValueSub

'в поле ГодИзд ограничим нажатие клавиш только числовой частью клавиатуры

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)(KeyAscii < 48) Or (KeyAscii > 57) Then= 0

End IfSub

'Заполнение выпадающего списка Жанр при инициализации формы

Sub UserForm_Initialize()

OptionButton1.Value = True.Clear.AddItem ("Фантастика").AddItem ("Фэнтези").AddItem ("Юмор").AddItem ("Классика").AddItem ("Ужас").ListIndex = 0.Clear.AddItem ("AVI").AddItem ("MPEG4").AddItem ("DivX").ListIndex = 0Sub

Похожие работы на - Запись макроса в MS Excel

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!