Хелпикс

Главная

Контакты

Случайная статья





Задание. Разработка процедуры



 

Лабораторная работа № 17.
РАЗРАБОТКА ПРОЦЕДУР НА ЯЗЫКЕ VBA

1. Задание

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

1. Отрицательные значения диапазона умножить на заданное число, положительные оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

2. Положительные значения диапазона разделить на заданное число, отрицательные оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

3. Значения диапазона, большие заданного числа, разделить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

4. Значения диапазона, меньшие заданного числа, умножить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

5. Значения диапазона, попадающие в заданный интервал, заменить нулями. Поместить новый диапазон справа от выделенного диапазона.

6. Значения диапазона, не попадающие в заданный интервал, заменить нулями. Поместить новый диапазон снизу от выделенного диапазона.

7. Значения диапазона, модуль которых больше заданного числа, разделить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

8. Значения диапазона, модуль которых меньше заданного числа, умножить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

9. Отрицательные значения диапазона увеличить на заданное число, положительные оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

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

11. Значения диапазона, большие заданного числа, уменьшить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

12. Значения диапазона, меньшие заданного числа, увеличить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

13. Значения диапазона, попадающие в заданный интервал, возвести в квадрат. Поместить новый диапазон справа от выделенного диапазона.

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

15. Значения диапазона, модуль которых больше заданного числа, уменьшить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

16. Отрицательные значения диапазона умножить на заданное число, положительные оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

17. Положительные значения диапазона разделить на заданное число, отрицательные оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

18. Значения диапазона, большие заданного числа, разделить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

19. Значения диапазона, меньшие заданного числа, умножить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

20. Значения диапазона, попадающие в заданный интервал, заменить нулями. Поместить новый диапазон снизу от выделенного диапазона.

21. Значения диапазона, не попадающие в заданный интервал, заменить нулями. Поместить новый диапазон справа от выделенного диапазона.

22. Значения диапазона, модуль которых больше заданного числа, разделить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

23. Значения диапазона, модуль которых меньше заданного числа, умножить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

24. Отрицательные значения диапазона увеличить на заданное число, положительные оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

25. Положительные значения диапазона уменьшить на заданное число, отрицательные оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

26. Значения диапазона, большие заданного числа, уменьшить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

27. Значения диапазона, меньшие заданного числа, увеличить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон справа от выделенного диапазона.

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

29. Значения диапазона, не попадающие в заданный интервал, возвести в квадрат. Поместить новый диапазон справа от выделенного диапазона.

30. Значения диапазона, модуль которых больше заданного числа, уменьшить на заданное число, остальные значения оставить без изменений. Поместить новый диапазон снизу от выделенного диапазона.

2. Разработка процедуры

1. Запустите приложение Microsoft Excel и сохраните файл Книга1 в своей рабочей папке под именем Процедура.xlsm (не забудьте изменить расширение файла).

2. Для открытия редактора VBE нажмите кнопку Visual Basic, которая находится в группе Код на вкладке Разработчик.

3. Вставьте новый модуль с помощью команды редактора Insert ® Module.

4. В появившемся модуле напишите инструкцию Option Explicit, для того чтобы избежать использования необъявленных переменных.

5. Вставьте в модуль процедуру с помощью команды редактора Insert ® Procedure…. В появившемся диалоговом окне наберите имя новой процедуры. Значение параметра Type должно быть Sub, а значение параметра Scope должно быть Public (эти значения уже установлены по умолчанию).

6. Наберите текст процедуры. Чтобы избежать ошибок, которые могут произойти, если выделен не диапазон ячеек рабочего листа, а другой объект, необходимо проверить тип объекта Selection и обрабатывать его только, если он действительно является диапазоном. Для этого можно использовать инструкцию If TypeName(Selection) <> "Range" Then Exit Sub. Для обработки всех ячеек выделенного диапазона используйте цикл For Each. Для определения ячеек, куда будет записываться результат, используйте свойство Offset. Ячейку, куда будет записываться результат, необходимо сдвинуть относительно исходной ячейки на количество строк выделенного диапазона или количество столбцов выделенного диапазона. Для определения количества строк и столбцов в выделенном диапазоне используйте инструкции Selection.Rows.Count и Selection.Columns.Count. Для того чтобы избежать ошибок, связанных с неверными типами данных, проверьте тип данных ячейки с помощью инструкции VarType(cell.Value) = vbDouble.

7. На рабочем листе наберите исходные данные для проверки разработанной процедуры.

8. Для запуска процедуры используйте комбинацию клавиш. Чтобы назначить вашей процедуре комбинацию клавиш, нажмите кнопкуМакросы, которая находится в группе Код на вкладке Разработчик, в появившемся диалоговом окне выберите вашу процедуру, нажмите кнопку Параметры… и укажите желательную комбинацию клавиш.

9. Проверьте работу процедуры. Попробуйте ввести нечисловые данные.

10. Если процедура работает корректно, покажите результаты работы преподавателю.

11. Закройте приложение Microsoft Excel.

3. Вопросы для контроля

1. Как вставить модуль?

2. Как вставить процедуру в модуль?

3. Для чего используется цикл For Each?

4. Для чего используется свойство Offset?

5. Как проверить тип данных, содержащихся в ячейке?

6. Как назначить комбинацию клавиш для вызова процедуры?



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.