что такое dim в 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:
Рекомендуемые статьи
Общие сведения о синтаксисе 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. Оператор объявления может быть помещен внутрь процедуры для создания переменной на уровне процедуры. Или он может быть помещен в начале модуля в разделе объявлений, чтобы создать переменную на уровне модуля.
В примере ниже создается переменная и указывается тип данных «String».
Если данный оператор отображается в процедуре, переменная strName может использоваться только в этой процедуре. Если же оператор отображается в разделе объявлений модуля, переменная strName доступна для всех процедур данного модуля, но недоступна для процедур других модулей проекта.
Чтобы предоставить доступ к переменной всем процедурам проекта, перед ней нужно поставить оператор Public, как показано в примере ниже:
Дополнительные сведения об именовании переменных см. в статье Правила именования в Visual Basic.
Переменные могут быть объявлены одним из следующих типов данных: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (для строк переменной длины), String * length (для строк фиксированной длины), Object или Variant. Если тип данных не указан, по умолчанию присваивается тип Variant. Вы также можете создать определяемый пользователем тип с помощью оператора Type.
Вы можете объявить несколько переменных в одном операторе. Чтобы указать тип данных, необходимо задать тип данных для каждой переменной.
В приведенном ниже операторе intX и intY объявлены как Variant и только intZ объявлен как тип Integer.
Нет необходимости указывать тип данных переменной в операторе объявления. Если вы не укажите тип данных, переменной будет присвоен тип Variant.
Сокращение для объявления переменных x и y типом Integer в приведенном выше операторе
Оператор Public
Оператор Public используется для объявления общих переменных на уровне модуля.
Общие переменные могут использоваться в любой процедуре проекта. Если общая переменная объявлена в стандартном модуле или модуле класса, она может использоваться в любых проектах, содержащих ссылку на проект, в котором объявлена данная общая переменная.
Оператор Private
Оператор Private используется для объявления частных переменных на уровне модуля.
Частные переменные могут использоваться только процедурами одного модуля.
На уровне модуля оператор Dim является эквивалентным оператору Private. Вы можете использовать оператор Private, чтобы упростить чтение и интерпретацию кода.
Оператор Static
Если для объявления переменной в процедуре используется оператор Static вместо оператора Dim, объявленная переменная сохраняет свое значение между вызовами в этой процедуре.
Оператор Option Explicit
В Visual Basic можно неявно объявить переменную, просто используя оператор присвоения значения. Все неявно объявленные переменные относятся к типу Variant. Для переменных типа Variant требуется больший объем памяти, чем для большинства других переменных. Приложение будет работать эффективнее, если переменные будут явно объявленными и им будет присвоен определенный тип данных. Явное объявление переменных снижает вероятность возникновения ошибок, вызванных конфликтом имен или опечатками.
Если вы не хотите, чтобы в Visual Basic были неявные объявления, то оператор Option Explicit должен стоять в модуле перед всеми процедурами. Этот оператор требует явного объявления всех переменных модуля. Если модуль содержит оператор Option Explicit, то при обнаружении необъявленной ранее переменной или опечатки в ее имени Visual Basic выдаст ошибку времени компиляции.
В программной среде Visual Basic имеется возможность задавать параметр, который будет автоматически включать оператор Option Explicit во все новые модули. Справочная информация по изменению параметров среды Visual Basic предоставлена в документации приложения. Обратите внимание, что данный параметр не меняет уже написанный код.
Статические и динамические массивы нужно объявлять в явном виде.
Объявление объектной переменной для автоматизации
При использовании приложения для управления объектами другого приложения необходимо указать ссылку на библиотеку типов этого другого приложения. Когда ссылка указана, можно объявлять объектные переменные в соответствии с наиболее подходящими для них типами. Например, если вы указываете ссылку на библиотеку типов Microsoft Excel при работе в Microsoft Word, то можете объявить переменную типа Worksheet внутри Word, чтобы она представляла объект Worksheet приложения Excel.
При использовании другого приложения для управления объектами Microsoft Access, как правило, можно объявлять объектные переменные согласно наиболее подходящим для них типам. Вы можете также использовать ключевое слово New для автоматического создания нового экземпляра объекта. Однако может возникнуть необходимость указать, что объект принадлежит Microsoft Access. Например, при объявлении объектной переменной, представляющей форму Access внутри Visual Basic, необходимо сделать различимыми объект Form приложения Access и объект Form приложения Visual Basic. Для этого следует включать имя библиотеки типов в объявление переменной, как показано в примере ниже:
Некоторые приложения не распознают отдельные объектные типы Access. Даже если в этих приложениях указана ссылка на библиотеку типов Access, все объектные переменные Access необходимо объявлять с типом Object. Также невозможно использовать ключевое слово New для создания нового экземпляра объекта.
В примере ниже показано, как объявлять переменную, представляющую экземпляр объекта Application Access в приложении, которое не распознает объектные типы Access. Затем приложение создает экземпляр объекта Application.
В документации приложения предоставлена информация о поддерживаемом им синтаксисе.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Оператор Dim (Visual Basic)
Объявляет и выделяет дисковое пространство для одной или нескольких переменных.
Синтаксис
Компоненты
Необязательный элемент. См. список атрибутов.
Необязательный элемент. Может применяться один из перечисленных ниже типов.
Необязательный элемент. См. раздел Shared.
Необязательный элемент. См. раздел Shadows.
Необязательный элемент. См. раздел static.
Необязательный элемент. См. раздел ReadOnly.
Необязательный элемент. Указывает, что это переменные объекта, которые ссылаются на экземпляры класса, которые могут создавать события. См. раздел WithEvents.
Обязательный элемент. Список переменных, объявляемых в этой инструкции.
Каждый элемент variable имеет перечисленные ниже синтаксис и компоненты.
Комментарии
компилятор Visual Basic использует Dim инструкцию для определения типа данных переменной и других сведений, например кода, который может получить доступ к переменной. В следующем примере объявляется переменная для хранения Integer значения.
Можно указать любой тип данных или имя перечисления, структуры, класса или интерфейса.
Переменную можно объявить в процедуре, блоке, классе, структуре или модуле. Нельзя объявить переменную в исходном файле, пространстве имен или интерфейсе. Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию.
Если Option Explicit параметр имеет значение On (значение по умолчанию), компилятору требуется объявление для каждой используемой переменной. Дополнительные сведения см. в разделе оператор Option Explicit.
Указание начального значения
Определение типа применяется на уровне процедуры. Он не применяется за пределами процедуры в классе, структуре, модуле или интерфейсе. Дополнительные сведения о выводе типа см. в разделе Option Infer и определение локального типа.
Сведения о том, что происходит, если не указан тип данных или инициализатор, см. в подразделе типы данных и значения по умолчанию далее в этой статье.
Инициализатор объекта можно использовать для объявления экземпляров именованных и анонимных типов. Следующий код создает экземпляр Student класса и использует инициализатор объекта для инициализации свойств.
Объявление нескольких переменных
Можно объявить несколько переменных в одном операторе объявления, указав имя переменной для каждой из них, и после каждого имени массива с круглыми скобками. Переменные разделяются запятыми.
Если объявить более одной переменной с одним As предложением, вы не сможете предоставить инициализатор для этой группы переменных.
Можно указать различные типы данных для разных переменных, используя отдельное As предложение для каждой объявляемой переменной. Каждая переменная принимает тип данных, указанный в первом As предложении, обнаруженном после его variablename части.
Массивы
Можно объявить переменную для хранения массива, который может содержать несколько значений. Чтобы указать, что переменная содержит массив, сразу после нее следует использовать variablename круглые скобки. Дополнительные сведения см. в руководстве по работе с массивами.
Можно указать нижнюю и верхнюю границы каждого измерения массива. Для этого добавьте в boundslist круглые скобки. Для каждого измерения объект boundslist задает верхнюю границу и, при необходимости, нижнюю границу. Нижняя граница всегда равна нулю, независимо от того, указана она или нет. Каждый индекс может изменяться от нуля до значения его верхней границы.
Следующие две инструкции эквивалентны. Каждый оператор объявляет массив из 21 Integer элемента. При доступе к массиву индекс может изменяться от 0 до 20.
Массив может иметь размер от 1 до 32.
Все границы в объявлении массива можно оставить пустыми. В этом случае массив имеет указанное число измерений, но не инициализировано. Он имеет значение Nothing до тех пор, пока не будет инициализировано по крайней мере часть его элементов. В Dim инструкции должны быть указаны границы для всех измерений или для отсутствия измерений.
Если массив имеет более одного измерения, необходимо включить запятые между круглыми скобками, чтобы указать количество измерений.
Значения массива можно инициализировать с помощью литерала массива. Для этого заключите значения инициализации в фигурные скобки ( <> ).
Для многомерных массивов инициализация каждого отдельного измерения заключается в фигурные скобки во внешнем измерении. Элементы задаются в построчном порядке.
Дополнительные сведения о литералах массивов см. в разделе массивы.
Типы данных и значения по умолчанию
Если параметр Option Strict включен, возникает ошибка времени при компиляции.
Если параметр Option Infer отключен, а параметр Option Strict включен, возникает ошибка времени компиляции.
если указать тип данных, но не указать инициализатор, Visual Basic инициализирует переменную как значение по умолчанию для ее типа данных. В следующей таблице приведены значения инициализации по умолчанию.
Каждый элемент структуры инициализируется так, как если бы он был отдельной переменной. Если вы объявили длину массива, но не инициализируйте его элементы, каждый элемент инициализируется так, как если бы он был отдельной переменной.
Время существования статической локальной переменной
Объявление процедуры | Переменная инициализирована | Переменная останавливается |
---|---|---|
В модуле | При первом вызове процедуры | При остановке выполнения программы |
В классе или структуре процедура Shared | При первом вызове процедуры либо в определенном экземпляре, либо в самом классе или структуре. | При остановке выполнения программы |
В классе или структуре процедура не Shared | При первом вызове процедуры в определенном экземпляре | Когда экземпляр выпускается для сборки мусора (GC) |
Атрибуты и модификаторы
Атрибуты можно применять только к переменным члена, а не к локальным переменным. Атрибут вносит сведения в метаданные сборки, что не имеет смысла для временного хранения, например локальных переменных.
Код за пределами класса, структуры или модуля должен уточнять имя переменной-члена именем этого класса, структуры или модуля. Код за пределами процедуры или блока не может ссылаться на локальные переменные в этой процедуре или блоке.
Освобождение управляемых ресурсов
Если класс принадлежит особому ценному и ограниченному ресурсу (например, к подключению к базе данных или файлу), может возникнуть необходимость в ожидании следующей сборки мусора для очистки экземпляра класса, который больше не используется. Класс может реализовать интерфейс, IDisposable чтобы предоставить способ освобождения ресурсов перед сборкой мусора. Класс, реализующий этот интерфейс, предоставляет Dispose метод, который может быть вызван для немедленного освобождения ценных ресурсов.
Using Инструкция автоматизирует процесс получения ресурса, выполнения набора инструкций и последующего удаления ресурса. Однако ресурс должен реализовывать IDisposable интерфейс. Дополнительные сведения см. в разделе Оператор using.
Пример 1
В следующем примере переменные объявляются с помощью Dim инструкции с различными параметрами.
Пример 2
В следующем примере выводятся простые числа от 1 до 30. Область локальных переменных описывается в разделе Комментарии к коду.
Пример 3
В следующем примере speedValue переменная объявляется на уровне класса. Private Ключевое слово используется для объявления переменной. Доступ к переменной может осуществляться любой процедурой в Car классе.