VarTypeMask — Константа

Содержание

Константы VBA

Константа — это значение в программе VBA, которое не изменяется.

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

Константы бывают литеральными и именованными.

Литеральная константа — это константа (число, строковое выражение, дата), расположенная непосредственно в коде.

Например: X = Y + 2

Здесь число 2 является литеральной константой.

Именованная константа, как правило, объявляется в начале модуля или процедуры (аналогично переменной) и предназначена для удобства читания и понимания программного кода. Например, более целесообразно использовать в коде программы именованную константу Pi (которой присвоено значение 3,14), чем литеральную константу 3,14. Согласитесь, что выражение
S = Pi * R* R
Более «понятно», чем
S = 3.14 * R * R

Другим веским фактором в пользу именованных констант служит то обстоятельство, что изменив значение константы один раз, эти изменения мгновенно произойдут во всем программном коде. Литеральную константу надо искать и изменять в теле кода «вручную», на что может уйти довольно значительное время.

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

Литеральные константы

Существует несколько правил, которые необходимо соблюдать при написании литеральных констант.

Константы String

  • Строковые константы должны быть заключены в двойные кавычки («);
  • Пустая строковая константа (так называемая «нулевая строка») обозначается двумя двойными кавычками, между которыми ничего нет («»);
  • Строковая константа обязательно должна вся находиться на одной строке.

Численные константы

  • Численные константы могут содержать любой из численных типов VBA;
  • Численные константы должны состоять только из числовых символов от 0 до 9;
  • Численная константа может начинаться со знака (-) и может содержать десятичную точку;
  • Можно использовать экспоненциальное представление для численных констант;
  • Никакие другие символы или знаки не допускаются в численных константах.

Константы Date

  • Константы Date необходимо помещать между знаками фунта (#), при этом формат задания даты может быть различным:
    #3-5-99#
    #February 13, 2008 10:15am#
    #Jun-20-2005#
    # 9 April 1998#
  • VBA переформатирует дату к следующему виду: #4/9/1998#
  • Если пропустить знак фунта (#) при записи литеральной константы даты, VBA не сможет правильно интерпретировать константу даты как дату;
  • Нельзя заключать литеральные константы даты в двойные кавычки, т.к. в этом случае VBA распознает такую константу как строковую.

Константы Boolean

Существуют только два вида констант типа Boolean: True, False. При этом их нельзя брать в кавычки или сокращать.

Именованные константы

При создании и объявлении именованных констант надо придерживаться тех же принципов, что и при работе с переменными.

Для объявления именованной константы предназначено ключевое слово Const

Const name_1 = value_1 [opetator name_2..] [, name_3 =..]

Name_N — любой допустимый идентификатор имени константы;
Value_N — любое значение данных;
Opetator — арифметическая или операция сравнения между двумя именами ранее описанных констант.

Область действия именных констант аналогична переменным, т.е. константы бывают процедурного и модульного уровня.

Поскольку одной из главных целей использования именованной константы является предотвращение повторения или дублирования литеральных констант, как правило, бывает необходимо, чтобы именованные константы были доступны всем процедурам в модуле. Поэтому целесообразно помещать объявления констант на модульном уровне, чтобы у них была наибольшая область действия.

Задание типа константы

Когда объявляется именованная константа или используется литеральная, VBA воспринимает эту константу тем типом, который наиболее согласуется с ее значением.

В VBA можно задавать тип константы (по аналогии с переменными). Но в отличие от переменных нельзя задавать типы Object и Array. Например, в вышеприведенном листинге вполне уместно константе Pi задать тип Single
Const Pi As Single = 3.14

Внутренние константы

Внутренняя константа — это именованная константа, которая была определена разработчиками VBA.

Помимо внутренних констант VBA существуют внутренние константы для работы с host-приложениями. Так, Excel содержит внутренние константы для использования с рабочими книгами электронных таблиц. Аналогично, Word содержит внутренние константы для работы с документами и шаблонами текстового редактора, а Access — для операций с базами данных.

Внутренние константы, определяемые VBA, начинаются с букв vb. Внутренние константы Excel — xl; Word — wd.

Внутренние константы, определяемые host-приложением VBA (например, Excel, Word) упрощают использование различных свойств и методов, принадлежащих этому host-приложению.

Для того, чтобы увидеть полный список имеющихся в наличии внутренних констант необходимо использовать Object Browser. Его можно вызвать клавишей F2 в окне редактора VBA.

Практическое руководство. Объявление константы (Visual Basic) How to: Declare A Constant (Visual Basic)

Чтобы объявить константу и задать ее значение, используется оператор Const . You use the Const statement to declare a constant and set its value. Объявляя константу, можно присвоить значение понятному имени. By declaring a constant, you assign a meaningful name to a value. После объявления константы ее нельзя изменить или присвоить ей новое значение. Once a constant is declared, it cannot be modified or assigned a new value.

Константа объявляется в процедуре или в разделе объявлений модуля, класса или структуры. You declare a constant within a procedure or in the declarations section of a module, class, or structure. Константы уровня класса или структуры Private по умолчанию, но также могут быть объявлены как Public , Friend , Protected или Protected Friend для соответствующего уровня доступа к коду. Class or structure-level constants are Private by default, but may also be declared as Public , Friend , Protected , or Protected Friend for the appropriate level of code access.

Константа должна иметь допустимое символьное имя (правила совпадают с правилами для создания имен переменных) и выражение, состоящее из числовых или строковых констант и операторов (но не для вызовов функций). The constant must have a valid symbolic name (the rules are the same as those for creating variable names) and an expression composed of numeric or string constants and operators (but no function calls).

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. The Visual Studio edition that you have and the settings that you use determine these elements. Дополнительные сведения см. в разделе Персонализация среды IDE. For more information, see Personalizing the IDE.

Объявление константы To declare a constant

Напишите объявление, которое включает спецификатор доступа, ключевое слово Const и выражение, как показано в следующих примерах: Write a declaration that includes an access specifier, the Const keyword, and an expression, as in the following examples:

Если параметр Infer имеет значение Off и Option строго On , необходимо явно объявить константу, указав тип данных ( Boolean , Byte , Char , DateTime , Decimal , Double , 0 , 1, 2, 3 или 4). When Option Infer is Off and Option Strict is On , you must declare a constant explicitly by specifying a data type ( Boolean , Byte , Char , DateTime , Decimal , Double , Integer , Long , Short , Single , or String ).

Если Option Infer имеет On или Option Strict Off , можно объявить константу без указания типа данных с помощью предложения As . When Option Infer is On or Option Strict is Off , you can declare a constant without specifying a data type with an As clause. Компилятор определяет тип константы на основе типа выражения. The compiler determines the type of the constant from the type of the expression. Дополнительные сведения см. в разделе константные и литеральные типы данных. For more information, see Constant and Literal Data Types.

Объявление константы с явно указанным типом данных To declare a constant that has an explicitly stated data type

Напишите объявление, которое включает ключевое слово As и явный тип данных, как показано в следующих примерах: Write a declaration that includes the As keyword and an explicit data type, as in the following examples:

В одной строке можно объявить несколько констант, хотя код более удобен для чтения, если объявить только одну константу в строке. You can declare multiple constants on a single line, although your code is more readable if you declare only a single constant per line. При объявлении нескольких констант в одной строке все они должны иметь одинаковый уровень доступа ( Public , Private , Friend , Protected или Protected Friend ). If you declare multiple constants on a single line, they must all have the same access level ( Public , Private , Friend , Protected , or Protected Friend ).

Илон Маск рекомендует:  Что такое код asp cpuenableevent

Объявление нескольких констант в одной строке To declare multiple constants on a single line

Разделяйте объявления запятыми и пробелами, как показано в следующем примере: Separate the declarations with a comma and a space, as in the following example:

Встроенные константы Visual Basic

Читайте также:

  1. Basic Assumptions of Relevance Theory
  2. Basic compound of any real estate
  3. Basic elements of cadastral system
  4. Basic English [ for Computing 1 страница
  5. Basic English [ for Computing 10 страница
  6. Basic English [ for Computing 11 страница
  7. Basic English [ for Computing 12 страница
  8. Basic English [ for Computing 2 страница
  9. Basic English [ for Computing 3 страница
  10. Basic English [ for Computing 4 страница
  11. Basic English [ for Computing 5 страница
  12. Basic English [ for Computing 6 страница

Константы

Типы данных в Visual Basic

Для хранения результатов операций и промежуточных значений, как и в любом другом языке программирования, в Visual Basic используются переменные. Переменные хранятся в оперативной памяти компьютера, занимая, в зависимости от типа данных, разное количество памяти. В следующей таблице приведены базовые типы данных в Visual Basic 6.0:

Таблица 4.1. Типы данных

Тип Кол-во байт в памяти Диапазон допустимых значений Описание
Byte 1 байт От 0 до 255 Целочисленный беззнаковый тип
Boolean 2 байта True или False Болев тип
Integer 2 байта От -32 768 до 32 767 Целочисленный знаковый тип
Long 4 байта От -2 147 483 648 до 2 147 483 647 Целочисленный знаковый тип
Single 4 байта От -3,402823*10 38 до 3,402823*10 38 С плавающей запятой
Double 8 байт От -1,79769313486231*10 308 до 1,79769313486232*10 308 С плавающей запятой
Currency 8 байт От -922 337 203 685 477,5808 до 922 337 203 685 477,5807 С фиксированной запятой
Decimal 14 байт Любое число не более 28 цифр С фиксированной запятой
Date 8 байт От 1 января 100г. до 31 декабря 9999г.
Object 4 байта Ссылка на любой объект
String В зависимости от длинны строки Примерно до 2 миллионов символов
Variant В зависимости от хранимого типа Может хранить любой базовый тип

Константой называют элемент выражения, значение которого не изменяется в процессе выполнения программ. Приведем несколько примеров:

  • 75.07 — числовая константа ;
  • 2.7Е+6 — числовая константа (равна 2 700 000) ;
  • «Ошибка доступа к базе данных» — символьная константа ;
  • #8/12/1999# — константа типа дата ;
  • False — логическая константа.

Visual Basic содержит огромное количество встроенных констант практически для всех возможных случаев: цвета, клавиши, сообщения и т. п. Встроенные константы имеют префикс vb. Для поиска констант определенной категории воспользуйтесь браузером объектов (рис. 4), который открывается при нажатии кнопки Object Browser на стандартной панели инструментов.

Рисунок 4.1. Поиск встроенных констант с помощью браузера объектов

Встроенные константы Visual Basic не требуют объявления и могут быть использованы в любом месте приложения.

В следующем примере использована встроенная константа vbCritical для изменения внешнего вида окна сообщений:

MsgBox «Неверный параметр!», vbCritical

Дата добавления: 2014-12-23 ; Просмотров: 659 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Предопределенные макроподстановки

Для облегчения отладки и получения информации о работе mql5-программы введены специальные константы-макросы, значения которых устанавливается в момент компиляции. Самый простой путь использования этих констант – вывод значений с помощью функции Print(), как показано в примере.

Дата компиляции файла без времени (часы, минуты и секунды равны 0)

Дата и время компиляции файла

Номер строки в исходном коде, на которой расположен данный макрос

Имя текущего компилируемого файла

Абсолютный путь к текущему компилируемому файлу

Имя функции, в теле которой расположен макрос

Сигнатура функции, в теле которой расположен макрос. Вывод в лог полного описания функции с типами параметров может пригодиться при идентификации перегруженных функций

Program UsingVariantsl ; Var

тип переменной не определен>

S: String; <Описание переменной типа String>Begin

переменной назначается целочисленный тип данных;

V := ‘It is a STRING’ ;

2.5.3. Определение типа вариантных переменных

Переменная типа Variant занимает в памяти шестнадцать байт, в ко­торых находится информация о типе данных (код типа), хранящихся в данный момент в данной переменной и сами данные, либо указатель на них. Возможные коды типов данных для вариантных переменных, описанные в модуле System, представлены в табл. 2.4.

Для определения типа данных, хранимых в вариантной переменной, исполь­зуется функция VarType,описанная в модуле Variants в следующем виде:

FunctionVarType(constV: Variant): TVarType;

Возвращаемое функцией VarType значение имеет тип аналогичный типу Word и содержит информацию о типе данных, а также о том, является ли значение, хранимое в переменной, массивом или указателем. Млад­шие двенадцать бит (три последние шестнадцатеричные цифры) этого значения содержат код типа, соответствующий константам, приведенным в табл. 2.4, а в старших четырех битах могут находиться следующие зна­чения:

♦ нулевое значение $0000 — указывает на то, что данные заявленного типа хранятся непосредственно в вариантной переменной;

♦ значение $2000 (константа varArrayмодуля System) — указывает на то, что хранимые данные являются массивом элементов, имею­щих тип, определяемый кодом типа данных;

♦ значение $4000 (константа varByRefмодуля System) — указывает на то, что хранимые данные являются ссылкой на соответствующий тип данных, определяемый кодом типа данных.

Для выделения части значения, содержащей код типа данных, предус­мотрена константа varTypeMask (значение $0FFF), с помощью которой можно отделить код типа данных от дополнительных признаков:

andvarTypeMask

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

S := ‘Data element type: s ;

Case VarType(V) and varTypeMask of

varEmpty: S := S + x The variant is UnassignecT ;

varNuil: S := S + ‘The variant is Null’;

Таким образом, если в переменной v находится значение 2 0 0, то после выполнения данного фрагмента программы значением переменной s будет строка ‘Data element type: A Byte’, если переменной v задать зна­чение 1221.66, то в переменной s будет строка ‘Data element type:

Currency floating-point value (type Currency)’. Если же значе­ние переменной V будет строковым, например, ‘1221.66’, то значени­ем переменной S будет такая строка: ‘Data element type: Reference to a dynamically allocated string’.

2-5.4. Автоматическое приведение типов

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

Допустим, например, что в программе имеется вариантная переменная Vi, которой присвоено значение 2 0 0. После присвоения переменная vi будет целочисленной (иметь тип с кодом varByte):

Допустим также, что имеется переменная S типа string. Тогда в резуль­тате выполнения оператора присваивания s := vi, значением перемен­ной s будет строка ‘200’. Таким образом, во время выполнения опера­тора значение целочисленной переменной будет автоматически переведено в строковый вид.

Более того, возможна и обратная ситуация, когда вариантная перемен­ная строкового типа автоматически переводится в численную форму. Однако именно в таких ситуациях могут возникать ошибки времени выполнения. Рассмотрим пример безошибочного использования вариан­тной переменной (листинг 2.10).

VarTypeMask — Константа

Работа с переменными, константами и массивами

Активная работа с nnCron зачастую требует хранения различных значений в течение продолжительного времени. Для этого используются переменные, константы и массивы. nnCron предоставляет пользователям все средства работы с переменными, константами и массивами, которыми обладает язык программирования Форт (SP-Forth) и добавляет несколько собственных удобных инструментов.

Переменные для хранения числовых значений создаются с помощью слова VARIABLE:

Определить переменную можно в самом начале задания, до раздела Action:, а заносить и извлекать из нее значение можно внутри раздела Action:. При создании переменной в нее заносится значение .

Значение заносится в переменную с помощью слова ! (восклицательный знак):

Пример:

Чтобы «извлечь» значение переменной используется слово @:

Пример:

Обратите внимание, что слова @ и ! фактически работают с адресом переменной, который остается на стеке после указания (выполнения) ее имени: простое употребление имени переменной оставляет на стеке ее адрес в оперативной памяти компьютера.

Существуют также специальные слова ON и OFF, которые облегчают использование переменных с условным оператором IF . ELSE . THEN. Слово ON присваивает указанной переменной значение -1, а OFF — значение :

Пример:

Многие слова Форта и nnCron возвращают числа двойной длины. Для создания переменной, которая может хранить числа двойной длины, используется слово 2VARIABLE. Чтобы занести значение в такую переменную, используйте слово 2!. Чтобы «извлечь» значение, используйте слово 2@.

Примеры:

VALUE-переменные

Числовые переменные можно создавать и с помощью слова VALUE:

Как видите, при использовании VALUE значение переменной записывается в нее прямо при создании:

Удобство VALUE-переменной заключается в том, что вам не надо использовать специальное слово для извлечения содержащегося в ней значения. Чтобы поместить значение VALUE-переменной на стек достаточно указать (выполнить) в программе ее имя:

Для записи нового значения в VALUE-переменную служит специальное слово TO. Вот как оно применяется:

Илон Маск рекомендует:  Что такое код imageftbbox

Пример:

Константы

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

Для создания константы используйте специальное слово CONSTANT:

Чтобы поместить значение константы на стек достаточно указать (выполнить) в программе ее имя:

Массив — это специальная структура, которая позволяет хранить множество значений под одним именем. Одно из традиционных применений массивов в nnCron — это промежуточное хранение символьных строк. Способы работы со строками подробно изложены в «Неотложной помощи по Форту».

Для создания массива используется слово CREATE:

А для того, чтобы выделить под только что созданный массив нужное количество памяти используется слово ALLOT.

Пример:

Разумеется, в массивах можно хранить не только строки, но любые другие значения. Массивы даже можно инициализировать прямо при создании, например:

Детальное описание способов работы с массивами выходит за рамки документации nnCron. За дополнительной информацией обратитесь к документации языка программирования Форт.

Файловые и реестровые переменные

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

Специально для этой цели nnCron предоставляет набор слов для создания строковых переменных, которые никак не зависят от перезагрузок компьютера и nnCron. Речь идет о т. н. файловых и реестровых переменных, т. е. переменных, которые хранят свои значения не в оперативной памяти компьютера, а в специальных файлах или ключах registry.

fVAR (file variable)
regVAR (registry variable)

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

Изначально файловые и реестровые переменные работают со строками, но если нужно сохранить в них не строки, а числа, то можно воспользоваться словами, которые преобразуют число в строку и наоборот (вопрос преобразования строк в числа и чисел в строки рассмотрен подробнее в «Неотложной помощи по Форту»):

Для получения полной картины о работе файловых и реестровых переменных осталось разобраться — где же они хранятся. Каждая из файловых переменных хранится в одноименном файле в подкаталоге var того каталога, куда установлен nnCron. Реестровые переменные хранят свои значения в одноименных ключах registry в ветке HKEY_LOCAL_MACHINE\SOFTWARE\nnSoft\var\.

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

FileVarPath! ( a u — )
RegVarPath! ( a u — )

Задает путь к каталогу (ветку registry), где должны храниться файловые/реестровые переменные. Не забудьте поставить обратный слеш (\) в конце указанного пути.

Обратите внимание, это слово предназначено для использования в nncron.ini. Его нельзя применять в тексте задач.

uFileVarPath! ( a u — )
uRegVarPath! ( a u — )

Задает путь к каталогу (ветку registry), где должны храниться файловые/реестровые переменные в пределах потока. Не забудьте поставить обратный слеш (\) в конце указанного пути.

Слово предназначено для применения в тексте задач.

В случае необходимости вы можете программно удалить неиспользуемые файловые и реестровые переменные с помощью слов FILE-DELETE:/REG-DELETE-KEY:.

Зона видимости переменных, констант и массивов

Все пеpеменные (VARIABLE, VALUE), константы (CONSTANT) и массивы (CREATE . ALLOT) являются глобальными, видны из дpугих задач и разделяются всеми экземплярами задач. Поэтому имеет смысл с особой тщательностью следить за уникальностью имени любой пеpеменной — во избежание дополнительной путаницы.

Вот кое-какие подpобности для особо любопытных: в пpинципе, хотя пеpеменные глобальны, каждая уникальная задача будет pаботать со своей пеpеменной. Дpугое дело констpукции вида: %VAR-NAME @% — они будут выводить только пеpеменную, использовавшуюся последней, вне зависимости от задания.

Вопpос: угадайте, что выведет пеpвая задача?

Ответ: это зависит от того, выполнялась втоpая или нет. Если да, то пеpвая выведет 2, а если нет, то (начальное значение всех пеpеменных).

Можно создавать переменные и массивы, которые будут уникальными для каждого экземпляра задачи (сколько экземпляров задачи работает, столько и переменных). Для этого надо создавать переменные при помощи следующих слов:

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

Delphi 2006. Справочное пособие: Язык Delphi, классы, функции Win32 и .NET. — Архангельский А.Я.

if (Editl. Text[Editl.SelStart] in setCharNum) then .

В приложении VCL Win32 этот оператор будет работать правильно. А в приложении .NET он будет выдавать ошибки: указывать, что символ кириллицы не принадлежит множеству, а, например, символ пробела принадлежит. Исправить эти ошибки можно применив к символу явное приведение к типу AnsiChar:

if (AnsіChaг(Edit1.Text[Edit1.SelStart]) in setCharNum) then .

Такой оператор будет верно выполняться и в приложении VCL Win32, и в приложении .NET.

Помимо операции in для множеств определен еще ряд операций: объединение, пересечение, операции отношения и ряд других (см. разд. 2.8.9). Например, если вы определили переменную:

setCharNum := setCharNum — [‘а’]; удалит из множества символ «а», а оператор

setCharNum := setCharNum + [‘а’];

добавит в множество этот символ, если он отсутствует в нем.

4.12 Тип variant

В переменных типа variant могут храниться данные любых типов, кроме записей, множеств, статических массивов, файлов, классов, ссылок на классы, указателей. Иначе говоря, переменные типа variant могут хранить все, кроме структур (см. разд. 4.1) и указателей. Они могут также хранить объекты СОМ и CORBA, обеспечивая доступ к их методам и свойствам. Могут они также хранить динамические массивы (см. разд. 5.2.5) и специальные массивы variant, о которых будет рассказано далее.

Например, если определить тип переменной V как variant, то могут выполняться такие операторы:

V: variant; // тип V не определен (равен Unassigned)

V := 5; // тип V становится равным integer

V := IelO; // тип V становится равным real

V := Editl. Text;// тип V становится равным string

Следует учесть, что в приложениях VCL (Win32 и .NET) объявление типа variant содержится в модуле Variants, который автоматически подключается в проект, как только вы объявляете переменную типа variant. В приложениях 262

Глава 4 ¦ Основные типы данных

Windows Forms для использования этого типа надо вручную подключить пространство имен Borlandycl.Variants:

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

Переменные типа variant могут использоваться в выражениях как операнды любых операций, кроме is и in, совместно с другими величинами типов variant, integer, real, string, Boolean. Компилятор в этих случаях автоматически осуществляет приведение типов величин в выражении. Если оба операнда операции имеют тип variant и один или оба операнда равны nil, то результат операции тоже равен nil. Если один или оба операнда имеют значение Unassigned, то генерируется исключение. Если в бинарной операции только один из операндов имеет тип variant, то другой тоже преобразуется в тип variant.

Приведение типов при вычислении выражений, содержащих операнды variant, осуществляется обычным образом (см. разд. 4.2). Например, если Vl и V2 типа variant содержат данные типов integer и real, то выражение Vl + V2 вернет значение real.

Переменные типа variant занимают 16 байтов в приложениях VCL Win32, 4 байта в .NET, и содержат код типа и значение переменной или указатель на это значение. В момент создания эти переменные инициализируются специальным значением Unassigned. Значение переменной nil свидетельствует о неизвестном или ошибочном значении переменной.

Узнать действительный тип значения переменной variant можно с помощью функции VarType, возвращающей значение поля VarType записи типа TVarData, содержащее код типа переменной variant. Запись TVarData определена в модуле System. Имеется также предопределенная константа varTypeMask, сложение которой по операции and с переменной типа TVarData возвращает истинный тип переменной. Например, выражение

VarType(V) and varTypeMask = varDouble

вернет true, если в переменной V в данный момент хранится значение типа double или массив значений типа double.

Возможные значения типов, возвращаемые функцией VarType, приведены в гл. 9 в описании типа TVarType. Ниже приведены только некоторые значения, используемые в дальнейшем изложении.

Константа Численное значение Тип
varEmpty $0000 переменная в состоянии Unassigned
varNull $0001 значение переменной равно nil
varlnteger $0003 тип Integer 4.12.2 — Массивы типа variant

Константа Численное значение Тип
varSingle $0004 тип Single
varDouble $0005 тип Double
varOLEStr $0008 ссылка на динамически размещенную строку UNICODE
varWord $0012 тип Word
varString $0100 ссылка на динамически размещенную строку в стиле Pascal (тип AiisiString)
Предыдущая 124 125 126 127 128 129 .. 478 >> Следующая

Илон Маск рекомендует:  Что такое код bcmul

Встроенные константы Visual Basic

Читайте также:

  1. Basic Assumptions of Relevance Theory
  2. Basic compound of any real estate
  3. Basic elements of cadastral system
  4. Basic English [ for Computing 1 страница
  5. Basic English [ for Computing 10 страница
  6. Basic English [ for Computing 11 страница
  7. Basic English [ for Computing 12 страница
  8. Basic English [ for Computing 2 страница
  9. Basic English [ for Computing 3 страница
  10. Basic English [ for Computing 4 страница
  11. Basic English [ for Computing 5 страница
  12. Basic English [ for Computing 6 страница

Константы

Типы данных в Visual Basic

Для хранения результатов операций и промежуточных значений, как и в любом другом языке программирования, в Visual Basic используются переменные. Переменные хранятся в оперативной памяти компьютера, занимая, в зависимости от типа данных, разное количество памяти. В следующей таблице приведены базовые типы данных в Visual Basic 6.0:

Таблица 4.1. Типы данных

Тип Кол-во байт в памяти Диапазон допустимых значений Описание
Byte 1 байт От 0 до 255 Целочисленный беззнаковый тип
Boolean 2 байта True или False Болев тип
Integer 2 байта От -32 768 до 32 767 Целочисленный знаковый тип
Long 4 байта От -2 147 483 648 до 2 147 483 647 Целочисленный знаковый тип
Single 4 байта От -3,402823*10 38 до 3,402823*10 38 С плавающей запятой
Double 8 байт От -1,79769313486231*10 308 до 1,79769313486232*10 308 С плавающей запятой
Currency 8 байт От -922 337 203 685 477,5808 до 922 337 203 685 477,5807 С фиксированной запятой
Decimal 14 байт Любое число не более 28 цифр С фиксированной запятой
Date 8 байт От 1 января 100г. до 31 декабря 9999г.
Object 4 байта Ссылка на любой объект
String В зависимости от длинны строки Примерно до 2 миллионов символов
Variant В зависимости от хранимого типа Может хранить любой базовый тип

Константой называют элемент выражения, значение которого не изменяется в процессе выполнения программ. Приведем несколько примеров:

  • 75.07 — числовая константа ;
  • 2.7Е+6 — числовая константа (равна 2 700 000) ;
  • «Ошибка доступа к базе данных» — символьная константа ;
  • #8/12/1999# — константа типа дата ;
  • False — логическая константа.

Visual Basic содержит огромное количество встроенных констант практически для всех возможных случаев: цвета, клавиши, сообщения и т. п. Встроенные константы имеют префикс vb. Для поиска констант определенной категории воспользуйтесь браузером объектов (рис. 4), который открывается при нажатии кнопки Object Browser на стандартной панели инструментов.

Рисунок 4.1. Поиск встроенных констант с помощью браузера объектов

Встроенные константы Visual Basic не требуют объявления и могут быть использованы в любом месте приложения.

В следующем примере использована встроенная константа vbCritical для изменения внешнего вида окна сообщений:

MsgBox «Неверный параметр!», vbCritical

Дата добавления: 2014-12-23 ; Просмотров: 660 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Канал в Telegram

Вы здесь

Переменные и константы в VBA

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

Что такое переменные?

Переменная это некоторое выделенное пространство в памяти компьютера, которое может содержать данные разных типов – числовые, текстовые, логические и т.д. (о типах данных в VBA рассказано в этой статье), а так же результаты вычислений. Значение переменной присваивается с помощью знака равенства. Для удобства работы с переменными в языках программирования предусмотрена возможность задания человеко-понятных имен, к примеру, имена переменных rFIO, rBirthday. К именам переменных в VBA имеется ряд требований:

  • Переменная может содержать латинские символы, числа. Использование пробела и точки в имени переменной недопустимо (вместо пробела программисты используют знак «_»);
  • Имя переменной должно начинаться с текстового символа (числа в начале не допустимы);
  • Не допускается использование следующих символов: #, $, %, &, !. Эти символы в VBA зарезервированы за кратким указанием типа переменной без ее описания. К примеру: содержание символа $ (MyTxt$) в конце имени переменной указывает, что значение хранимое в этой переменной текстового типа;
  • Недопустимо использование зарезервированных слов. Если все ж для понимания назначения переменной необходимо использование в имени зарезервированного слова, то можно добавить некоторый символ или символы, например: Date зарезервировано (тип дата), для использования можно добавить «My», после чего получим допустимое — MyDate;
  • Имя переменной не должно быть длиннее 254 символов. Но я не думаю, что кому-то придет в голову для переменной задавать имя длиннее 15-20 символов, не говоря уже о 254;
  • Язык VB не чувствителен к регистру, поэтому переменные MyVar и myvar для VBA одинаковы.

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

Описание переменных в VBA

Под описанием переменной подразумевается указание типа данных. В VBA переменные можно указывать явным и неявным образом. Не явным образом означает, что Вы можете в любом месте кода указать имя переменной и начать с ней работать, в таком случае тип этой переменной принимается как Variant. Такой способ удобен, но не рекомендуется т.к. может возникнуть путаница и как следствие, ошибки при вычислениях. Явное описание осуществляется после ключевого слова Dim [имя переменной] As [Тип], например: Dim MyInt As Integer. В случае такого описания переменная MyInt будет хранить в памяти только значения целого типа.

Обязательное объявление всех переменных

Как уже говорилось выше переменные в VBA можно объявить, а можно и не объявлять. Со своей стороны я рекомендую объявлять каждую переменную, используемую в программе. Это позволить сделать код более понятным, дисциплинирует, и в крупных разработках позволит сэкономить память и увеличить быстродействие при обработке данных. Для того чтоб в VBA включить обязательное объявление всех переменных необходимо в начале модуля добавить строку: Option Explicit. После, на каждой не объявленной переменной будет происходить остановка программы, и отображаться ошибка до тех пор, пока всем переменным не будет присвоен тип в разделе Dim.

Примечание: Для того чтоб в VBE (Visual Basic Editor) оператор Option Explicit вставлялся автоматически в каждый новый модуль, необходимо в настройках редактора VBE активировать данную опцию: Tools-Options. , на вкладке Editor поставить галочку «Require Variable Declaration»

Константы в VBA

Константой называется значение, хранимое в памяти, которое в процессе работы программы не изменяется. Константы используются в тех случаях, когда в коде программы используется один и тот же параметр, число, строка и т.д. Для того чтоб обеспечить удобство изменения этих параметров при необходимости, в начале кода программы описываются константы и присваивается значение. Константы объявляются с помощью оператора Const. Например:

Const MyIntConst as Integer = 8
Const MyTxtConst as String = «Константа»

или без указания типа:
Const MyConst = 4,55
в этом случае константа типа Variant.

Внимание. В случае если при работе программы Вы захотите изменить значение константы, программа завершится ошибкой. Поэтому будьте внимательны. Так же, не допускается совпадение имен констант и переменных. Требования к именам констант такие же, как и к переменным.

Закрепим все вышесказанное примером небольшого макроса, который рассчитает функцию y = x+i*2, где x=i/7, 0 Работа с циклами While и Until в VBA

Reference for unit ‘System’: Constants

Custom abstract error handling procedure

File mask for all files on the current platform

Set of characters considered directory separators

Set of characters considered drive separators

Custom assert error handling procedure

Standard backtrace formatting routine

ANSI code page identifier

US-ASCII code page identifier

No known code page

OEM code page identifier

UTF-16 code page identifier

Big-endian UTF-16 code page identifier

UTF-7 code page identifier

UTF-8 code page identifier

Determine whether CTRL-Z marks the end of file.

Default size for a new thread’s stack (4MiB by default).

Default line ending style.

Character used to separate directory parts.

Character used to separate directory parts.

Address where the last error occurred.

Last error code.

Custom error handling procedure.

Callback used to determine the exception class for an OS exception

Callback used to convert OS exceptions to FPC exceptions

Current exception handling procedure.

Exit procedure pointer.

Character which separates the filename from the file extension.

Interface call result: Error: not an interface

Interface call result: Interface not implemented

Interface call result: Unexpected error

Default file mode for untyped files.

OS preserves case in filenames when creating or renaming entries.

OS treatment of filenames is case sensitive.

Maximum filename size

IEC/IEEE floating-point exception flag: ?

IEC/IEEE floating-point exception flag: Division by zero error

IEC/IEEE floating-point exception flag: ?

IEC/IEEE floating-point exception flag: Invalid operation error

IEC/IEEE floating-point exception flag: Overflow error

IEC/IEEE floating-point exception flag: Underflow error

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL