Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с книгами и листами.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
117.25 Кб
Скачать

14.6.2. Свойства CodeName, FullName, Name

14-03-Excel Workbook Name.xlsm - пример к п. 14.6.2.

Эти свойства возвращают различные имена книги. Так, CodeName - это имя, под которым книга видна в окне Project Explorer (обычноЭтаКнига ). FullName - имя файла книги вместе с путем. Name - имя файла книги.

В листинге 14.3. вы можете найти пример вывода различных имен книги.

MsgBox "Кодовое имя текущей книги: " + _

ActiveWorkbook.CodeName + Chr(13) + _

"Имя текущей книги: " + _

ActiveWorkbook.Name + Chr(13) + _

"Полное имя книги: " + _

ActiveWorkbook.FullName

Листинг 14.3. Вывод различных имен книги (htmltxt)

14.7. События объекта Workbook

14-04-Excel Workbook Events.xlsm - пример к п. 14.7.

В VBA-проекте, который прикреплен к книге, есть объект ЭтаКнига. Если сделать по нему двойной щелчок - будет открыто окно редактора кода, в котором, по обычной схеме, можно выбрать объект - в данном случае это Workbook, а также события, для которых автоматически будет создан обработчик.

Книги в Microsoft Excel могут реагировать на множество событий, среди них следующие, которые происходят при таких обстоятельствах:

  • Activate - при активации книги

  • BeforeClose - перед закрытием книги, если книга изменялась и должен появиться запрос на ее сохранение - происходит перед запросом.

  • BeforePrint - перед печатью.

  • BeforeSave - перед сохранением.

  • Deactivate - при деактивации.

  • NewSheet - при добавлении нового листа в книгу.

  • Open - при открытии книги.

  • SheetActivate - при активации любого листа

  • SheetBeforeDoubleClick - после двойного щелчка в книге, до стандартной процедуры обработки.

  • SheetBeforeRightClick - перед щелчком правой кнопки мыши.

  • SheetCalculate - при пересчете листа или изменении данных, которые отображаются на диаграмме.

  • SheetChange - при изменении содержимого ячейки.

  • SheetDeactivate - при деактивации листа.

  • SheetFollowHyperlink - при щелчке по гиперссылке.

  • SheetSelectionChange - при изменении выделения.

Например, листинг 14.4. позволяет вывести в окне сообщения информацию об имени измененной ячейки, имени листа, на котором она расположена, и новом содержимом ячейки.

Private Sub Workbook_SheetChange(ByVal Sh As Object, _

ByVal Target As Range)

MsgBox "Вы отредактировали даные на листе: " & _

Sh.Name & ", в ячейке " & Target.Address & _

". Теперь ячейка содержит следующие данные: " & _

Target.Value

End Sub

Листинг 14.4. Вывод информации об измененной ячейке (htmltxt)

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

14.8. Коллекция Worksheets

Коллекция Worksheets содержит листы открытой книги. Ее свойства и методы служат для работы с ними.

14.9. Методы коллекции Worksheets

14.9.1. Add - добавляем листы в книгу

14-05-Excel Worksheets Add.xlsm - пример к п. 14.9.1.

Позволяет добавить в книгу новый лист. Полный вызов метода выглядит так.

Add(Before, After, Count, Type)

Before (До) и After (После) позволяют задавать позицию листа относительно других листов книги (можно использовать лишь один из них), Count задает количество добавляемых листов, а Type - тип листа. Чаще всего этот метод используют без параметров.

Например, листинг 14.5. добавляет новый лист в книгу, в которой хранится макрос, содержащий этот код:

ThisWorkbook.Worksheets.Add

Листинг 14.5. Добавляем новый лист (htmltxt)

А так можно добавить в книгу столько листов, сколько указал пользователь в ответ на вопрос программы (листинг 14.6.).

ActiveWorkbook.Worksheets.Add _

Count:=Val(InputBox("Введите количество листов"))

Листинг 14.6. Добавляем в книгу указанное количество листов (htmltxt)

Обычно листы в книгах MS Excel имеют осмысленные имена. Однако, как вы могли заметить, метод Add не предусматривает задание имени вставляемому листу, оставляя его в значении по умолчанию. Чтобы переименовать добавленный лист, вам придется пользоваться свойством Name объекта Worksheet.