Рекомендации по внедрению Excel VBA

Мы являемся ISV с опытом разработки и распространения настольных приложений, написанных на VB6. В настоящее время мы разрабатываем инструменты в виде электронных таблиц Excel, содержащих код VBA. Они будут доступны для скачивания различным пользователям, включая организации локальных органов власти.

Раньше мы редко распространяли электронные таблицы за пределами нашей собственной организации. Какие лучшие практики мы должны придерживаться, и есть ли подводные камни, за которыми следует следить?

Я знаю следующее.

Ответ 1

Две вещи, которые приходят на ум:

  • Если по какой-то причине у вас есть формула или текст в ячейке, попробуйте и реорганизуйте ее, если это > 255 символов, потому что Excel не имеет проблем, усекающих ее, если лист скопирован. Он даже не уведомляет вас о том, как это делается.
  • Если вы используете именованные диапазоны, избегайте трех буквенных диапазонов или трех букв, за которыми следуют цифры. В Office 2007 BAD1, например, является действительной ссылкой на ячейку.

Ответ 2

Вместо того, чтобы разрабатывать электронную таблицу, я нашел создание Add Ins для распространения. Как правило, у меня было бы одно меню с вариантами документации и создание любых шаблонов, необходимых для ваших функций. Изменяя свои электронные таблицы, больше "приложение вроде" означает больше работы, но оно имеет несколько преимуществ;

  • Легче быть последовательным с вашим внешним видом.
  • Весь ваш код, ваши шаблоны и т.д. находятся в одном файле (например: Add In)
  • Вы можете легко использовать код (возможно, самый важный бит)

для примера того, как это может выглядеть, см. эта демонстрация

Еще один трюк, который я всегда добавляю, - это управление версиями и ведение журнала использования. Каждая главная функция попадает на веб-сервер при каждом запуске и использовании журнала. Это не appopriate для каждой ситуации, но в корпоративной среде было очень удобно знать, кто работает с мини-приложениями Excel и как часто.

Ответ 3

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

  • Использование именованных диапазонов таким образом, чтобы их можно было легко изменять или перемещать, когда кто-то меняет свое мнение.
  • Используя формулы массива, когда люди вырезают и вставляют ячейки, они будут изменять любые формулы, которые зависят от этих ячеек, если вы используете массивы, они должны разрезать весь массив, чтобы уничтожить вашу формулу.
  • Сделайте свой массив таким, чтобы одна строка сверху и снизу, а один столбец слева и справа защищен и не может быть изменен пользователем, поэтому они не могут испортить ваши формулы.

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