Трюк №4
Балакучість Excel може набриднути — він постійно просить підтвердити, що вам дійсно потрібна та дія, яку ви щойно попросили виконати. Давайте припинимо розмови та закликаємо Excel до справи. Ми говоримо про такі повідомлення, як, наприклад, питання, чи хочете ви включити макроси (коли у вас жодного макросу немає) чи впевнені ви, що хочете видалити лист. Далі розповідається, якраз і назавжди позбутися більшості повідомлень, що часто з'являються.
Включення макросів, коли їх немає
Excel показує чудову пам'ять, коли справа доходить до запам'ятовування факту, що ви записали в книзі макрос. На жаль, він не забуває про це навіть якщо ви вже видалили всі макроси командою Сервіс → Макрос → Макроси (Tools → Macro → Macros) або поєднанням клавіш Alt/Option+F8. Відкрийте робочу книгу заново і знову побачите запрошення включити макроси, навіть якщо їх не залишилося.
Відкрийте VBE командою Сервіс → Макрос → Редактор Visual Basic (Tools → Macro → Visual Basic Editor) або клавішами Alt/Option+Fll і виберіть команду View → Project Explorer. (Ha Macintosh вікно Projects завжди відкрито, тому Project Explorer відкривати не потрібно.).
Знайдіть у Project Explorer свою робочу книгу і клацніть значок плюс (+) ліворуч від неї, щоб розгорнути компоненти книги, зокрема модулі. Клацніть значок плюс ліворуч від папки Modules, щоб переглянути всі існуючі модулі. Правою кнопкою миші по черзі клацайте усі модулі та в контекстному меню вибирайте команду Remove Module. Відмовтеся від експорту модулів. Чи не видаляйте модулі, не подумавши. Перед видаленням по черзі двічі клацніть усі модулі, щоб переконатися, що вони не потрібні. Як зазвичай,Щоб повернутися до Excel, натисніть клавіші Att/Apple+Q.
Запрошення зберегти неіснуючі зміни
Ви могли помітити, що іноді, коли ви просто відкриваєте робочу книгу та переглядаєте її, Excel видає запрошення зберегти зміни у вашій особистій книзі макрокоманд, хоча ви не вносили жодних змін. Знаєте ви це чи ні, у вашій особистій книзі макрокоманд, ймовірно, є функція, що перераховується.
Особиста книга макросів (personal macro workbook) — це прихована робоча книга, створена, коли ви вперше записували макрос, і щоразу відкривається разом з Excel. Перерахована функція (volatile function) (або формула) - це функція, яка автоматично перераховується, коли ви практично нічого не робите в Excel, наприклад, просто відкриваєте або закриваєте робочу книгу або всю програму. Дві найпоширеніші функції, що перераховуються - цеTodayQ іNow().
Так, хоча вручну в робочій книзі ви нічого не змінили, ці перераховані функції, що виконуються у фоновому режимі, могли все ж таки внести якісь зміни. Це вважається допустимим і викликає появу запрошення Excel зберегти подібні невидимі зміни. Якщо ви хочете, щоб Excel припинив вимагати збереження змін, які ви не робили, це можна зробити двома способами. Найочевидніший — не зберігати функції, що перераховуються в особистій книзі макрокоманд і видалити вже записані туди. Або, якщо вони все ж таки потрібні, можна застосувати наступний простий фрагмент коду з лістингу 1.7, щоб обійти перевірку, змусивши Excel думати, що вашу особисту книгу макрокоманд було збережено в момент відкриття.
// Лістинг 1.7 Private Sub workbook_0pen( ) Me.Saved = True End Sub
Звичайно, якщо у вас є змінна функція, якаповинна перераховуватися, і ви хочете зберегти зміни, необхідно сказати про це Excel явно за допомогою коду з лістингу 1.8.
// Лістинг 1.8 Private Sub workbook_0pen( ) Me.Save End Sub
Цей макрос автоматично зберігатиме вашу особисту книгу макрокоманд при кожному її відкритті.
Заборона попереджень та запрошень Excel для записаних макросів
Один з багатьох недоліків записаних макросів полягає в тому, що хоча вони досить добре імітують практично будь-яку команду, вони зазвичай забувають ваші відповіді на запрошення. Видаліть робочий лист і побачите прохання підтвердити команду; запустіть макрос, що робить те саме, і побачите запрошення. Давайте виключимо ці запрошення.
Виберіть Сервіс → Макрос → Макроси (Tools → Macro → Macros) (Alt/Option+F8), щоб вивести список макросів. Переконайтеся, що у списку Знаходиться (Macros In) вибрано пункт Все открытые книги (All Open Workbooks). Виберіть потрібний макрос і натисніть кнопку Змінити (Edit). Помістіть курсор перед першим рядком коду, тобто перед першим рядком, на початку якого не стоїть апостроф, і введіть наступний рядок: