Теми статей
Обрати теми

Календар, що завжди під рукою

Редакція БК
Відповідь на запитання

Календар, що завжди під рукою

 

Шановна редакціє! У програмі «1С:Бухгалтерія» можна вводити дати безпосередньо з календаря. Це дуже зручно, особливо коли працюєш на ноутбуку, де немає цифрової клавіатури. Хотілося б отримати таку ж можливість і в Excel. Підкажіть, як це зробити? Може, є якась функція? Дякую.

А. Солод, м. Харків

Відповідає

Микола КАРПЕНКО, канд. техн. наук, доцент кафедри прикладної математики та інформаційних технологій Харківської національної академії міського господарства

 

В Excel є будь-яка функція, що називається VBA (Visual Basic for Application). Visual Basic — це повноцінна, потужна мова програмування. Вона дозволяє реалізувати ті завдання, яких немає в «стандартному» наборі засобів пакета Excel. Зокрема, за допомогою VBA можна вирішити й вашу проблему. На жаль (або на щастя), іншого способу не існує. Принаймні мені він невідомий. Зауважу, що нічого страшного в цьому немає. Глибоке знання VBA нам не знадобиться. Достатньо зробити так, як це описано у статті, і все має вийти.

Отже, ми хочемо, щоб за певною командою чи комбінацією гарячих клавіш на робочому листі з’являвся календар. У ньому ми вказуємо дату, після чого ця дата потрапляє до поточної комірки. Перевага такої функції в тому, що дату вводити не потрібно, та й календар завжди під рукою. Що для бухгалтера, до речі, важливо! Приступимо:

1) відкриваємо файл або створюємо нову робочу книгу («

Ctrl+N»);

2) входимо до меню «

Сервис → Макрос → Безопасность…». У вікні, що з’явилося, вибираємо варіант «Низкая». Без такої настройки макроси не працюватимуть;

3) через меню «

Сервис → Макрос → Редактор Visual Basic…» відкриваємо редактор Visual Basic. Замість меню можна скористатися комбінацією «Alt+F11». На жаль, але тут доведеться перейти на англійську мову — меню редактора VBA не русифіковано;

4) викликаємо меню «

Insert → UserForm». У робочій області Visual Basic з’явиться вікно форми з ім’ям «UserForm1» (рис. 1). Спочатку ця форма порожня. Разом з формою автоматично активується панель інструментів «ToolBox», зображена на рис. 1. Якщо вікно «ToolBox» не з’явилося, включіть його через меню «View → ToolBox»;

img 1

У вікні «

ToolBox» є шістнадцять управляючих елементів: кнопки, списки, лічильники тощо. Нам потрібен елемент «Календарь», якого на панелі «ToolBox» поки що немає. Потрібно його додати;

5) клацаємо правою кнопкою миші по вільній області на панелі «

ToolBox». З контекстного меню вибираємо «Additional Controls». З’явиться вікно, як показано на рис. 2;

img 2

6) у ньому знаходимо елемент «

Календарь 12.0» (у деяких версія Excel він називається «Элемент управления Календарь»). Клацанням кнопки миші включаємо його (ставимо хрестик);

7) у вікні «Additional Controls» натискуємо на «ОК». На панелі «ToolBox» з’явиться нова кнопка «Calendar» (рис. 1);

8) клацаємо по цій кнопці. Утримуючи натисненою ліву кнопку миші, малюємо календар на полі форми;

9) викликаємо меню «View → Code» (або натискуємо на «F7»), щоб перейти до створення тіла макроса;

10) з’явиться вікно для введення програми, до якого вводимо такий текст:

Private Sub Calendar1_Click()

ActiveCell = Calendar1.Value

ActiveCell.NumberFormat = "dd/mm/yy"

UserForm1.Hide

End Sub

Private Sub UserForm_Activate()

Me.Calendar1.Value = Date

End Sub

Важливо!

Перший та останній рядки цього тексту можна не вводити. Visual Basic запровадить їх у вікно з кодом програми автоматично. Вам залишається надрукувати буквально шість рядків.

11) викликаємо меню «Insert → Module». З’явиться вікно для введення тексту програми;

12) до нього вводимо три рядки:

Sub ПоказКалендарь()

UserForm1.Show

End Sub

;

13) закриваємо вікно редактора Visual Basic;

14) у вікні Excel викликаємо меню «Сервис → Макрос → Макросы» (або натискуємо на «Alt+F8»). З’явиться вікно, як показано на рис. 3;

img 3

15) у ньому вибираємо рядок з ім’ям «

ПоказКалендарь» та натискуємо на кнопку «Параметры»;

16) у вікні «

Параметры макроса» вказуємо комбінацію клавіш для виклику нашої програми. У прикладі на рис. 3 це комбінація «Ctrl+К». Усе готово.

Важливо!

При виборі поєднання гарячих клавіш стежте за мовою набору. У вікні на рис. 3 у комбінації «Ctrl+К» я ввів літеру «К» на російському регістрі. Тому для виклику календаря клавіатуру теж потрібно буде перемкнути на російську мову.

Тепер можна побачити результат наших зусиль:

1) натискуємо на комбінацію «

Ctrl+К». На робочому листі з’явиться календар (рис. 4);

img 4

2) клацанням миші вибираємо дату. Вона з’явиться в поточній комірці, а календар автоматично закриється.

Для тих, хто бажає додатково поекспериментувати з VBA, можу запропонувати поліпшений варіант макроса. Ось програма для форми:

Private Sub UserForm_Activate()

If Not IsEmpty(ActiveCell.Value) And IsDate(ActiveCell.Value) Then

Me.Calendar1.Value = ActiveCell.Value

Else

Me.Calendar1.Value = Date

End If

Me.Caption = "Сегодня — " & Date

End Sub

Private Sub Calendar1_Click()

ActiveCell = Me.Calendar1.Value

ActiveCell.NumberFormat = "dd/mm/yy"

UserForm1.Hide

End Sub

Private Sub Calendar1_KeyDown(KeyCode As Integer, ByVal Shift As Integer)

If KeyCode = 27 Then Unload Me

End Sub

.

У цій версії програми календар можна закривати клавішею «

Esc». Якщо в поточній комірці записано дату, календар автоматично встановиться на цю дату. У заголовку вікна з календарем можна буде побачити поточну дату.

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

Файл → Сохранить как…», зазначте тип файлу «Шаблон», ім’я та місце зберігання документа. Найзручніше зробити це в папці стандартних шаблонів Excel. Зазвичай це « x:\Documents and Settings\user\Application Data\Microsoft\Templates\». Тут «x» — диск, де знаходиться папка з шаблонами (звичайно це диск «С»). Рядок «user» — це ім’я, яке ви вказуєте при вході до системи Windows (ваш логін).

Тепер ви зможете створювати документи на основі цього шаблону. Тобто заходите до меню «

Файл → Создать…», розкриваєте «Шаблоны на моем компьютере», знаходите шаблон з календарем та завантажуєте його до Excel. У створеній робочій книзі календар буде доступний.

 

Чекаю ваші запитання, зауваження та пропозиції на

bk@id.factor.ua, nictomkar@rambler.ru/ або на форумі редакції www.bk.factor.ua/forum . Успішної роботи!
App
Завантажуйте наш мобільний додаток Factor

© Factor.Media, 1995 -
Всі права захищені

Використання матеріалів без узгодження з редакцією заборонено

Ознайомитись з договором-офертою

Приєднуйтесь
Адреса
м. Харків, 61002, вул. Сумська, 106а
Ми приймаємо
ic-privat ic-visa ic-visa

Ми використовуємо cookie-файли, щоб зробити сайт максимально зручним для вас та аналізувати використання наших продуктів та послуг, щоб збільшити якість рекламних та маркетингових активностей. Дізнатися більше про те, як ми використовуємо ці файли можна тут.

Дякуємо, що читаєте нас Увійдіть і читайте далі