Ввод заголовка и “шапки” таблицы

1. Ввести заголовок и шапку таблицы (рис. 8), отображение которых на экране приведено на рис. 13

Ввод заголовка и “шапки” таблицы - student2.ru

Рис. 13. Заголовок и шапка таблицы

2. Щёлкнуть по кнопке Остановить запись (Excel 207 / 2010 /2013) или выполнить команду Сервис ® Макрос ® Остановить запись (Excel 2003).

Теперь можно проверить, что получится при выполнении макроса. Для этого нужно удалить заголовок и шапку с листа Excel и запустить макрос ЗаголовокШапка на выполнение, для чего нужно выполнить команду

для MS Excel 2003 Сервис ® Макрос ® Макросы

для MS Excel 2007 / 2010 /2013 нажать кнопку Макросы на вкладке Разработчик (рис. 14) или на вкладке Вид (рис. 15)

Ввод заголовка и “шапки” таблицы - student2.ru Ввод заголовка и “шапки” таблицы - student2.ru

Рис. 14. Лента MS Excel 2010 с открытой вкладкой Разработчик

Ввод заголовка и “шапки” таблицы - student2.ru Ввод заголовка и “шапки” таблицы - student2.ru

Рис. 15. Лента MS Excel 2010 с открытой вкладкой Вид

В появившемся окне Макрос (рис16) дважды щёлкнуть по имени макроса ЗаголовокШапка в окне Макрос или нажать кнопку Выполнить. На активном листе появится таблица, приведённая на рис. 13.

Переход к просмотру или изменению макроса можно выполнить несколькими способами:

1. В окне Макрос (рис. 16) щёлкнуть по имени макроса (ЗаголовокШапка), а затем щёлкнуть по кнопке Изменить.

Ввод заголовка и “шапки” таблицы - student2.ru

Рис.16. Окно макросов

2. Выполнить команду Сервис ® Макрос ® Редактор Visual Basic и выбрать нужный макрос (Excel 2003) или нажать кнопку Visual Basic, расположенную на вкладке Разработчик слева (Excel 2007 / 2010 / 2013).

3. Щёлкнуть по кнопке Редактор Visual Basic.

Ввод заголовка и “шапки” таблицы - student2.ru

Рис.17 Фрагмент пиктографического меню в Excel2003

В Excel2007 / 2010 / 2013:

Ввод заголовка и “шапки” таблицы - student2.ru Ввод заголовка и “шапки” таблицы - student2.ru

Рис.18 Лента MS Excel2010 с открытой вкладкой Разработчик

Используем первый способ. Ниже приведён текст макроса ЗаголовокШапка, сгенерированный Excel при выполнении действий пользователя по вводу заголовка и шапки таблицы.

Option Explicit

 
  Ввод заголовка и “шапки” таблицы - student2.ru

Sub ЗаголовокШапка()

'

' ЗаголовокШапка Макрос

' Макрос записан 09.10.2015 (Neklyudova)

ActiveCell.FormulaR1C1 = "Поставка товаров"

Range("A2").Select

ActiveCell.FormulaR1C1 = "Код товара"

Range("B2").Select

ActiveCell.FormulaR1C1 = "Наименование товара"

Range("C2").Select

ActiveCell.FormulaR1C1 = "Единица измерения"

Range("D2").Select

ActiveCell.FormulaR1C1 = "Цена"

Range("E2").Select

ActiveCell.FormulaR1C1 = "Количество"

Range("F2").Select

ActiveCell.FormulaR1C1 = "Сумма"

Range("F3").Select

End Sub

При записи макроса VBA кодирует все действия пользователя. Для ввода данных в каждую ячейку текста VBA сгенерировал две инструкции, первая из которых соответствует выделению ячейки – используется свойство ячейки Range и метод Select, а вторая использует свойство FormulaR1C1 ячейки, которое возвращает или устанавливает формулу для объекта, используя нотацию (адресацию) стиля R1C1 на языке макро. Кроме того, редактор VBA вставил инструкцию Option Explicit, которая требует явное объявление переменных.

Для удобства проверки правильности функционирования макросов переименуем листы Excel следующим образом:

Лист1 Ввод заголовка и “шапки” таблицы - student2.ru Шапка

Лист2 Ввод заголовка и “шапки” таблицы - student2.ru Формулы

Лист3 Ввод заголовка и “шапки” таблицы - student2.ru Форматирование

Лист4 Ввод заголовка и “шапки” таблицы - student2.ru ВводДанных

Выполнив макрос ЗаголовокШапка, убедимся, что он работает корректно только тогда, когда активной ячейкой на момент выполнения макроса является ячейка A1. Именно эта ячейка была активной в момент начала записи макроса. Если мы выполним макрос не сделав ячейку A1 активной, то "Поставка товаров" окажется в активной ячейке. Небольшое изменение в коде макроса ЗаголовокШапка позволит начинать выполнение макроса с ячейки A1 вне зависимости от того какая ячейка является активной на момент выполнения макроса. Вставим в начало макроса инструкцию Range("A1").Select, которая сделает ячейку A1 активной.

Sub ЗаголовокШапка()

'

' ЗаголовокШапка Макрос

' Макрос записан 09.10.2015 (Neklyudova)

Range("A1").Select

ActiveCell.FormulaR1C1 = "Поставка товаров"

Range("A2").Select

ActiveCell.FormulaR1C1 = "Код товара"

Range("B2").Select

ActiveCell.FormulaR1C1 = "Наименование товара"

Range("C2").Select

ActiveCell.FormulaR1C1 = "Единица измерения"

Range("D2").Select

ActiveCell.FormulaR1C1 = "Цена"

Range("E2").Select

ActiveCell.FormulaR1C1 = "Количество"

Range("F2").Select

ActiveCell.FormulaR1C1 = "Сумма"

Range("F3").Select

End Sub

 
  Ввод заголовка и “шапки” таблицы - student2.ru

Ввод расчётных формул

Для большей наглядности перед записью макроса Формулы целесообразно выполнить уже созданный макрос ЗаголовокШапка и только тогда выполнить следующие действия:

- начать запись макроса и ввести в диалоговом окне рис. 9 имя макроса Формулы;

- Ввести в ячейку F3 формулу =D3*E3 и протянуть курсор автозаполнения с ячейки F3по ячейку F10.

- Ввести в ячейку E11 текст “Итого:”.

- Ввести в ячейку F11 формулу =СУММ(F3:F10).

Ниже приведён текст макроса Формулы, сгенерированного Excel, осуществляющего расчёты по приведённым выше формулам.

Sub Формулы()

' Формулы Макрос

' Макрос записан 09.10.2015 (Neklyudova)

'

ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"

Range("F3").Select

Selection.AutoFill Destination:=Range("F3:F10"), Type:=xlFillDefault

Range("F3:F10").Select

Range("E11").Select

ActiveCell.FormulaR1C1 = "Итого:"

Range("F11").Select

ActiveCell.FormulaR1C1 = "=SUM(R[-8]C:R[-1]C)"

Range("F12").Select

Range("F12").Select

End Sub

Наши рекомендации