VBA для «чайников» - [54]
Зависит от типа данных, содержащихся в переменной, в соответствии с вышеприведенными описаниями | ||
Пользовательский (требует использования оператора Туре) | Группа переменных, используемых вместе как единое целое | Для каждой из переменных в группе, зависит от ее типа в соответствии с вышеприведенными описаниями |
Использование конкретного типа данных по сравнению с типом Variant: за и против
Одни считают, что указание в объявлении переменной ее конкретного типа данных (т.е. типа, отличного от Variant ) - это хорошо, другие же считают, что это плохо. Объявление конкретного типа данных переменной помогает избежать одних ошибок, но обеспечивает массу возможностей для появления других. Такой подход способствует уменьшению и ускорению выполнения программ, но в большинстве реальных случаев эти усовершенствования, наверное, не будут слишком важны.
Вот некоторые обстоятельства, способствующие уменьшению числа ошибок. Если при объявлении переменной задается конкретный тип данных, VBA не позволит вам поместить а эту переменную данные других типов. Например, если переменная объявляется оператором
Dim dateAnniversary As Date
то VBA выведет на экран сообщение об ошибке, когда вы попытаетесь присвоить этой переменной текстовое значение, как здесь:
dateAnniversary = Поездка на Фиджи ' Ошибка
Сообщения об ошибках, наверное, будут раздражать, но все же это лучше, чем позволить программе работать с ошибочными данными.
Сообщение об ошибке не появилось бы, если dateAnniversary была объявлена как переменная типа Variant, т.е. как переменная, допускающая любой тип данных. Тип данных Variant можно объявить точно так же, как и любой другой, например:
Dim varToolsuite As Variant
Но поскольку тип данных Variant подразумевается по умолчанию, его явное указание можно опустить, оставив в объявлении только имя переменной:
Dim Toolsuite
Что же касается вопросов оптимизации, то, указывая конкретный тип, вы имеете возможность выбрать при этом тот тип данных, который обеспечивает в точности необходимый минимум для хранения соответствующей информации. Переменная типа Variant занимает больше памяти, чем переменная любого другого типа, да и доступ к такой переменной осуществляется медленнее. Однако такие аргументы начинают играть роль в программах с очень и очень большим числом переменных. Зато объявив все переменные как переменные типа Variant, вы получаете возможность избежать многих ошибок, сделать программный код более гибким, а также сделать более простой модификацию такого программного кода.
Я здесь не могу обсуждать этот вопрос подробнее, но вы должны знать, что некоторые очень хорошие программисты настоятельно рекомендуют программировать, используя исключительно переменные типа Variant.
Выберите подходящую для себя стратегию - объявление конкретного типа данных для каждой переменной или использование типа Variant для всех переменных - и придерживайтесь одной стратегии по крайней мере в рамках одной программы.
Явные объявления приветствуются
Независимо от того, решите вы назначать конкретные типы данных переменным или нет, каждую переменную перед использованием следует объявить. Как серьезный программист, вы можете сделать так, чтобы VBA заставлял вас объявлять переменные. Если в раздел объявлений модуля поместить оператор Option Explicit то при попытке использования предварительно не объявленной переменной VBA будет сообщать об ошибке. После такого своевременного предупреждения вы сможете добавить необходимое объявление в подходящем месте программы.
Такая требовательность VBA в деле явного объявления переменных дает и более ощутимые выгоды: тем самым предотвращается в перспективе вероятность появления в программе серьезных ошибок из-за банальных опечаток.
Представьте себе следующую ситуацию. Вы решили не использовать оператор OptionExplicit в своем модуле. Но вот где-то в глубине процедур в результате случайной незамеченной неточности движения пальцев вы ошибаетесь при печатании имени одной из своих переменных. Когда компилятор VBA дойдет до строки с этой опечаткой, он подумает, что здесь вы просто вводите в оборот новую переменную, и любезно создаст ее для вас. В результате ваша программа может и будет выполняться, но не удивляйтесь, если вдруг выводимый на экран текст окажется ярко-красным или программа сообщит, что население Земли достигло 12 человек.
Наверное, к этому моменту я вас уже убедил, что оператор Option Explicit должен присутствовать в каждом создаваемым вами модуле. Но если это так, то зачем этот оператор печатать каждый раз вручную? Это делать совсем не обязательно. Выберите Tools=Options из меню и в появившемся диалоговом окне Options (Параметры) на вкладке Editor (Редактор) установите флажок Require Variable Declaration (Требовать объявление переменных). После этого редактор Visual Basic будет автоматически вставлять оператор Option Explicit в каждый новый модуль. В старые модули, где такого оператора не было, вам придется впечатать его самим.
Задание области видимости переменной
Область видимости переменной (т.е. та часть программы, в рамках которой данная переменная доступна) зависит от следующих двух взаимосвязанных факторов:
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.