Эффект выпадающих чисел матрицы в Excel с использованием VBA

Содержание

Я большой поклонник сериала «Матрица». Это удивительное произведение своего времени и один из моих любимых научно-фантастических фильмов.

Если вы видели «Матрицу», вы не могли бы не вспомнить последовательность падающих кодов.

Я думал создать это в Excel, но кто-то меня опередил. Он уже создан и доступен здесь.

Нитин Мехта, создавший это, использовал пару функций Excel, условное форматирование и полосу прокрутки для создания этого эффекта.

Я изменил его, убрав полосу прокрутки, и вместо этого использовал код VBA. Теперь вы можете просто нажать на кнопку воспроизведения, и числа начнут падать сами по себе. Что-то вроде того, что показано ниже:

Эффект падающих чисел матрицы в Excel

Вот шаги для создания эффекта «числа падения матрицы» в Excel:

  • В первой строке диапазона A1: AP1 введите случайные числа от 0 до 9. Вы можете ввести эти числа вручную или использовать функцию СЛУЧМЕЖДУ. Не забудьте преобразовать эти числа в значения.
    • Уменьшите ширину столбца, чтобы он был виден на одном экране.

  • В диапазоне A2: AP32 введите формулу: = ЦЕЛОЕ (СЛЧИС () * 10)
  • Скопируйте и вставьте приведенный ниже код в модуль в VBA.
    #If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Для 64-битных систем #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' Для 32-битных систем #End If Sub MatrixNumberRain () i = 1 Do while i <= 40 DoEvents Range ("AR1"). Значение = ii = i + 1 Sleep 50 Loop End Sub

Этот код выше будет вводить число от 1 до 4o в ячейку AR1. Код Sleep 50 задерживает ввод чисел на 50 миллисекунд. Если вы запустите этот код, вы сможете увидеть, что значение в AR1 изменяется от 1 до 40.

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

Правило условного форматирования # 1

  • Выберите диапазон A2: AP32, перейдите на главную -> Условное форматирование -> Новое правило.

  • В диалоговом окне «Новое правило форматирования» нажмите «Использовать формулу, чтобы определить, какие ячейки нужно форматировать» и введите следующую формулу:
    = МОД (1,15 $ AR) = МОД (СТРОКА () + 1,15 A $)

  • Нажмите кнопку форматирования и установите белый цвет шрифта.

  • Нажмите ОК.

Правило условного форматирования # 2

  • Выбрав диапазон A2: AP32, перейдите в раздел «Главная» -> «Условное форматирование» -> «Управление правилом».
  • В диалоговом окне «Диспетчер правил условного форматирования» нажмите «Новое правило».
  • В диалоговом окне «Новое правило форматирования» нажмите «Использовать формулу, чтобы определить, какие ячейки нужно форматировать» и введите следующую формулу:
    = МОД (1,15 $ AR) = МОД (СТРОКА () + 1 $ + 1,15)
  • Нажмите кнопку форматирования и установите светло-зеленый цвет шрифта.
  • Нажмите ОК.

Правило условного форматирования # 3

  • Выбрав диапазон A2: AP32, перейдите в раздел «Главная» -> «Условное форматирование» -> «Управление правилом».
  • В диалоговом окне «Диспетчер правил условного форматирования» нажмите «Новое правило».
  • В диалоговом окне «Новое правило форматирования» нажмите «Использовать формулу, чтобы определить, какие ячейки нужно форматировать» и введите следующую формулу:
    = ИЛИ (MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 2,15), MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 3,15), MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 4,15), MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 5,15))
  • Нажмите кнопку форматирования и установите светло-зеленый цвет шрифта.
  • Щелкните ОК.

В зависимости от номера строки и значения в первой строке при условном форматировании текст будет окрашиваться в зеленый, светло-зеленый или белый цвет.

Теперь выделите весь диапазон ячеек (A1: AP32) и сделайте фон черным.

В качестве последнего шага вставьте форму / кнопку и назначьте этот макрос этой форме / кнопке.

Примечание: Поскольку в нем есть код VBA, сохраните файл с расширением .xls или .xlsm.

Вот и все! А теперь приготовьте себе чашку кофе, встаньте в тени и наслаждайтесь цифровым дождем с числами падения Матрицы 🙂

wave wave wave wave wave