mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Макросы при рассылке файлов Excel

Очень часто ко мне обращаются с просьбой сделать макросы, которые должны расширять возможности прайс-листов (файлов Excel), рассылаемых заказчикам по почте.

В таких случаях я обычно стараюсь отговорить заказчика от использования макросов (особенно, если файл Excel будет отправляться сотням человек), по следующим причинам:

  • по-умолчанию макросы в Excel отключены (установлен высокий уровень безопасности). К сожалению, не все разберутся, как и где и включать. Если пользователей пару десятков - этим вопросом можно пренебречь. А для тысяч пользователей вариант с макросами я бы не назвал "удобным"
    Конечно, файл можно (и нужно) снабдить инструкциями по включению макросов для всех версий Excel - но есть и такие люди, кто и с инструкцией ничего не поймёт.
  • есть люди, работающие с файлами Excel при помощи OpenOffice (как из-под Windows, так и из-под Linux). 
    Подавляющее большинство макросов для Excel не будут работать под OpenOffice - там другая объектная модель, имеющая с Excel мало общего.
  • антивирусы и файрволы на комьютерах пользователей. Первые порой сами удаляют макросы из файлов, вторые - просто не пускают Excel в интернет.
    (касается макросов, работающих с сетью - веб-запросы, скачивание и отправка файлов и почты. Причем макрос даже не поймёт, почему не удаётся отправить файл) 

Если же используются сложные макросы (задействующие функции WinAPI), то к вышеперечисленному добавляются ещё 3 возможные проблемы:

  • Excel работает не только под Windows, но и под Macintosh. Макросы для отправки по FTP используют средства Windows (WinAPI), так что под маком они работать не будут.
  • чтобы макросы с функциями WinAPI (а макрос отправки по FTP относится к сложным макросам) работали под любой версией Windows и Office (и при разной разрядности - 32 и 64 бит), придётся писать эти функции в 4 вариантах (увеличивает время работы над кодом) 
  • всяческие прокси-серверы, которые тоже осложняют отправку файлов по FTP и работу с сайтами

Что же делать?

Если всё надо делать из расчёта удобства для пользователя, а требуемый функционал Excel не обеспечивает (встроенных возможностей не хватает для автоматизации заполнения прайс-листа или заказа), - я бы посоветовал вообще отказаться от использования Excel, и реализовать всё через веб-интерфейс сайта. Т.е. пользователь прямо на сайте отмечает интересующие его позиции, и сайт сразу всё запоминает и обрабатывает.

Также есть вариант использовать обычное приложение (программу с расширением exe, реализованную на любом языке программирования), или преобразовать файл Excel в приложение exe (для этого есть специальные утилиты, - правда, они стоят денег)
Но, опять же, таким приложением не смогут пользоваться люди, использующие Linux и другие альтернативные операционные системы.

Ключевой момент тут - КОЛИЧЕСТВО пользователей. Если пользователей не больше 10-30, то можно этим вопросом пренебречь (и оптравлять файл Excel с макросами, снабдив пользователей необходимыми инструкциями).

Если же прайс будут получать сотни (и, тем более, тысячи человек), - тут использовать макросы категорически не рекомендуется, и надо искать другое решение, которое будет работать на ВСЕХ компьютерах (форма заказа на сайте).

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
   ___                       _           _____ 
/ _ \ _ __ __ _ | | _ __ | ___|
| (_) | | '__| / _` | _ | | | '_ \ | |_
\__, | | | | (_| | | |_| | | | | | | _|
/_/ |_| \__, | \___/ |_| |_| |_|
|_|
Введите код, изображенный в стиле ASCII-арт.