Общие сведения о типах данных excel vba (переменные и константы)

Excel vba tutorial part 2 - vba variables & constants

Введение[править]

Для того, чтобы войти в надстройку Visual Basic for Applications и использовать её, нажмите Alt+F11 (более универсальный вариант) или выберите команду
Вид → Макросы (→ Макросы) → Создать. При этом в поле «Находится в» должно стоять значение «Эта книга» (текущая открытая книга) или «Название_имеющейся_книги», чтобы надстройка могла быть связана с данной книгой, используемой в настоящий момент.

Пусть мы создали макрос с именем My в книге Книга1. Появится окно редактирования и отладки программ, приведённое на рис. 3. В папке Modules мы увидем компонент Module1, в котором находится процедура My. Первоначально тело процедуры не заполнено и вся процедура выглядит так:

Submy()

EndSub

Мы создали модуль Module1, содержащий процедуру My, который можно использовать в любой книге. Мы можем также создать модуль внутри данной книги. Для этого необходимо два раза нажать на меню «ЭтаКнига» («ThisWorkbook»).
Создадим внутри книги процедуру Hello_World, которая выводит типичное для программистов сообщение «Hello World!» (по-русски — «Здравствуй, мир!»)
В поле General (Общая область) введём следующий код:

SubHello_World()
MsgBox"Hello World!"
EndSub

Выполним программу. Для этого необходимо нажать клавишу F5 либо кнопку со стрелкой на панели инструментов Visual Basic. На экране мы увидим окно с надписью Hello World! и кнопкой ОК. Нажмём ОК — окно исчезнет, программа завершит свою работу и мы вернёмся в окно редактирования Visual Basic.

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

Примечание переводчика: Говоря о переменных в VBA, стоит упомянуть ещё один очень важный момент. Если мы объявляем переменную, но не присваиваем ей какое-либо значение, то она инициализируется значением по умолчанию: • текстовые строки — инициализируются пустыми строками; • числа — значением 0; • переменные типа Boolean — False; • даты — 30 декабря 1899.

Прежде чем использовать переменную или константу, её нужно объявить. Для этого в макрос добавляют вот такую простую строку кода:

В показанной выше строке кода Имя_Переменной – это имя переменной, которая будет использована в коде, а Тип_Данных – это один из типов данных из таблицы, приведённой чуть ранее в этой статье. Например:

Dim sVAT_Rate As Single
Dim i As Integer

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

Const iMaxCount = 5000
Const iMaxScore = 100

Объявлять переменные в Excel не обязательно. По умолчанию все введённые, но не объявленные переменные в Excel будут иметь тип Variant и смогут принять как числовое, так и текстовое значение.

Таким образом, программист в любой момент сможет использовать новую переменную (даже если она не была объявлена), и Excel будет рассматривать её как переменную типа Variant. Однако, есть несколько причин, почему так поступать не следует:

  1. Использование памяти и скорость вычислений. Если не объявлять переменную с указанием типа данных, то по умолчанию для неё будет установлен тип Variant. Этот тип данных использует больше памяти, чем другие типы данных.Казалось бы, несколько лишних байт на каждую переменную – не так уж много, но на практике в создаваемых программах могут быть тысячи переменных (особенно при работе с массивами). Поэтому излишняя память, используемая переменными типа Variant, по сравнению с переменными типа Integer или Single, может сложится в значительную сумму.К тому же, операции с переменными типа Variant выполняются гораздо медленнее, чем с переменными других типов, соответственно лишняя тысяча переменных типа Variant может значительно замедлить вычисления.
  2. Профилактика опечаток в именах переменных. Если все переменные объявляются, то можно использовать оператор VBA — Option Explicit (о нём расскажем далее), чтобы выявить все не объявленные переменные.Таким образом исключается появление в программе ошибки в результате не верно записанного имени переменной. Например, используя в коде переменную с именем sVAT_Rate, можно допустить опечатку и, присваивая значение этой переменной, записать: «VATRate = 0,175». Ожидается, что с этого момента, переменная sVAT_Rate должна содержать значение 0,175 – но, конечно же, этого не происходит. Если же включен режим обязательного объявления всех используемых переменных, то компилятор VBA сразу же укажет на ошибку, так как не найдёт переменную VATRate среди объявленных.
  3. Выделение значений, не соответствующих объявленному типу переменной. Если объявить переменную определённого типа и попытаться присвоить ей данные другого типа, то появится ошибка, не исправив которую, можно получить сбой в работе программы.На первый взгляд, это может показаться хорошей причиной, чтобы не объявлять переменные, но на самом деле, чем раньше выяснится, что одна из переменных получила не те данные, которые должна была получить – тем лучше! Иначе, если программа продолжит работу, результаты могут оказаться неверными и неожиданными, а найти причину ошибок будет гораздо сложнее.Возможно также, что макрос будет «успешно» выполнен. В результате ошибка останется незамеченной и работа продолжится с неверными данными!

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

Суффиксы в именах переменных

Переменные в VBA Excel могут быть объявлены с одним из следующих типов данных: Byte, Boolean, Integer, Long, Single, Double, Currency, Date, String (для строк переменной или фиксированной длины), Object или Variant. Если при объявлении переменной тип данных не указан, по умолчанию присваивается тип Variant.

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

Символы, назначенные типам данных:

  • % – Integer;
  • & – Long;
  • ! – Single;
  • # – Double;
  • @ – Currency;
  • $ – String.

Данные

Определение 1

Данные – это элементарные конструкции языка.

Типы данных делятся на простые (или скалярные) и сложные (или структурированные). Простые типы данных подразделяются на числовые, строковые и логические.
Структурированный тип данных массив – $n$-мерная совокупность индексированных переменных одного типа. Массиву присваивается имя. Массив состоит из элементов (переменных), которые в памяти размещаются последовательно. Обращение в программе ко всему массиву производится по его имени. Для обращения к конкретному элементу массива необходимо указать его имя и в круглых скобках – индекс (номер) массива. Все элементы массива имеют одно имя, но различные номера (положения) в массиве.

В VBA используются 11 стандартных типов данных и пользовательский тип данных, их характеристики приведены в таблице ниже.

Различные типы данных введены для рационального использования памяти ЭВМ. Наиболее часто начинающие программисты используют типы данных Integer (для целых чисел) и Single (для дробных чисел).

Символьные (строковые, текстовые) данные должны заключаться в кавычки: ″1-я пара″, ″лекция″.

Dim действительно требуется?

Ответ в том, что это не обязательно. VBA не требует от вас
использовать Dim Statement.

Однако не использовать оператор Dim — плохая практика и
может привести к множеству проблем.

Вы можете использовать переменную без предварительного
использования оператора Dim. В этом случае переменная автоматически будет типом
варианта.

Это может привести к таким проблемам, как

  1. Все переменные являются вариантами (проблемы с
    этим см. В разделе «Варианты»).
  2. Некоторые переменные ошибки останутся
    незамеченными.

Из-за этих проблем рекомендуется сделать использование Dim
обязательным в нашем коде. Мы делаем это с помощью оператора Option Explicit.

Option Explicit

 Мы можем сделать Dim
обязательным в модуле, набрав «Option Explicit» в верхней части модуля.

Мы можем сделать это автоматически в каждом новом модуле,
выбрав Tools-> Options из меню и отметив флажок «Требовать декларацию
переменной». Затем, когда вы вставите новый модуль, «Option Explicit» будет
автоматически добавлен в начало.

Давайте посмотрим на некоторые ошибки, которые могут
остаться незамеченными, если мы не будем использовать Dim.

Ошибки Переменной

В приведенном ниже коде мы используем переменную Total без использования оператора Dim.

Sub BezDim()

    Total = 6
    
    Total = Total + 1
    
    Debug.Print Total

End Sub

Если мы случайно написали Total неправильно, VBA сочтет это
новой переменной.

В приведенном ниже коде мы неправильно написали переменную Total как Totall.

Sub BezDimOshibki()

    Total = 6
    
    ' Первый Total - это ошибка
    Totall = Total + 1
    
    ' напечатает 6 вместо 7
    Debug.Print Total

End Sub

VBA не обнаружит ошибок в коде, и будет напечатано неверное
значение.

Давайте добавим Option Explicit и попробуйте приведенный
выше код снова

Option Explicit 

Sub BezDimOshibki()

    Total = 6
    
    ' Первый Total - это ошибка
    Totall = Total + 1
    
    ' Напечатает 6 вместо 7
    Debug.Print Total

End Sub

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

Когда мы добавим оператор Dim для Total
и запустим код, мы получим ошибку, сообщающую, что опечатка Totall не была определена.

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

Ошибка в ключевом слове

Вот второй пример, который более тонкий.

Когда следующий код выполняется, он должен изменить шрифт в
ячейке A1 на синий.

Однако, когда код запускается, ничего не происходит.

Sub ZadatCvet()

    Sheet1.Range("A1").Font.Color = rgblue

End Sub

Ошибка здесь в том, что rgblue должен быть rgbBlue. Если вы
добавите Option Explicit в модуль, появится ошибка «переменная не определена».
Это значительно облегчает решение проблемы.

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

Модуль: дом для кода VBA

Код VBA должен где-то находиться, и это «где-то» называется
модулем. Различают два основных типа модулей: модули классов и стандартные
модули
. Каждая содержащаяся в стандартном модуле процедура является либо
процедурой-функцией, либо процедурой-подпрограммой (различия между ними
мы рассмотрим позднее в этом часе).

Официально модуль определяется как совокупность объявлений
(описательная часть) и процедур, хранящихся как единое целое.

VBA позволяет создавать собственные объекты. Модули классов
содержат описание таких объектов.

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

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

В качестве хорошей практики кодирования следует объявлять тип данных переменных (или констант) при написании кода. Это гарантирует, что VBA выделяет для переменной только указанную память, и это может ускорить выполнение вашего кода.

Ниже приведен пример, в котором я объявил разные типы данных для разных переменных:

Sub DeclaringVariables () Dim X как целое число Dim Email как строка Dim FirstName As String Dim RowCount As Long Dim TodayDate As Date End Sub

Чтобы объявить переменный тип данных, вам необходимо использовать оператор DIM (сокращенно от Dimension).

В ‘Dim X как целое число‘, Я объявил переменную X как целочисленный тип данных.

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

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

Константы

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

Sub const_example()
    Cells(1, 1) = Cells(1, 2) * 13.14
    Cells(2, 1) = Cells(2, 2) * 13.14
    Cells(3, 1) = Cells(3, 2) * 13.14
    Cells(4, 1) = Cells(4, 2) * 13.14
    Cells(5, 1) = Cells(5, 2) * 13.14
End Sub

Это делает код легче для восприятия и редактирования. Также позволяет достаточно просто изменить само значение константы:

Sub const_example()
   'Декларирование константы + присвоение значения
    Const ANNUAL_RATE As Double = 13.14
   
    Cells(1, 1) = Cells(1, 2) * ANNUAL_RATE
    Cells(2, 1) = Cells(2, 2) * ANNUAL_RATE
    Cells(3, 1) = Cells(3, 2) * ANNUAL_RATE
    Cells(4, 1) = Cells(4, 2) * ANNUAL_RATE
    Cells(5, 1) = Cells(5, 2) * ANNUAL_RATE
End Sub

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

Если переменная декларируется в начале процедуры (Sub), то она может быть использована только в данной процедуре. Значение переменной не будет больше доступно после выполнения процедуры.

Sub procedure1()
   Dim var1 As Integer
   ' => Переменная действительна только в этой процедуре
End Sub

Sub procedure2()
   ' => var1 не может быть использована здесь
End Sub

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

Dim var1 As Integer

Sub procedure1()
   ' => var1 может быть использована здесь
End Sub

Sub procedure2()
   ' => var1 может быть также использована и здесь
End Sub

Если вы захотите использовать одну и ту же переменную во всех модулях книги, стоит только в предыдущем примере заменить Dim на Global:

Global var1 As Integer

Чтобы использовать переменную после выполнения процедуры, в которой она появилась, замените Dim на Static:

Sub procedure1()
    Static var1 As Integer
End Sub

Чтобы использовать значения всех переменных в процедуре, добавьте Static перед Sub:

Static Sub procedure1()
    Dim var1 As Integer
End Sub

Scope of Variables and Constants

Each time you declare a variable or a constant, this only has a limited Scope (i.e. a limited part of the program over which the variable exists). This depends on the position of your declaration.

For example, imagine you are using the variable «sVAT_Rate» within the function, «Total_Cost». The following table discusses the scope of «sVAT_Rate» when it is declared in 2 different places within the module:

Option ExplicitDim sVAT_Rate As Single

Function Total_Cost() As Double…
End Function

If you declare «sVAT_Rate», at the top of your module file, then the scope of this variable is the whole of the module (i.e. «sVAT_Rate» will be recognised throughout all procedures within the module).

Therefore, if you assign a value to «sVAT_Rate» in the Total_Cost function and then step into another function in the current module, the assigned value of «sVAT_Rate» will be remembered.

Option Explicit
Function Total_Cost() As Double
Dim sVAT_Rate As Single   .   .   .
End Function

If you declare «sVAT_Rate», at the start of the Total_Cost function, the scope of this variable will be the whole of this function, (i.e. «sVAT_Rate» will be recognised throughout the Total_Cost function, but not outside of this function).

In the above example, the module level variable has been declared using the ‘Dim’ keyword. However, it is possible that you may want to declare variables that can be shared with other modules. This can be specified by using the keyword Public in the declaration, instead of ‘Dim’.

Note that, for a module-level variable, the ‘Dim’ keyword could also be replaced with the keyword Private to indicate that the scope of the variable is limited to the current module.

Constants can also use the ‘Public’ and ‘Private’ keywords, but in this case, the ‘Public’ or ‘Private’ keyword is used in addition to the ‘Const’ keyword (not instead of).

The following examples show the Public and Private keywords applied to variables and constants:

Option ExplicitPublic sVAT_Rate As SinglePublic Const iMax_Count = 5000…

This example shows the ‘Public’ keyword used to declare the variable, «sVAT_Rate», and the constant, «iMax_Count». The scope of these two declarations is the whole of the current project.

Option ExplicitPrivate sVAT_Rate As SinglePrivate Const iMax_Count = 5000…

This example shows the ‘Private’ keyword used to declare the variable, «sVAT_Rate», and the constant, «iMax_Count». The scope of these two declarations is the current module.

Go To Excel VBA Tutorial Part 3 — Excel Visual Basic ArraysReturn to the Excel VBA Tutorial Page

Объявление объектной переменной для автоматизации

При использовании приложения для управления объектами другого приложения необходимо указать ссылку на библиотеку типов этого другого приложения. Когда ссылка указана, можно объявлять объектные переменные в соответствии с наиболее подходящими для них типами. Например, если вы указываете ссылку на библиотеку типов Microsoft Excel при работе в Microsoft Word, то можете объявить переменную типа Worksheet внутри Word, чтобы она представляла объект Worksheet приложения Excel.

При использовании другого приложения для управления объектами Microsoft Access, как правило, можно объявлять объектные переменные согласно наиболее подходящим для них типам. Вы можете также использовать ключевое слово New для автоматического создания нового экземпляра объекта. Однако может возникнуть необходимость указать, что объект принадлежит Microsoft Access. Например, при объявлении объектной переменной, представляющей форму Access внутри Visual Basic, необходимо сделать различимыми объект Form приложения Access и объект Form приложения Visual Basic. Для этого следует включать имя библиотеки типов в объявление переменной, как показано в примере ниже:

Dim frmOrders As New Access.Form

Некоторые приложения не распознают отдельные объектные типы Access. Даже если в этих приложениях указана ссылка на библиотеку типов Access, все объектные переменные Access необходимо объявлять с типом Object. Также невозможно использовать ключевое слово New для создания нового экземпляра объекта.

В примере ниже показано, как объявлять переменную, представляющую экземпляр объекта Application Access в приложении, которое не распознает объектные типы Access. Затем приложение создает экземпляр объекта Application.

Dim appAccess As Object Set appAccess = CreateObject(“Access.Application”)

В документации приложения предоставлена информация о поддерживаемом им синтаксисе.

Статические переменные (сохраняющие значение)

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

Если вы хотите, чтобы переменная сохраняла значение, вам нужно использовать Статический ключевое слово.

Позвольте мне сначала показать вам, что происходит в нормальном случае.

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

Подпроцедура1 () Dim i As Integer i = i + 10 MsgBox i End Sub

Теперь, если я использую ключевое слово Static вместо DIM и запускаю процедуру несколько раз, она будет продолжать показывать значения с шагом 10. Это происходит, когда переменная «i» сохраняет свое значение и использует его в вычислениях.

Подпроцедура1 () Статический i как целое число i = i + 10 MsgBox i End Sub

Слайд 7Среда VBAПроект VBA носит имя базы данных

и содержит формы, модули класса и модули

кода. На представлены четыре основных окна среды VBA:окно проекта (заголовок окна: Project — sample);окно текста (на рисунке заголовка окна нет, но хорошо видны две надписи:General и StartMainMenu);окно свойств (заголовок: Properties — ModuleMain);окно отладки (Immediate).

В окне проекта можно выбрать требуемый объект. Для его редактирования сделайте по объекту двойной щелчок мышью. В окне кода появится его текст, а в окне Properties — свойства объекта.

Окно свойств предназначено для заданиясвойств объектов. Например, можно указать в окне свойств формы фон, заголо-­вок, номер темы в файле справки и т. д.

На первой вкладке свойства расположены в алфавитном порядке (Alphabetic).Выбор второй вкладки этого окна (Categorized) отсортирует свойства по категориям.

Declaring Constants with VBA

There are 3 ways to declare a constant in VBA. Each method has a different scope. The first method only makes the constant available in the procedure (subroutine or function) where it’s declared. These are called procedure level constants.

The second method lets you access the constant from any procedure within a single module. That’s why these constants are called module level constants.

The final method makes the constant available in all modules and procedures in your entire workbook. Constants with this highest level of scope are called project level constants.

Let’s explore these three options now.

Procedure Level Constants with VBA Const

Procedure level constants in VBA are declared inside your procedure using the keyword. The general syntax is where Name is the name of your constant, Type is the data type you want to declare and Value is the value you want to assign to the constant. Let’s walk through an example.

In this example, we declare a constant, Gravity, representing the constant acceleration of gravity as 9.80665 m/s2. Notice the placement of the declaration. It’s inside the procedure. By declaring the constant inside our Force_Gravity routine, we’re making it so the value stored in Gravity cannot be accessed in any other routine.

Make powerful macros with our free VBA Developer Kit

It’s easy to copy and paste a macro like this, but it’s harder make one on your own. To help you make macros like this, we built a free VBA Developer Kit and wrote the Big Book of Excel VBA Macros full of hundreds of pre-built macros to help you master file I/O, arrays, strings and more — grab your free copy below.

If you try to reference the Gravity constant from another subroutine or function, even one located inside the same module, it won’t have a value. That means you’re allowed to define multiple procedure level constants with the same name and different values as long as they’re in different procedures. Take this code, for example:

Even though both constants are named color, you’re able to store different strings in them because they’re both procedure level constants. They only retain their value inside the procedure they were created in.

Module Level Constants with VBA Const

The syntax for a module level constant is the same as a procedure level constant, but the placement of the declaration changes. Module level constants are accessible in any subroutine or function in your module. Here’s a good example illustrating how to declare a module level constant:

Notice the declaration was placed at the top of your module. It’s declared outside of any subroutine or function. This is the key for module level constants. Declarations must be made at the top of your module and must not be inside a procedure. Once you do that, you can access the constant from any procedure (subroutine or function) in that module.

In this example, we used Einstein’s famous E=mc2 special relativity formula to calculate the energy of an object with two different masses. We succesfully referenced the speed of light constant, c, in both subroutines.

You can start to see the appeal of using constants with this example. You don’t want to accidentally change the value of c when accessing it in different procedures! That’s the risk you’d run into if you had declared it as a variable.

Project Level Constants with VBA Public Const

Project level constants can be accessed by any subroutine or function inside your workbook, even if they’re in different modules. This is going to be a fun scientific example so stick with me. Let’s say you have a module named mMassEnergy and a module named mWavelengthEnergy. You can see both of our modules in this screenshot from our Project Explorer Pane.

In the mMassEnergy module, you’ll declare a project level constant using the declaration. This module will allow you to calculate the energy of an object based on its mass.

The Public keyword is the secret to making your constants usable across multiple modules.

Our second module, mWavelengthEnergy, will use the speed of light public constant, c, but it will calculate the energy of light given its wavelength using the Planck-Einstein equation, E=hv. Unlike the module level constant, c, the Planck constant, h, is declared as a procedure level constant, so it can only be used within the mWavelengthEnergy module.

Even though we never defined the speed of light constant, c, in this module, our subroutine successfully calculates the energy as 3.78370639456939E-19 Joules. It’s able to do this with the help of our declaration in our mMassEnergy module.

On a related note, the code above illustrates how you can use formulas to define constants, as long as your formulas don’t contain any variables.

Слайд 12Принципы синтаксиса VBAРегистр не играет роли –

вы можете прописать оператор как в верхнем,

так и в нижнем регистре, или вообще в вперемешку, например, dim, DIM, Dim, разницы нет.Комментарии – для комментирования строки, перед ней прописывается одинарная кавычка или ключевое слово REM.Максимальная длина любого имени (будь то имя переменной, константы или процедуры) составляет 255 знаков.В отличии от JavaScript, Jscript или С языков, в VBA в конце строки с операторами не нужно ставить запятой.Двоеточие – чтобы не прописывать каждый оператор в отдельной строке, их можно с помощью двоеточия прописать в одну строку, например: MsgBox «Строка1» : MsgBox «Строка2″Перенос операторов – если строка с операторами слишком длинная, то ее можно разделить на несколько при помощи символа подчеркивания и знака &, например:
MsgBox «Это простая» _
&  «строка»

Слайд 10Первая программа VBAVBA является языком сценариев –

это значит, что каждый раз когда пользователь

совершает определенное действие срабатывает заранее написанный код (происходит обработка события).Для написания первой программы:Создайте на стартовой форме кнопку «Привет» не выбирая ни какого события (нажать Отмена);В свойствах кнопки в разделе «События» выбрать «Процедура обработки событий» напротив пункта «Нажатие кнопки» и нажать кнопку «…»;В открывшемся окне редактора кода введите «MsgBox “Hello”» — этот код автоматически сгенерирует сообщение, когда кнопка будет нажата;Закройте редактор, сохраните форму и откройте ее для использования, опробуйте работу кнопки.

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

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

Что такое VBA Dim Statement?

Ключевое слово Dim — это сокращение от Dimension. Он
используется для объявления переменных в VBA.

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

Существует четыре типа Dim Statement. Все они очень похожи по синтаксису.

Вот они:

  1. Basic variable
  2. Variant
  3. Object
  4. Array

Ниже приводится краткое описание каждого типа

  1. Basic variable — этот тип переменной содержит одно значение. Это такие типы, как Long, String, Date, Double, Currency.
  2. Variant — VBA решает во время выполнения, какой тип будет использоваться. Вы должны избегать вариантов, где это возможно, но в некоторых случаях требуется их использование.
  3. Object — это переменная, которая может иметь несколько методов (то есть подпрограмм / функций) и несколько свойств (то есть значений). Есть 3 вида: Объекты Excel, такие как объекты Workbook, Worksheet и Range.Пользовательские объекты, созданные с использованием модулей классов.Внешние библиотеки, такие как Словарь.
  4. Array — это группа переменных или объектов.

В следующем разделе мы рассмотрим формат оператора VBA Dim с
некоторыми примерами каждого из них.

В последующих разделах мы рассмотрим каждый тип более
подробно.

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: