Visual basic глобальные переменные

Я хочу создать переменную, которая может использоваться в нескольких формах.

Он будет временным местом хранения целых чисел.

В VB существует несколько способов: VB-специфический способ и не-VB-специфический способ (т.е. тот, который также может быть реализован на С#.

VB-специфический способ — создать модуль и поместить переменную в модуль:

Не-VB-специфический способ заключается в создании класса с общими свойствами:

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

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

Для не-VB-специфического способа вы должны префикс глобальной переменной классом:

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

Вы можете просто добавить его как PUBLIC в любой модуль

Модуль Module1 Глобальные переменные Public glbtxtTemplateName As String ‘GLOBAL VARIABLE FOR TEMPLATE

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

Допустим, у нас есть МОДУЛЬ, называемый "MY_PROCESSES"

Когда вы объявляете SUB или FUNCTION в "MY_PROCESSES" , если вы хотите, чтобы он использовался OUTSIDE из "MY_PROCESSES" , вы объявляете как PUBLIC таким образом

PUBLIC SUB LOAD_TEMPLATE() .

Чтобы перейти к LOAD_TEMPLATE, вы просто вызываете его в своем коде из любого места:

Итак, если мне нужно установить или использовать глобальную переменную, которую я опубликовал в своем модуле, я просто ссылаюсь на нее по имени:

IF glbtxtTemplateName = "" then LoadTemplate

Мне нравится создавать класс, как указано выше, потому что вы можете ссылаться на него быстрее, не помня переменную, но если вам нужны только 1 или 2 глобальных переменных, вы можете назвать их, как мы привыкли с именем стиля венгерского обозначения. Этот метод действительно прост и элегантен. Старый — новый, а Новый — Старый.

При объявлении переменных обычно используется оператор Dim. When declaring variables, you usually use a Dim statement. Оператор объявления может быть помещен внутрь процедуры для создания переменной на уровне процедуры. A declaration statement can be placed within a procedure to create a procedure-level variable. Или он может быть помещен в начале модуля в разделе объявлений, чтобы создать переменную на уровне модуля. Or it may be placed at the top of a module, in the Declarations section, to create a module-level variable.

В примере ниже создается переменная и указывается тип данных "String". The following example creates the variable and specifies the String data type.

Если данный оператор отображается в процедуре, переменная strName может использоваться только в этой процедуре. If this statement appears within a procedure, the variable strName can be used only in that procedure. Если же оператор отображается в разделе объявлений модуля, переменная strName доступна для всех процедур данного модуля, но недоступна для процедур других модулей проекта. If the statement appears in the Declarations section of the module, the variable strName is available to all procedures within the module, but not to procedures in other modules in the project.

Чтобы предоставить доступ к переменной всем процедурам проекта, перед ней нужно поставить оператор Public, как показано в примере ниже: To make this variable available to all procedures in the project, precede it with the Public statement, as in the following example:

Дополнительные сведения об именовании переменных см. в статье Правила именования в Visual Basic. For information about naming your variables, see Visual Basic naming rules.

Читайте также:  Чем открыть файл xsb

Переменные могут быть объявлены одним из следующих типов данных: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (для строк переменной длины), String * length (для строк фиксированной длины), Object или Variant. Variables can be declared as one of the following data types: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (for variable-length strings), String * length (for fixed-length strings), Object, or Variant. Если тип данных не указан, по умолчанию присваивается тип Variant. If you do not specify a data type, the Variant data type is assigned by default. Вы также можете создать определяемый пользователем тип с помощью оператора Type. You can also create a user-defined type by using the Type statement.

Вы можете объявить несколько переменных в одном операторе. You can declare several variables in one statement. Чтобы указать тип данных, необходимо задать тип данных для каждой переменной. To specify a data type, you must include the data type for each variable.

В приведенном ниже операторе переменные intX , intY и intZ объявлены типом Integer. In the following statement, the variables intX , intY , and intZ are declared as type Integer.

В приведенном ниже операторе intX и intY объявлены как Variant и только intZ объявлен как тип Integer. In the following statement, intX and intY are declared as type Variant, and only intZ is declared as type Integer.

Нет необходимости указывать тип данных переменной в операторе объявления. You don’t have to supply the variable’s data type in the declaration statement. Если вы не укажите тип данных, переменной будет присвоен тип Variant. If you omit the data type, the variable will be of type Variant.

Сокращение для объявления переменных x и y типом Integer в приведенном выше операторе The shorthand to declare x and y as Integer in the statement above is:

Сокращение для типов: % – Integer; & – Long; @ – Currency; # – Double; ! The shorthand for the types is: % -integer; & -long; @ -currency; # -double; ! – Single; $ – String -single; $ -string

Оператор Public Public statement

Оператор Public используется для объявления общих переменных на уровне модуля. You can use the Public statement to declare public module-level variables.

Общие переменные могут использоваться в любой процедуре проекта. Public variables can be used in any procedures in the project. Если общая переменная объявлена в стандартном модуле или модуле класса, она может использоваться в любых проектах, содержащих ссылку на проект, в котором объявлена данная общая переменная. If a public variable is declared in a standard module or a class module, it can also be used in any projects that reference the project where the public variable is declared.

Оператор Private Private statement

Оператор Private используется для объявления частных переменных на уровне модуля. You can use the Private statement to declare private module-level variables.

Частные переменные могут использоваться только процедурами одного модуля. Private variables can be used only by procedures in the same module.

На уровне модуля оператор Dim является эквивалентным оператору Private. When used at the module level, the Dim statement is equivalent to the Private statement. Вы можете использовать оператор Private, чтобы упростить чтение и интерпретацию кода. You might want to use the Private statement to make your code easier to read and interpret.

Оператор Static Static statement

Если для объявления переменной в процедуре используется оператор Static вместо оператора Dim, объявленная переменная сохраняет свое значение между вызовами в этой процедуре. When you use the Static statement instead of a Dim statement to declare a variable in a procedure, the declared variable will retain its value between calls to that procedure.

Читайте также:  Asus eee pc как загрузиться с флешки

Оператор Option Explicit Option Explicit statement

В Visual Basic можно неявно объявить переменную, просто используя оператор присвоения значения. You can implicitly declare a variable in Visual Basic simply by using it in an assignment statement. Все неявно объявленные переменные относятся к типу Variant. All variables that are implicitly declared are of type Variant. Для переменных типа Variant требуется больший объем памяти, чем для большинства других переменных. Variables of type Variant require more memory resources than most other variables. Приложение будет работать эффективнее, если переменные будут явно объявленными и им будет присвоен определенный тип данных. Your application will be more efficient if you declare variables explicitly and with a specific data type. Явное объявление переменных снижает вероятность возникновения ошибок, вызванных конфликтом имен или опечатками. Explicitly declaring all variables reduces the incidence of naming-conflict errors and spelling mistakes.

Если вы не хотите, чтобы в Visual Basic были неявные объявления, то оператор Option Explicit должен стоять в модуле перед всеми процедурами. If you don’t want Visual Basic to make implicit declarations, you can place the Option Explicit statement in a module before any procedures. Этот оператор требует явного объявления всех переменных модуля. This statement requires you to explicitly declare all variables within the module. Если модуль содержит оператор Option Explicit, то при обнаружении необъявленной ранее переменной или опечатки в ее имени Visual Basic выдаст ошибку времени компиляции. If a module includes the Option Explicit statement, a compile-time error will occur when Visual Basic encounters a variable name that has not been previously declared, or that has been spelled incorrectly.

В программной среде Visual Basic имеется возможность задавать параметр, который будет автоматически включать оператор Option Explicit во все новые модули. You can set an option in your Visual Basic programming environment to automatically include the Option Explicit statement in all new modules. Справочная информация по изменению параметров среды Visual Basic предоставлена в документации приложения. See your application’s documentation for help on how to change Visual Basic environment options. Обратите внимание, что данный параметр не меняет уже написанный код. Note that this option does not change existing code that you have written.

Статические и динамические массивы нужно объявлять в явном виде. You must explicitly declare fixed arrays and dynamic arrays.

Объявление объектной переменной для автоматизации Declaring an object variable for automation

При использовании приложения для управления объектами другого приложения необходимо указать ссылку на библиотеку типов этого другого приложения. When you use one application to control another application’s objects, you should set a reference to the other application’s type library. Когда ссылка указана, можно объявлять объектные переменные в соответствии с наиболее подходящими для них типами. After you set a reference, you can declare object variables according to their most specific type. Например, если вы указываете ссылку на библиотеку типов Microsoft Excel при работе в Microsoft Word, то можете объявить переменную типа Worksheet внутри Word, чтобы она представляла объект Worksheet приложения Excel. For example, if you are in Microsoft Word when you set a reference to the Microsoft Excel type library, you can declare a variable of type Worksheet from within Word to represent an Excel Worksheet object.

При использовании другого приложения для управления объектами Microsoft Access, как правило, можно объявлять объектные переменные согласно наиболее подходящим для них типам. If you are using another application to control Microsoft Access objects, in most cases, you can declare object variables according to their most specific type. Вы можете также использовать ключевое слово New для автоматического создания нового экземпляра объекта. You can also use the New keyword to create a new instance of an object automatically. Однако может возникнуть необходимость указать, что объект принадлежит Microsoft Access. However, you may have to indicate that it is a Microsoft Access object. Например, при объявлении объектной переменной, представляющей форму Access внутри Visual Basic, необходимо сделать различимыми объект Form приложения Access и объект Form приложения Visual Basic. For example, when you declare an object variable to represent an Access form from within Visual Basic, you must distinguish the Access Form object from a Visual Basic Form object. Для этого следует включать имя библиотеки типов в объявление переменной, как показано в примере ниже: Include the name of the type library in the variable declaration, as in the following example:

Читайте также:  Что делать если забыл пароль на xiaomi

Некоторые приложения не распознают отдельные объектные типы Access. Some applications don’t recognize individual Access object types. Даже если в этих приложениях указана ссылка на библиотеку типов Access, все объектные переменные Access необходимо объявлять с типом Object. Even if you set a reference to the Access type library from these applications, you must declare all Access object variables as type Object. Также невозможно использовать ключевое слово New для создания нового экземпляра объекта. Nor can you use the New keyword to create a new instance of the object.

В примере ниже показано, как объявлять переменную, представляющую экземпляр объекта Application Access в приложении, которое не распознает объектные типы Access. The following example shows how to declare a variable to represent an instance of the Access Application object from an application that doesn’t recognize Access object types. Затем приложение создает экземпляр объекта Application. The application then creates an instance of the Application object.

В документации приложения предоставлена информация о поддерживаемом им синтаксисе. To determine which syntax an application supports, see the application’s documentation.

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Как объявить глобальную переменную в Visual Basic?

Эти переменные должны быть доступны из всех форм Visual Basic. Я знаю, как объявить публичную переменную для конкретной формы, но как это сделать для всех форм в моем проекте?

12 ответов

Невозможно объявить глобальные переменные, поскольку вы, вероятно, воображаете их в VB.NET.

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

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

Например, если вы хотите отобразить окно сообщения в коде формы с именем пользователя вам нужно будет сделать что-то вроде этого:

Вы не можете просто получить доступ к переменной, набрав UserName вне класса, в котором он находится

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