Vba dim что это
Оператор Dim
Объявляет переменные и распределяет дисковое пространство.
Синтаксис
Dim [ WithEvents ] varname [ ( [ subscripts ] ] ] [ As [New ] type ] [ [ WithEvents ] varname [ subscripts] ] ] [ As [ New ] type ].
Синтаксис оператора Dim состоит из следующих частей:
Если явно не указано в нижней части, нижняя граница массива контролируется заявлением Option Base. Если оператор Option Base не задан, нижняя граница равна нулю.
Примечания
Переменные, объявляемые с помощью оператора Dim на уровне модуля, доступны всем процедурам внутри этого модуля. На уровне процедуры переменные доступны только внутри соответствующей процедуры.
Чтобы объявить тип данных переменной, используйте заявление Dim на уровне модуля или процедуры. Например, следующий оператор объявляет переменную с типом Integer.
Также используйте оператор Dim для объявления типа объекта переменной. В следующем примере объявляется переменная для нового экземпляра листа.
Если ключевое слово New не используется при объявлении переменной объекта, переменная, ссылающаяся на объект, должна быть назначена существующему объекту с помощью утверждения Set перед его использованием. Пока она не назначена объекту, объявленная объектная переменная имеет особое значение Nothing, указывающее на отсутствие ссылки на какой-либо конкретный экземпляр объекта.
Вы можете также использовать оператор Dim с пустыми скобками для объявления динамического массива. Объявив динамический массив, используйте заявление ReDim в процедуре, чтобы определить количество измерений и элементов в массиве. Если вы пытаетесь перенастроить измерение для переменной массива, размер которой был явно указан в частном, публичном или дим-заявлении, возникает ошибка.
Если вы не указываете тип данных или тип объекта, а в модуле нет Def_type_, переменная по умолчанию является Variant. При инициализации переменных числовой переменной присваивается значение 0, строке переменной длины — строка нулевой длины («»), а строка фиксированной длины заполняется нулями. Переменные типа Variant при инициализации получают значение Empty. Каждый элемент переменной определяемого пользователем типа инициализируется как отдельная переменная.
Когда оператор Dim используется в процедуре, обычно этот оператор Dim располагают в начале этой процедуры
Пример
В этом примере показывается, как используется оператор Dim для объявления переменных. В нем также показывается, как оператор Dim используется для объявления массивов. Нижний предел по умолчанию для подскрипников массива — 0 и может быть переопределен на уровне модуля с помощью утверждения Option Base.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
VBA Dim
Excel VBA Dim
DIM в VBA можно назвать, так как он объявляет переменную в различных типах данных, таких как целочисленная логическая строка или double и т. Д. В любом языке программирования переменная должна быть объявлена определенному типу данных, например, X является переменной, и если мы определяем X как целое число, которое означает, что мы можем хранить целочисленные значения в X. Теперь, если мы объявим Y как строку, это означает, что мы можем хранить строковые значения в Y.
Как обсуждалось выше, DIM в VBA используется для объявления переменных разных типов данных. Но что такое DIM в VBA? DIM означает измерение или объявить в памяти в VBA. Мы объявляем переменную для определенного типа данных в VBA, мы используем ключевое слово DIM, чтобы сделать это. Мы можем использовать структуры классов, уже встроенные в VBA, или сами можем создать новую. Чтобы дать очень простое объяснение DIM, мы можем взять это в качестве примера, например, нам нужно хранить логические значения в переменной. Логические значения означают, что они либо истинны, либо ложны. Теперь логические значения, как мы знаем, являются логическими в типах данных, поэтому нам нужно объявить нашу переменную в логическом типе данных.
Если мы говорим, что переменная X должна хранить значение в логическом значении, нам нужно объявить X как логическую переменную, чтобы она могла хранить желаемый тип данных.
Использование DIM с синтаксисом в VBA выглядит следующим образом:
Переменная DIM As DataType.
Когда мы пытаемся определить конкретный тип данных, Excel предварительно вводит его для нас.
Посмотрите на скриншот ниже,
Excel определяет по ключевым словам, которые мы вводим, и отображает возможные типы данных, которые мы могли бы использовать.
Как использовать VBA Dim в Excel?
Мы научимся использовать VBA Dim на нескольких примерах в Excel.
Во-первых, давайте использовать Integer в качестве типа данных для объявления. Мы будем использовать три переменные и объявим каждую из них как целые числа, используя ключевое слово DIM. И тогда мы будем отображать окончательный результат.
Подсказка. Чтобы использовать VBA в Excel, нам нужно включить доступ для разработчиков с помощью учетной записи на вкладке «Файл».
Шаг 1. Перейдите на вкладку « Разработчик » и щелкните Visual Basic, чтобы открыть редактор VBA.
Шаг 2: В окне проекта нажмите на лист 1, чтобы открыть окно кода.
Шаг 3: Когда откроется окно кода, чтобы объявить подфункцию, чтобы начать писать код.
Шаг 4: Объявите три переменные A, B и C как целые числа.
Шаг 5: присвойте этим трем переменным любые случайные значения.
Шаг 6: Показать значения C с помощью функции msgbox.
Шаг 7: Запустите код с помощью кнопки запуска. Как только мы запустим код, мы получим следующий результат в качестве вывода.
Шаг 8: Поскольку A, B и C были объявлены как целое число, а сумма A и B также является целым числом, может отображаться значение, сохраненное в C. Но если мы изменим значение C = A / B, как показано на скриншоте ниже.
Шаг 9: Теперь давайте снова запустим код и посмотрим, что мы получим в результате,
В результате мы получаем ноль, но 5/10 равен 0, 5, а не 0. Это потому, что C может хранить только целые значения, а не значения после десятичной дроби.
В предыдущем примере мы видели, что если значение результата в C находится в десятичных числах, значения после десятичных чисел не отображаются в выходных данных, потому что мы объявили C как целое число. Теперь мы будем использовать другой тип данных для объявления из функции DIM для отображения исходного значения C.
Шаг 1. Перейдите на вкладку « Разработчик » и щелкните Visual Basic, чтобы открыть редактор VBA.
Шаг 2: В окне проекта нажмите на Лист 2, чтобы открыть окно кода.
Шаг 3: Как только окно кода открыто, создайте подфункцию, чтобы начать писать код.
Шаг 4: Объявите три переменные AB и C. Объявите A и B как целые числа, а C как двойные.
Шаг 5: Аналогично примеру 1 присвойте значения этим переменным.
Шаг 6: Теперь отобразите вывод с помощью функции msgbox.
Шаг 7: Запустите код с кнопки запуска. Запустив код, мы получим следующий результат:
Теперь у нас есть точное значение C, которое составляет 0, 5.
Давайте использовать функцию DIM для хранения символов означает строки.
Шаг 1. Перейдите на вкладку « Разработчик » и щелкните Visual Basic, чтобы открыть редактор VBA.
Шаг 2: В окне проекта нажмите на Лист 3, чтобы открыть окно кода.
Шаг 3: Создайте подфункцию, чтобы начать писать код,
Шаг 4: Объявите переменную A как строку,
Шаг 5: Присвойте любые случайные значения A,
Шаг 6: Показать вывод с помощью функции msgbox.
Шаг 7: Запустите код из предоставленной кнопки запуска и посмотрите результат,
Объяснение VBA DIM
DIM в VBA используется для объявления переменных как различных типов данных. Переменные могут быть единственной переменной или массивом, который мы должны иметь в виду, чтобы объявить правильный тип данных для получения правильного вывода.
Например, если наши выходные данные будут в String, нам нужно объявить переменную в String, а если выходные данные будут в десятичных числах, то объявить переменную как double и т. Д.
То, что нужно запомнить
Есть несколько вещей, которые мы должны помнить о DIM в VBA:
Рекомендуемые статьи
Что такое переменная и как правильно её объявить?
Для чего нужна переменная? Чтобы хранить значение и применить его позже в любой момент. Например, в ячейке А1 записана сумма, а нажатием на кнопку запускается обновление отчета. После обновления отчета сумма в А1 изменится. Необходимо сверить сумму до обновления с суммой после и в зависимости от этого сделать какое-либо действие. Переменная как раз позволит запомнить значение ячейки до того, как она обновится и использовать именно это значение после обновления.
Требования к переменным:
В качестве имен переменных можно использовать символы букв и числа, но первой в имени переменной всегда должна быть буква. Не допускается использование точки, запятой, пробела и иных знаков препинания, кроме нижнего подчеркивания. Длина имени не должна превышать 254 символов. Так же нельзя использовать в качестве имен для переменных зарезервированные константы редактора VBA(например Sub, Msgbox, ubound, Date и т.п.). Так же для переменных неважен регистр букв.
Теперь рассмотрим основные декларированные в VBA типы данных, которые можно хранить в переменных:
Dim rRange as Range ‘назначили переменной тип ячейка/диапазон Set rRange = Range(«A1») ‘присвоили ссылку на ячейку A1 текущего листа
Про объявление переменных подробно написано чуть ниже.
А более подробно про обращение к диапазонам из VBA можно почитать в этой статье: Как обратиться к диапазону из VBA
[оператор области действия] Имя_переменной As [тип данных]
Очень частая ошибка при объявлении переменных, совершаемая начинающими изучать VBA:
Dim MyVar1, MyVar2, MyVar3 As Integer
Dim MyVar1 As Integer, MyVar2 As Integer, MyVar3 As Integer
Dim MyVar1%, MyVar2%, MyVar3%
Option Explicit Sub main() Public MyVariable As String MyVariable = «Глобальная переменная» ‘показываем текущее значение переменной MsgBox MyVariable ‘пробуем изменить значение переменной Call sub_main ‘показываем измененное значение переменной MsgBox MyVariable End Sub ‘доп.процедура изменения значения переменной Sub ChangeMyVariable() MyVariable = «Изменили её значение» End Sub
Как правильно назвать переменную:
Префикс | Тип хранимых данных |
---|---|
b | Boolean |
bt | Byte |
i | Integer |
l | Long |
s | Single |
d | Double |
c | Currency |
dt | Date |
str | String |
obj | Object |
v | Variant |
Лично я немного для себя её переделал, т.к. некоторые обозначения мне кажутся скудными. Например Double я обозначаю как dbl, а Single как sgl. Это мне кажется более наглядным.
В чем еще плюс явного указания префикса данных. В VBA есть такие операторы как Def, при помощи которых можно указать тип данных по умолчанию для переменных, первая буква имени которых попадает в заданный в операторе диапазон. Например:
DefBool B Sub test() Dim bCheck End Sub
DefBool B-C Sub test() Dim bCheck, cCheck End Sub
Но я считаю, что одной буквы для одного типа вполне достаточно. Можно задать сразу несколько операторов Def.
DefBool B DefStr S Sub test() Dim bCheck, sCheck End Sub
Небольшой пример использования переменных в кодах:
Просмотреть пошагово выполнение данного кода поможет статья: Отлов ошибок и отладка кода VBA
Важно! Назначение значений переменным задается при помощи знака равно(=). Однако, есть небольшой нюанс: для переменных типа Object (а так же других объектных типов(Workbook, Worksheet, Range, Cells, Chart и т.п.)) присвоение идет при помощи ключевого оператора Set :
‘присвоили переменной rRange ссылку на текущую выделенную ячейку Set rRange = Selection
Это так же распространяется на все другие объекты. Т.е. те переменные, значения которым назначаются через оператор Set.
Для других же типов Set не нужен и в переменную значение заносится без этих нюансов.
Const sMyConst As String = «Имя моей программы»
Во всем остальном объявление и применение констант идентично объявлению переменных. Коротко приведу пару примеров.
Если константа объявлена внутри процедуры:
Sub TestConst() Const sMyConst As String = «Имя моей программы» MsgBox sMyConst ‘показываем сообщение с именем программы End Sub
то она не может быть использована в другой процедуре:
Sub TestConst() Const sMyConst As String = «Имя моей программы» MsgBox sMyConst ‘показываем сообщение с именем программы End Sub Sub TestConst2() MsgBox sMyConst ‘вызовет ошибку Variable not defined End Sub
Чтобы использовать одну константу во всех процедурах модуля(того, в котором она объявлена), необходимо объявить её в области объявлений:
Const sMyConst As String = «Имя моей программы» Sub TestConst() MsgBox sMyConst ‘показываем сообщение с именем программы End Sub Sub TestConst2() MsgBox sMyConst ‘уже не вызовет ошибку Variable not defined End Sub
Чтобы использовать одну константу во всех процедурах проекта(книги), необходимо объявить её как Public:
Public Const sMyConst As String = «Имя моей программы» Sub TestConst() MsgBox sMyConst ‘показываем сообщение с именем программы End Sub Sub TestConst2() MsgBox sMyConst ‘не вызовет ошибку Variable not defined, даже если процедура в другом модуле End Sub
Статья помогла? Поделись ссылкой с друзьями!
Общие сведения о синтаксисе Visual Basic
В синтаксисе, который описан в разделе справки Visual Basic, посвященном методам, функциям и операторам, показаны все элементы, необходимые для их правильного использования. Примеры в этой теме поясняют, как интерпретировать наиболее часто используемые элементы синтаксиса.
Синтаксис метода Activate
object.Activate
В синтаксисе метода Activate слово «object», написанное курсивом, является заполнителем для предоставляемых данных в данном случае это код, возвращающий объект. Необходимо четко придерживаться написания слов, выделенных полужирным шрифтом. Например, следующая процедура активирует второе окно в активном документе.
Синтаксис функции MsgBox
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
В синтаксисе функции MsgBox выделенные курсивом слова являются именованными аргументами функции. Аргументы, заключенные в квадратные скобки, использовать не обязательно. (Не используйте квадратные скобки в коде Visual Basic). Единственный обязательный аргумент для функции MsgBox это текст для приглашения.
Аргументы функций и методов можно указывать в коде двумя способами: по позиции или по имени. Чтобы указать аргументы по позиции, придерживайтесь порядка, представленного в синтаксисе, отделяя каждый аргумент запятой, например:
Чтобы указать аргументы по имени, необходимо после имени аргумента поставить двоеточие и знак равенства (:=), а затем задать значение аргумента. Именованные аргументы можно указывать в любом порядке, например:
Синтаксис функций и некоторых методов содержит аргументы, заключенные в скобки. Это необходимо для присвоения значения переменной, так как эти функции и методы возвращают значения. Не используйте скобки, если вы не учитываете возвращаемое значение или не передаете аргументы. Не нужно заключать в скобки аргументы методов, которые не возвращают никаких значений. Эти рекомендации подходят как для позиционных, так и для именованных аргументов.
Синтаксис оператора Option Compare
В синтаксисе оператора Option Compare фигурные скобки и вертикальная черта обозначают обязательный выбор между тремя элементами. (Не используйте фигурные скобки в операторе Visual Basic). Например, этот оператор указывает, что строки модуля будут сравниваться в порядке сортировки без учета регистра.
Синтаксис оператора Dim
В синтаксисе оператора Dim слово Dim является необходимым ключевым словом. Единственным обязательным элементом является элемент varname (имя переменной).
В приведенном ниже примере показано объявление переменной типа String. Добавление типа данных экономит память и помогает находить ошибки в коде.
Чтобы объявить несколько переменных в одном операторе, включите тип данных для каждой переменной. Переменным, объявленным без типа данных, автоматически назначается тип Variant.
В представленном ниже операторе переменным x и y назначается тип данных Variant. Переменная z является единственной, которой присваивается тип данных Integer.
Сокращение для объявления переменных x и y типом Integer в приведенном выше операторе
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Dim statement
Declares variables and allocates storage space.
Syntax
The Dim statement syntax has these parts:
When not explicitly stated in lower, the lower bound of an array is controlled by the Option Base statement. The lower bound is zero if no Option Base statement is present.
The New keyword can’t be used to declare variables of any intrinsic data type or to declare instances of dependent objects, and it can’t be used with WithEvents.
Remarks
Variables declared with Dim at the module level are available to all procedures within the module. At the procedure level, variables are available only within the procedure.
Use the Dim statement at the module or procedure level to declare the data type of a variable. For example, the following statement declares a variable as an Integer.
Also use a Dim statement to declare the object type of a variable. The following declares a variable for a new instance of a worksheet.
If the New keyword is not used when declaring an object variable, the variable that refers to the object must be assigned an existing object by using the Set statement before it can be used. Until it is assigned an object, the declared object variable has the special value Nothing, which indicates that it doesn’t refer to any particular instance of an object.
You can also use the Dim statement with empty parentheses to declare a dynamic array. After declaring a dynamic array, use the ReDim statement within a procedure to define the number of dimensions and elements in the array. If you try to redeclare a dimension for an array variable whose size was explicitly specified in a Private, Public, or Dim statement, an error occurs.
If you don’t specify a data type or object type, and there is no Def_type_ statement in the module, the variable is Variant by default. When variables are initialized, a numeric variable is initialized to 0, a variable-length string is initialized to a zero-length string («»), and a fixed-length string is filled with zeros. Variant variables are initialized to Empty. Each element of a user-defined type variable is initialized as if it were a separate variable.
When you use the Dim statement in a procedure, you generally put the Dim statement at the beginning of the procedure.
Example
This example shows the Dim statement used to declare variables. It also shows the Dim statement used to declare arrays. The default lower bound for array subscripts is 0 and can be overridden at the module level by using the Option Base statement.
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.