Создание секундомера в Excel (стиль Basic + Toastmasters)

Во время работы в IBM я был членом клуба ToastMasters International. Это место, где вы можете улучшить свои коммуникативные и лидерские навыки.

Интересной частью еженедельных встреч были импровизированные выступления. В этой части встречи человеку была предложена тема, и он / она должны были говорить по ней в течение 2 минут. Был назначенный человек, который обычно рассчитывал время выступления и показывал зеленую карточку через 1 минуту, желтую карточку через 1:30 и красную карточку через 2 минуты.

Обычно для измерения времени речи используется смартфон или часы, и это время записывается вручную на бумаге.

Часто бывает, что человек забывает показать цветные карточки или иногда забывает записать время выступлений (это происходило со мной постоянно). Помня об этом, я создал в Excel секундомер, который поможет отсчитывать время и записывать речи.

Давайте сначала узнаем, как создать простой секундомер в Excel.

Как создать секундомер в Excel (базовый)

Под простым / базовым секундомером в Excel я имею в виду то, что запускается, когда мы нажимаем кнопку запуска, и останавливается, когда мы нажимаем кнопку остановки.

Что-то вроде того, что показано ниже:

Загрузите этот базовый секундомер в Excel

Чтобы создать этот секундомер в Excel, вам необходимо знать о Приложение.Вовремя метод в VBA.

Метод Application.OnTime в VBA

Метод Application.OnTime можно использовать, если вы хотите запустить указанный код в будущем. Например, вы можете использовать его, чтобы показать окно сообщения, чтобы напомнить вам встать и размять ноги через 1 час или принять лекарство через 3 часа.

Синтаксис метода Application.OnTime:

Application.OnTime (EarlyTime, Процедура, LatestTime, График)

  • EarliestTime: время, когда вы хотите запустить процедуру.
  • Процедура: имя процедуры, которую следует запустить.
  • LatestTime (необязательно): если выполняется другой код, а указанный код не может быть запущен в указанное время, вы можете указать LatestTime, в течение которого он должен ждать. Например, это может быть EarliestTime + 45 (что означает, что он будет ждать завершения другой процедуры в течение 45 секунд). Если даже через 45 секунд процедура не может быть запущена, она прекращается. Если вы не укажете это, Excel подождет, пока код будет запущен, а затем запустит его.
  • Расписание (необязательно): если установлено значение True, будет запланирована новая временная процедура. Если False, то отменяет ранее установленную процедуру. По умолчанию это True.

Пример использования метода Application.OnTime

Sub test () Application.OnTime Now + TimeValue ("00:00:05"), "ShowMessage" End Sub Sub ShowMessage () MsgBox ("HELLO") End Sub

Первая часть макроса использует метод Application.OnTime и запускает процедуру ShowMessage (в двойных кавычках) через пять секунд. Процедура ShowMessage просто показывает окно сообщения с подсказкой HELLO.

Вы можете использовать этот формат для запуска любой процедуры по истечении указанного времени с текущего времени.

Теперь, используя эту концепцию, давайте посмотрим на код для создания простого секундомера в Excel.

Dim NextTick As Date, t As Date Sub StartStopWatch () t = Time Call StartTimer End Sub Sub StartTimer () NextTick = Time + TimeValue ("00:00:01") Диапазон ("A1"). Значение = Формат (NextTick - t - TimeValue ("00:00:01"), "чч: мм: сс") Application.OnTime NextTick, "StartTimer" End Sub Sub StopTimer () При ошибке Возобновить следующее приложение.OnTime EarliestTime: = NextTick, Процедура: = "StartTimer", Schedule: = False End Sub

Этот код состоит из 3 частей:

  • Первая часть инициализирует текущее время переменной t. Затем он вызывает другую процедуру StartTimer.
  • Процедура StartTimer использует переменную NextTick, которая увеличивается на 1 с каждой секундой. На листе в ячейке A1 есть таймер, поскольку мы указали NextTick - t -TimeValue («00:00:01»), «чч: мм: сс») как значение в этой ячейке. Затем он запускает код StartTimer снова через каждую секунду.
  • StopTimer отменяет процедуру Application.Ontime, делая значение расписания False. Это останавливает таймер.

Вот что вы получите с приведенным выше кодом (я назначил макросы кнопкам запуска / остановки):

Это простой секундомер в Excel.

Я называю это базовым, поскольку вы не можете остановиться на середине и перезапустить с того места, где вы остановились. Он всегда будет перезапускаться с 1, когда вы нажимаете кнопку запуска.

Теперь, когда вы изучили основы метода Application.OnTime, вы можете легко настроить его, чтобы создать любой секундомер в Excel.

Секундомер в Excel (для ToastMasters)

Я использовал концепцию, описанную выше, и создал секундомер в Excel, который можно использовать на встрече Toastmasters (о которой я упоминал в начале этого урока).

Вот что можно сделать с помощью этого секундомера:

  • Вы можете остановить таймер, а затем снова запустить его с того же времени (записанного до этого момента).
  • Вы можете сбросить таймер. Это устанавливает значение таймера на 0. Как только вы это сделаете, он автоматически запишет общее прошедшее время.
  • Он меняет цвет окна таймера в зависимости от значения секундомера (это может быть хорошим напоминанием, чтобы показать зеленые / желтые / красные карточки).

Вот как это выглядит:

В этой демонстрации я установил смену цвета каждые пять секунд. Вы можете легко указать, когда вы хотите изменить цвет (зеленая карточка через 1 минуту, желтая карточка через 1,5 минуты и красная карточка через 2 минуты), изменив значения на листе вычислений.

Как только вы нажмете кнопку сброса, цвет таймера снова станет белым, значение таймера станет 0, и он будет записывать время в столбце G.

Примечание. Поскольку эти файлы содержат макрос, вам необходимо включить макрос перед его использованием. Когда вы откроете книгу, вы увидите желтую кнопку - Включить контент. Щелкните по нему, чтобы включить макросы.

Если вы создаете что-то крутое с помощью таймера, поделитесь им со мной.

wave wave wave wave wave