Виведення робочих книг на друк

Dim ОткрытаяWВ as Workbook

Dim НоваяWВ As Workbook

Посилання на робочі книги

Next WB

Dim WB As Workbook

For Each WB in Workbooks ·

WB.Close SaveChanges:=True

 

Щоб управляти робочою книгою в кодах програми, необхідно мати посилання на цю книгу. Існує декілька способів отримання таких посилань, і залежить від конкретної ситуації.

Перший спосіб полягає в наступному: ви повинні одержати посилання у момент створення або відкриття робочої книги шляхом виклику методів Add і Ореn відповідно:

Set НоваяWВ = Workbooks.Add

Set ОткрытаяWВ = Workbook.Ореn("затраты.хls")

Зверніть увагу, що змінні, яким привласнюються значення посилань на робочі книги, повинні бути оголошені з використанням відповідного типа даних.

Якщо робоча книга вже створена або відкрита (іншими словами, якщо вона вже належить колекції Workbooks), ви можете звертатися до неї безпосередньо через цю колекцію. Наприклад, вираз

Workbooks (Name)

повертає посилання на робочу книгу з назвою Name. Назва повинна бути вказана з урахуванням розширення .xls (наприклад итоги.хls, а не просто підсумки). Якщо робочої книги з такою назвою не існує, виникне помилка выдалнения програми.

Нарешті, в мові VВА передбачено два ключові слова, що використовуються для звернення до робочих книг:

- ActiveWorkbook - для звернення до активної робочої книги;

- ThisWorkbook - для звернення до робочої книги, в якій виконується код програми.

Активною вважається та робоча книга, яка активна на екрані. Як не важко здогадатися, ключове слово ActiveWorkbook може виявитися дуже зручним інструментом.

Необхідність у використанні ключового слова ThisWorkbook не така очевидна. В більшості випадків код, що виконується зараз, розташований в тій же робочій книзі, що і дані, з якими він працює, а тому у використанні слова ThisWorkbook немає необхідності. Але в деяких ситуаціях код, розташований в одній робочій книзі, звертається до даних, що зберігаються в іншій книзі. В цьому випадку, при зверненні до "своєї" робочої книги, необхідно використовувати слово ThisWorkbook. Найчастіше подібна ситуація виникає при створенні надбудов; при цьому використання ключового слова ThisWorkbook гарантує, що посилання указує не на активну робочу книгу, а на ту книгу, в якій збережені коди програми.

Щоб роздрукувати всю робочу книгу або якісь окремі її частини, використовуйте метод PrintOut:

WB.PrintOut(From, То, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

Жоден аргумент даного методу не є обов'язковим.

- From і То - перший і останній листи робочої книги, які необхідно вивести на друк. За умовчанням роздруковуються всі листи.

- Copies -число копій. За умовчанням значення рівне одиниці.

- Preview- якщо цьому аргументу передається значення True, перед висновком на друк відкривається вікно попереднього перегляду. За умовчанням використовується значення False.

- ActivePriпter - назва принтера, на якому выводяtся дані. Якщо ви не вкажете інший принтер, буде використаний принтер, встановлений за умовчанням для операційної системи Windows.

- PriпtToFile - якщо передати цьому аргументу значення True, дані відправляються на друк у файл, а не на принтер. За умовчанням використовується значення False.

- Collate - якщо проводиться друк декількох копій і даному аргументу передається значення True, копії друкуються в підбір. За умовчанням використовується значення False.

- PrToFi1eName - назва файлу, в який буде проведений друк.

Має сенс указувати лише в тому випадку, якщо аргументу PrintToFile передається значення True.

Метод PrintOut доступний також ДЛЯ деяких інших об'єктів ExcelChart, Range, Window і Worksheet.

 

Відправка робочої книги по електронній пошті ***********************

Щоб відправити файл робочої книги по електронній пошті, скористайтеся методом SendМail. Файл відправляється як вкладення з використанням встановленої у вашій системі поштової програми.

WB.SendМail(Recipieпts, Subject, ReturпReceipt)

Далі описані аргументи даного методу:

- Recipieпts - обов'язковий аргумент, що визначає список адрес, по яких проводиться розсилка;

- Subject - тема листа, необов'язковий аргумент. Якщо значення не вказане, то буде використана назва робочої книги, що відправляється;

- ReturпReceipt - якщо цьому аргументу передано значення True, зажадається підтвердження доставки повідомлення. Аргумент не обов'язковий, за умовчанням використовується значення False.

Адреса одержувача може бути вказана явно або за допомогою позначення імені, записаного в адресній книзі. Якщо одержувач один, передайте його ім'я або адресу поштової скриньки відповідному аргументу:

WB.SendМail rесiрiепts:="Дима Вовків"

Щоб відправити листи відразу декільком одержувачам, спочатку необхідно створити масив з|із| їх адресами:

Dim recip As Variant

recip = Аrrау("Діма Вовків", "someone@somewhere.com", "Bill Gates") WВ.SendМail recipients:=recip

*******************************************************************************************************