Современные решения

для защиты Windows приложений

и восстановления исходного кода

Методы Visual Basic


Метод ProcOfLine

Возвращает имя процедуры, содержащей строку с указанным номером.

Синтаксис

объект.ProcOfLine(строка, тип_процедуры) As String

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

Элемент

Описание

 

объект

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

строка

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

тип_процедуры

Обязательный. Указывает вид процедуры, которую надо найти. Поскольку в модуле может находиться несколько различных процедур Property, необходимо указывать вид искомой процедуры. Все процедуры, отличные от процедур-свойств(т.е., процедуры Sub и Function) используют аргумент vbext_pk_Proc.

В качестве аргументатип_процедуры используются следующие константы:

Константа

Описание

vbext_pk_Get

Соответствует процедуре, возвращающей значение свойства.

vbext_pk_Let

Соответствует процедуре, присваивающей свойству значение.

vbext_pk_Set

Соответствует процедуре, задающей ссылку на объект.

vbext_pk_Proc

Используется со всеми процедурами, отличными от процедур-свойств.

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

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

Метод ProcStartLine

Возвращает строку, с которой начинается указанная процедура.

Синтаксис

объект.ProcStartLine(имя_процедуры, тип_процедуры) As Long

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

Элемент

Описание

 

объект

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

имя_процедуры

Обязательный. Переменная типа String, содержащая имя процедуры.

тип_процедуры

Обязательный. Указывает вид процедуры, которую надо найти. Поскольку в модуле может находиться несколько различных процедур Property, необходимо указывать вид искомой процедуры. Все процедуры, отличные от процедур-свойств(т.е., процедуры Sub и Function) используют аргумент vbext_pk_Proc.

В качестве аргументатип_процедуры используются следующие константы:

Константа

Описание

vbext_pk_Get

Соответствует процедуре, возвращающей значение свойства.

vbext_pk_Let

Соответствует процедуре, присваивающей свойству значение.

vbext_pk_Set

Соответствует процедуре, задающей ссылку на объект.

vbext_pk_Proc

Используется со всеми процедурами, отличными от процедур-свойств.

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

Процедура начинается со строки, следующей за инструкцией End Sub предшествующей процедуры. Если процедура является первой, она начинается сразу после общего раздела описаний.

Метод Remove

Удаляет компонент из семейства.

Синтаксис

объект.Remove(компонент)

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

Элемент

Описание

 

объект

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

компонент

Обязательный. Для семейства LinkedWindows это объект. Для семейства References -- ссылка на библиотеку типов или на проект. Для семейства VBComponents -- специальная константа, представляющая модуль класса, форму или стандартный модуль.

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

Если метод Remove используется для семейства LinkedWindows, он удаляет окно из текущего семейства связанных окон. Удаленное окно становится перемещаемым окном, которое имеет свою собственную связанную рамку окна.

Метод ReplaceLine

Замещает одну строку программы другой.

Синтаксис

объект.ReplaceLine(строка, текст)

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

Элемент

Описание

 

объект

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

строка

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

текст

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

 

Метод SetFocus

Передает фокус указанному окну.

Синтаксис

объект.SetFocus

Прототип объект представляет собой объектное выражение, значением которого является один из объектов, перечисленных в списке "Применение".

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

Метод SetFocus используется для окон, которые уже являются видимыми.

Метод SetSelection

Выделяет фрагмент в области окна программы.

Синтаксис

объект.SetSelection(строка1, столбец1, строка2, столбец2)

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

Элемент

Описание

 

объект

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

строка1

Обязательный. Переменная типа Long, указывающая номер первой строки выделенного фрагмента.

столбец1

Обязательный. Переменная типа Long, указывающая номер первого столбца выделенного фрагмента.

строка2

Обязательный. Переменная типа Long, указывающая номер последней строки выделенного фрагмента.

столбец2

Обязательный. Переменная типа Long, указывающая номер последнего столбца выделенного фрагмента.

 

Метод Show

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

Синтаксис

объект.Show

Прототип объект представляет собой объектное выражение, значением которого является один из объектов, перечисленных в списке "Применение".

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

Метод Show передает фокус указанной области программы в данном окне.

Пример использования метода Add

В данном примере метод Add используется для добавления одного стандартного модуля в семейство VBComponents.

Application.VBE.VBProjects(1).VBComponents.Add(vbext_ct_StdModule)

Пример использования метода AddFromFile

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

Application.VBE.CodePanes(3).CodeModule.AddFromFile "c:\Code Files\book2.frm"

Пример использования метода AddFromGUID

В данном примере метод AddFromGUID используется для добавления ссылки на текущий проект. Для этого указывается ссылка с помощью значения кода GUID объекта Reference.

Application.VBE.ActiveVBProject.References.AddFromGuid("", 5, 0)

Пример использования метода AddFromString

В данном примере метод AddFromString используется для добавления строки "Dim intJack As Integer" в указанную область окна программы.

Application.VBE.CodePanes(3).CodeModule.AddFromString "Dim intJack As Integer"

Пример использования метода Close

В данном примере метод Close закрывает указанный компонент семейства Windows.

Application.VBE.Windows(9).Close

Пример использования метода CreateEventProc

В данном примере метод CreateEventProc используется для создания процедуры Button_Click.

Debug.Print Application.VBE.SelectVBComponents.CodeModule.CreateEventProc("Нажмите ", "кнопку ")

Пример использования метода DeleteLines

Следующий пример состоит из двух частей. Первый цикл For:Next с помощью метода InsertLines вставляет в область окна программы CodePanes(1) 26 последовательно удлиняющихся сегментов латинского алфавита, начиная с буквы "a". Последний вставленный сегмент представляет собой весь алфавит.

Во второй части цикл For:Next использует метод DeleteLines для удаления строк с нечетными номерами. На первый взгляд кажется, что второй цикл должен просто стирать каждую вторую строку, однако следует принять во внимание, что после каждой операции удаления нумерация строк производится заново. Следовательно, на каждом шаге стирается каждая третья строка: первая строка пропускается, так как I увеличивается на единицу, а вторая -- поскольку больший номер строки каждый раз уменьшается на единицу.

For I = 1 to 26

Application.VBE.SelectedVBComponent.CodeModule.InsertLines i, Mid$("abcdefghijklmnopqrstuvwxyz", 1, I)

Next

For I = 1 to 13

Application.VBE.SelectedVBComponent.CodeModule.DeleteLines I

Next

Пример использования метода Export

В данном примере создается файл с именем test.bas и с помощью метода Export, в него копируется содержимое стандартного модуля VBComponents(1).

Application.VBE.ActiveVBProject.VBComponents(1).Export("test.bas")

Пример использования метода Find

В данном примере с помощью метода Find устанавливается, что указанная последовательность строк в области окна программы (строки с 1261 по 1279) содержит строку "Tabs.Clear".

Application.VBE.CodePanes(2).CodeModule.Find ("Tabs.Clear", 1261, 1, 1280, 1, False, False)

Пример использования метода GetSelection

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

Dim m As Long

Dim n As Long

Dim x As Long

Dim y As Long

Application.VBE.CodePanes(1).GetSelection m, n, x, y

Пример использования метода Import

В данном примере метод Import семейства VBComponents используется, чтобы скопировать содержимое файла test.bas в стандартный модуль.

Application.VBE.ActiveVBProject.VBComponents.Import("test.bas")

Пример использования метода InsertLines

В данном примере метод InsertLines используется, чтобы вставить строку "Option Explicit" в указанную область окна программы.

Application.VBE.CodePanes(1).CodeModule.InsertLines 1, "Option Explicit"

Пример использования метода Item

В данном примере показаны два способа вывода на экран указанного компонента семейства CodePanes; в одном из них используется метод Item.

Application.VBE.CodePanes.Item(2).Show

Application.VBE.CodePanes(2).Show

Пример использования метода Lines

В данном примере метод Lines используется для возвращения указанного блока программы (строки с 1 по 4) в определенную область окна программы.

Debug.Print Application.VBE.CodePanes(1).CodeModule.Lines( 1, 4)

Пример использования метода ProcBodyLine

В данном примере метод ProcBodyLine используется для возвращения номера первой строки процедуры SetupTabs в определенную область окна программы.

Debug.Print Application.VBE.CodePanes(3).CodeModule.ProcBodyLine ("SetupTabs", vbext_pk_Proc)

Пример использования метода ProcCountLines

В данном примере метод ProcCountLines используется для возвращения указанного числа строк процедуры SetupTabs в определенную область окна программы.

Debug.Print Application.VBE.CodePanes(3).CodeModule.ProcCountLines ("SetupTabs", vbext_pk_Proc)

Пример использования метода ProcOfLine

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

Debug.Print Application.VBE.CodePanes(3).CodeModule.ProcOfLine (1270, vbext_pk_Proc)

Пример использования метода ProcStartLine

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

Debug.Print Application.VBE.CodePanes(3).CodeModule.ProcStartLine ("SetupTabs", vbext_pk_Proc)

Пример использования метода Remove

В данном примере устанавливается, что определенный компонент семейства VBComponents является модулем, а затем этот модуль удаляется с помощью метода Remove.

Debug.Print Application.VBE.ActiveVBProject.VBComponents(4).Name

Application.VBE.ActiveVBProject.VBComponents.Remove Application.VBE.ActiveVBProject.VBComponents(4)

Пример использования метода ReplaceLine

Следующий пример состоит из двух частей. Первый цикл For:Next с помощью метода InsertLines вставляет в область окна программы CodePanes(1) 26 последовательно удлиняющихся сегментов латинского алфавита, начиная с буквы "a". Последний вставленный сегмент представляет собой весь алфавит.

Второй цикл For:Next с помощью метода ReplaceLine замещает строку с четным номером последним символом текста, который содержался в этой строке ранее. Строки с нечетными номерами не изменяются.

For I = 1 to 26

Application.VBE.CodePanes(1).CodeModule.InsertLines I, Mid$("abcdefghijklmnopqrstuvwxyz", 1, I)

Next I

For I = 1 to 13

Application.VBE.CodePanes(1).CodeModule.ReplaceLine 2*I, Mid$("abcdefghijklmnopqrstuvwxyz", 1, I)

Next I

Пример использования метода SetFocus

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

Application.VBE.Windows(9).SetFocus

Пример использования метода SetSelection

В данном примере метод SetSelection используется для выделения участка текста, первый символ которого совпадает с символом, который следует непосредственно за четвертым символом второй строки CodePanes(1), а последний совпадает с пятнадцатым символом третьей строки.

Application.VBE.CodePanes(1).SetSelection 2,4,3,15

Пример использования метода Show

В данном примере метод Show используется для вывода указанной области окна программы на передний план.

Application.VBE.CodePanes(2).Show

Событие Click

Данное событие происходит, когда установлено свойство OnAction для соответствующего элемента управления на панели команд.

Синтаксис

Sub объект_Click (ByVal ctrl As Object, ByRef handled As Boolean, ByRef canceldefault As Boolean)

Синтаксис события Click (Нажатие кнопки) содержит следующие именованные аргументы:

Элемент

Описание

 

ctrl

Обязательный; тип данных Object. Указывает объект -- источник события "Нажатие кнопки" (Click).

handled

Обязательный; тип данных Boolean. Если его значение равно True, событие должно обрабатываться с помощью других надстроек. Если False -- действие элемента панели команд не было обработано.

canceldefault

Обязательный; тип данных Boolean. Если его значение равно True, выполняются действия, предусмотренные по умолчанию, до их отмены надстройкой, обрабатывающей нисходящий поток команд. Если False -- действия, предусмотренные по умолчанию не выполняются до их восстановления надстройкой, обрабатывающей нисходящий поток команд.

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

Событие Click с объектом CommandBarEvents выполняется особым образом. С помощью ключевого слова WithEvents описывается переменная, определяющая событие Click для элемента управления CommandBar. Этой переменной будет присвоено возвращаемое значение свойства CommandBarEvents объекта Events. Свойство CommandBarEvents использует элемент управления CommandBar в качестве аргумента. При выборе элемента управления CommandBar (для переменной, описанной с помощью ключевого слова WithEvents) выполняется программа.

Событие ItemAdded

Данное событие происходит после добавления ссылки.

Синтаксис

Sub объект_ItemAdded(ByVal элемент As Reference)

Обязательный аргумент элемент указывает добавленный объект.

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

Событие ItemAdded (Элемент добавлен) происходит, когда объект Reference добавляется в семейство References.

Событие ItemRemoved

Данное событие происходит после удаления ссылки из проекта.

Синтаксис

Sub объект_ItemRemoved(ByVal элемент As Reference)

Обязательный аргумент элемент указывает объект Reference, который был удален.

Пример события "Нажатие кнопки" (Click)

В данном примере проиллюстрировано, как можно написать программу для процедуры события "Нажатие кнопки" (Click) с помощью инструкций WithEvents и Set. Следует отметить, что вместо пункта меню Сервис в имени события "Нажатие кнопки" (Click) используется ссылка на объект ce.

Private WithEvents ce As CommandBarEvents

Sub Test()

Dim c As CommandBarControl

Set c = Application.VBE.CommandBars("Сервис").Controls(1)

Set ce = Application.VBE.Events.CommandBarEvents(c)

End Sub

Private Sub ce_Click(ByVal CommandBarControl As Object, Handled As Boolean, CancelDefault As Boolean)

' Место для инструкций обработки события.

End Sub

Свойство SelectedVBComponent

Возвращает выделенный компонент. Только для чтения.

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

Свойство SelectedVBComponent возвращает выделенный компонент в окно проекта. Если элемент, выделенный в окне проекта, не является компонентом, свойство SelectedVBComponent возвращает значение Nothing.

Свойство ActiveVBProject

Возвращает активный проект в окно проекта. Только для чтения.

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

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

Свойство ActiveWindow

Возвращает активное окно в среде разработчика. Только для чтения.

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

Если в среде разработчика открыто несколько окон, значением свойства ActiveWindow является окно, имеющее фокус. Когда фокус имеет главное окно, свойство ActiveWindow возвращает значение Nothing.

Свойство Caption

Возвращает значение типа String, содержащее заголовок активного окна. Только для чтения.

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

Заголовком активного окна называют текст, выводящийся в строке заголовка окна.

Свойство CodeModule

Возвращает объект, представляющий программу, определенную для компонента. Только для чтения.

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

Свойство CodeModule возвращает значение Nothing, если компонент не имеет связанного с ним программного модуля.

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

Свойство CodePane

Возвращает объект CodePane. Только чтение.

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

Если область программы существует, она становится активной областью программы, а содержащее ее окно - активным окном. Если области программы для модуля не существует, свойство CodePane создает ее.

Свойство CodePaneView

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

Возвращаемые значения

Свойство CodePaneView возвращает следующие значения:

Константа

Описание

vbext_cv_ProcedureView

Указанная область программы находится в режиме просмотра процедуры.

Vbext_cv_FullModuleView

Указанный проект находится в режиме просмотра модуля.

Свойство Collection

Возвращает семейство, содержащее объект, с которым работает пользователь. Только для чтения.

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

Для большинства объектов в используемой модели объектов определено либо свойство Parent, либо свойство Collection, указывающее на родительский объект указанного объекта.

Свойство Collection обеспечивает доступ к свойствам, методам и элементам управления семейства, к которому принадлежит объект.

Свойство CommandBarEvents

Возвращает объект CommandBarEvents. Только для чтения.

Значения

Аргумент, передаваемый в свойство CommandBarEvents, имеет вид:

Аргумент

Описание

элементVB

Должен представлять объект типа CommandBarControl.

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

Свойство CommandBarEvents используют для возвращения объекта-источника события, который запускает событие при нажатии кнопки на панели инструментов. Аргумент, передаваемый в свойство CommandBarEvents, должен представлять элемент управления панели инструментов, для которого генерируется событие нажатия кнопки.

Свойство Count

Возвращает значение типа Long, содержащее число элементов в семействе. Только для чтения.

Свойство CountOfLines

Возвращает значение типа Long, содержащее число строк программы в программном модуле. Только для чтения.

Свойство CountOfDeclarationLines

Возвращает значение типа Long, содержащее число строк программы в разделе описаний программного модуля. Только для чтения.

Свойство CountOfVisibleLines

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

Свойство ActiveCodePane

Возвращает активный или последний активный объект CodePane или указывает активный объект CodePane. Чтение/запись.

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

В свойстве ActiveCodePane можно указать любой допустимый объект CodePane, как показано в следующем примере:

Set MyApp.VBE.ActiveCodePane = MyApp.VBE.CodePanes(1)

Эта инструкция делает активной областью программы первую область программы в семействе областей программы. Область программы можно также сделать активной с помощью метода Set.

Свойство Description

Возвращает или задает строковое выражение, содержащее описание объекта. Для объекта VBProject это свойство доступно для чтения/записи; для объекта Reference свойство доступно только для чтения.

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

Для объекта VBProject свойство Description возвращает или задает стоку описания, связанную с активным проектом.

Для объекта Reference свойство Description возвращает краткое описание ссылки.

Свойство Designer

Возвращает объект, обеспечивающий доступ к средствам разработки компонента.

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

Если для объекта открыто окно конструктора, свойство Designer возвращает открытое окно конструктора; в противном случае создается новое окно конструктора. Окно конструктора является характеристикой определенных объектов VBComponent, при создании которых окно конструктора создается вместе с объектом. Компонент может иметь только одно окно конструктора, причем всегда одно и то же. Свойство Designer обеспечивает доступ к объекту, специфическому для компонента. В некоторых случаях, например, для стандартных модулей и модулей класса окно конструктора не создается, поскольку эти типы объектов VBComponent не поддерживают окно конструктора.

Если объект VBComponent не имеет окна конструктора, свойство Designer возвращает значение Nothing.

Свойство DesignerWindow

Возвращает объект Window, представляющий окно конструктора компонента.

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

Если компонент поддерживает окно конструктора, но не имеет открытого окна конструктора, то окно конструктора создается при обращении к свойству DesignerWindow, но при этом является невидимым. Чтобы сделать окно видимым, следует задать значение True для свойства Visible объекта Window.

Свойство CodePanes

Возвращает семейство активных объектов CodePane. Только для чтения.

Свойство GUID

Возвращает значение типа String, содержащее идентификатор класса объекта. Только для чтения.

Свойство HasOpenDesigner

Возвращает значение типа Boolean, указывающее, имеет или нет объект VBComponent открытое окно конструктора. Только для чтения.

Возвращаемые значения

Свойство HasOpenDesigner возвращает следующие значения:

Значение

Описание

True

Объект VBComponent имеет открытое окно конструктора.

False

Объект VBComponent не имеет открытого окна конструктора

 

Свойство height

Возвращает или задает значение типа Single, содержащее высоту окна в единицах твип. Чтение/запись.

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

Изменение значения свойства height связанного окна или закрепленного окна не имеет последствий, пока окно остается связанным или закрепленным.

Свойство HelpContextID

Возвращает или задает значение типа String, содержащее контекстный идентификатор раздела справки Microsoft Windows. Чтение/запись.

Свойство HelpFile

Возвращает или задает значение типа String, указывающее файл справки Microsoft Windows для проекта. Чтение/запись.

Свойство IndexedValue

Возвращает или задает значение компонента свойства, которое определяется индексированным списком или массивом.

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

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

Свойство IndexedValue принимает до 4 индексов. Число индексов, принимаемых свойством IndexedValue, возвращается в значении свойства NumIndices.

Свойство IndexedValue используется только в тех случаях, когда значение свойства NumIndices превышает нуль. Значения в индексированном списке задаются или возвращаются с помощью одного индекса.

Свойство IsBroken

Возвращает значение типа Boolean, указывающее, представляет ли объект Reference допустимую ссылку в реестре. Только для чтения.

Возвращаемые значения

Свойство IsBroken возвращает следующие значения:

Значение

Описание

True

Объект Reference более не представляет допустимую ссылку в реестре.

False

Объект Reference представляет допустимую ссылку в реестре.

 

Свойство BuiltIn

Возвращает значение типа Boolean, указывающее, является ли ссылка стандартной ссылкой, которую нельзя удалить. Только для чтения.

Возвращаемые значения

Свойство BuiltIn возвращает следующие значения:

Значение

Описание

True

Ссылка является стандартной ссылкой, которую нельзя удалить.

False

Ссылка не является стандартной ссылкой и может быть удалена.

 

Свойство Saved

Возвращает значение типа Boolean, указывающее, был ли объект изменен после его последнего сохранения. Чтение/запись.

Возвращаемые значения

Свойство Saved возвращает следующие значения:

Значение

Описание

True

Объект не был изменен после его последнего сохранения.

False

Объект был изменен после его последнего сохранения.

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

Метод SaveAs задает для свойства Saved значение True.

Примечание. Ели задать для свойства Saved значение False в программе, это свойство будет возвращать значение False, а объект будет отмечен как измененный после его последнего сохранения.

Назад | Содержание | Вперед