Перейти к содержимому

Sub main что это

  • автор:

Процедура Main в Visual Basic

Каждое приложение Visual Basic должно содержать процедуру с именем Main . Эта процедура служит отправной точкой и общим элементом управления для приложения. Платформа .NET Framework вызывает процедуру Main , когда приложение загружено и готово передать ему управление. Если вы не создаете приложение Windows Forms, необходимо написать процедуру Main для приложений, которые выполняются самостоятельно.

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

Требования к основной процедуре

Файл, который выполняется самостоятельно (обычно с расширением .exe), должен содержать процедуру Main . Библиотека (например, с расширением .dll) не выполняется отдельно и не требует Main процедуры. Ниже приведены требования к различным типам проектов, которые можно создать.

  • Консольные приложения выполняются самостоятельно, и необходимо предоставить по крайней мере одну Main процедуру.
  • Windows Forms приложения выполняются самостоятельно. Однако компилятор Visual Basic автоматически создает процедуру Main в таком приложении, и ее не нужно писать.
  • Для библиотек классов процедура не требуется Main . К ним относятся библиотеки элементов управления Windows и библиотеки веб-элементов управления. Веб-приложения развертываются как библиотеки классов.

Объявление основной процедуры

Существует четыре способа объявить процедуру Main . Он может принимать аргументы или нет, и может возвращать значение или нет.

При объявлении Main в классе необходимо использовать Shared ключевое слово. В модуле Main параметру не требуется значение Shared .

  • Самый простой способ — объявить процедуру Sub , которая не принимает аргументы или не возвращает значение.
Module mainModule Sub Main() MsgBox("The Main procedure is starting the application.") ' Insert call to appropriate starting place in your code. MsgBox("The application is terminating.") End Sub End Module 
Module mainModule Function Main() As Integer MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' Insert call to appropriate starting place in your code. ' On return, assign appropriate value to returnValue. ' 0 usually means successful completion. MsgBox("The application is terminating with error level " & CStr(returnValue) & ".") Return returnValue End Function End Module 
Module mainModule Function Main(ByVal cmdArgs() As String) As Integer MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' See if there are any arguments. If cmdArgs.Length > 0 Then For argNum As Integer = 0 To UBound(cmdArgs, 1) ' Insert code to examine cmdArgs(argNum) and take ' appropriate action based on its value. Next End If ' Insert call to appropriate starting place in your code. ' On return, assign appropriate value to returnValue. ' 0 usually means successful completion. MsgBox("The application is terminating with error level " & CStr(returnValue) & ".") Return returnValue End Function End Module 
Module mainModule Sub Main(ByVal cmdArgs() As String) MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' See if there are any arguments. If cmdArgs.Length > 0 Then For argNum As Integer = 0 To UBound(cmdArgs, 1) ' Insert code to examine cmdArgs(argNum) and take ' appropriate action based on its value. Next End If ' Insert call to appropriate starting place in your code. MsgBox("The application is terminating.") End Sub End Module 

См. также раздел

  • MsgBox
  • Length
  • UBound
  • Структура программы Visual Basic
  • -main
  • Общий
  • Оператор Sub
  • Оператор Function
  • Целочисленный тип данных
  • Строковый тип данных

Совместная работа с нами на GitHub

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

BC30420: «Sub Main» не найден в «»

Sub Main отсутствует или для него указано неверное расположение.

Идентификатор ошибки: BC30420

Исправление ошибки

  1. Укажите отсутствующий оператор Sub Main или, если он существует, переместите его в соответствующее место в коде. Дополнительные сведения о см. в Sub Main разделе Основная процедура в Visual Basic.
  2. Укажите расположение запускаемого объекта проекта в поле Форма запускаDesigner Проекта.

См. также раздел

  • Оператор Sub
  • Процедура Main в Visual Basic

Совместная работа с нами на GitHub

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

Невозможно просматривать спутниковые каналы. (Только для моделей, поддерживающих спутниковое вещание)

Выберите в тексте , чтобы перейти к необходимому экрану настроек.

У моделей, поддерживающих спутниковое вещание, есть опция [ Настройка спутника ] в разделе [ Настройки ] — [ Просмотр телевизора ] — [ Каналы ] — [ Настройка каналов ] — [ Цифр. конфигурация ].

  • Узнайте у местной сервисной службы, предоставляются ли в вашем регионе услуги спутникового вещания.
  • Проверьте устройство LNB и настройки.
  • Если в вашем телевизоре есть гнезда “ MAIN ” и “ SUB ” (разъемы) и с помощью параметра [ Выбор режима спутникового тюнера ] не выбран режим двойного спутникового тюнера, гнездо (разъем) с пометкой “ SUB ” не удастся использовать. В этом случае подключите спутниковую антенну к гнезду с надписью “ MAIN ”.

Актуальные разделы

  • Начало
  • Поиск и устранение неисправностей
  • Прием сигнала вещания
  • Невозможно просматривать спутниковые каналы. (Только для моделей, поддерживающих спутниковое вещание)

Copyright 2019 Sony Visual Products Inc.

Объясните в чем разница

Объясните в чем разница между:
Sub
Private Sub
Public Sub
У нас прописанны макросы несколькими людьми, и каждый делает по-своему. И я заметил что некоторые макросы работают довольно странно. Главна странность в том, что при запуске некотрых макросов эксель открывает еще какой-нить файл.

1 ответ

18 февраля 2012 года
985 / / 19.09.2004

Инструкция Sub

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

[Private | Public] [Static] Sub имя [(списокАргументов)]
[инструкции]
[Exit Sub]
[инструкции]
End Sub

Синтаксис инструкции Sub содержит следующие элементы:

ЭлементОписание

Public — Необязательный. Указывает, что процедура Sub доступна для всех других процедур во всех модулях. При использовании в личном модуле (модуле, который содержит инструкцию Option Private) такая процедура является недоступной вне проекта.

Private — Необязательный. Указывает, что процедура Sub доступна для других процедур только того модуля, в котором она описана.

Static — Необязательный. Указывает, что локальные переменные процедуры Sub сохраняются в промежутках времени между вызовами этой процедуры. Атрибут Static не действует на переменные, описанные вне процедуры Sub, даже если они используются в процедуре.

имя — Обязательный. Имя процедуры Sub, удовлетворяющее стандартным правилам именования переменных.

списокАргументов — Необязательный. Список переменных, представляющий аргументы, которые передаются в процедуру Sub при ее вызове. Имена переменных разделяются запятой.

инструкции — Необязательный. Любая группа инструкций, выполняемых в процедуре Sub.

Аргумент списокАргументов имеет следующий синтаксис и элементы:

[Optional] [ByVal | ByRef] [ParamArray] имяПеременной[( )] [As тип] [= поУмолчанию]

ЭлементОписание

Optional — Необязательный. Ключевое слово, указывающее, что аргумент не является обязательным. При использовании этого элемента все последующие аргументы, которые содержит списокАргументов, также должны быть необязательными и быть описаны с помощью ключевого слова Optional. Все аргументы, описанные как Optional, должны иметь тип Variant. Не допускается использование ключевого слова Optional для любого из аргументов, если используется ключевое слово ParamArray.

ByVal — Необязательный. Указывает, что этот аргумент передается по значению.

ByRef — Необязательный. Указывает, что этот аргумент передается по ссылке. Описание ByRef используется в Visual Basic по умолчанию.

ParamArray — Необязательный. Используется только в качестве последнего элемента в списке списокАргументов для указания, что конечным аргументом является описанный как Optional массив значений типа Variant. Ключевое слово ParamArray позволяет задавать произвольное количество аргументов. Оно не может быть использовано со словами ByVal, ByRef или Optional.

имяПеременной — Обязательный. Имя переменной, удовлетворяющее стандартным правилам именования переменных.

тип — Необязательный. Тип данных аргумента, переданного в процедуру; поддерживаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String (только строки переменной длины), Object, Variant. Если отсутствует ключевое слово Optional, могут быть также указаны определяемый пользователем тип или объектный тип.

поУмолчанию — Необязательный. Любая константа или выражение, дающее константу. Используется только вместе с параметром Optional. Если указан тип Object, единственным значением по умолчанию может быть значение Nothing.

Дополнительные сведения

Процедуры Sub, тип которых не указан явно с помощью слов Public или Private, являются общими по умолчанию. Если не используется слово Static, значения локальных переменных не сохраняются между вызовами процедур.

Внимание! Допускаются рекурсивные процедуры Sub; т.е. они могут вызывать сами себя для выполнения определенных задач. Однако рекурсия может приводить к переполнению стека. Ключевое слово Static обычно не используется с рекурсивными процедурами Sub

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

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

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

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

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

Внимание! В процедуре допускается использование переменной, которая явно не описана в этой процедуре, но при этом может возникать конфликт имен, если на уровне модуля был определен элемент с тем же самым именем. Если в процедуре содержится ссылка на неописанную переменную, имя которой совпадает с именем другой процедуры, константы или переменной, то подразумевается, что процедура ссылается на это имя на уровне модуля. Чтобы избежать возникновения конфликтов такого рода, следует пользоваться явным описанием переменных. Для включения обязательного явного описания переменных используется инструкция Option Explicit.

Примечание. Для входа или выхода из процедуры Sub нельзя использовать инструкции GoSub, GoTo или Return.

Справка © Microsoft Excel 97

P.S. Открытие других файлов может входить в задачу макроса, кроме того, макрос может изначально находиться в другой рабочей книге, в таком случае, при его вызове, рабочая книга, разумеется, откроется ()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *