Главная страница

Ответы на вопросы по VBA. 1 Опишите модификатор Public. Для чего он, с какими элементами языка vba. Приведите 3 примера и в каждом укажите, что означает в примере использование Public


Скачать 245.69 Kb.
Название1 Опишите модификатор Public. Для чего он, с какими элементами языка vba. Приведите 3 примера и в каждом укажите, что означает в примере использование Public
АнкорОтветы на вопросы по VBA
Дата28.01.2021
Размер245.69 Kb.
Формат файлаdocx
Имя файлаPROGAAAAAAA_2 (2).docx
ТипДокументы
#172271
страница6 из 7
1   2   3   4   5   6   7

Правила комментирования


В следующей таблице приведены общие рекомендации по тому, какие типы комментариев могут предшествовать разделу кода. Это предложения; Visual Basic не применяет правила для добавления комментариев. В комментарий по желанию автора кода может быть включена любая информация.

ПРАВИЛА КОММЕНТИРОВАНИЯ







Тип комментария

Описание комментария

Назначение

Описание действий, совершаемых процедурой (но не того, каким образом совершаются эти действия)

Предположения

Список всех внешних переменных, элементов управления, открытых файлов, к которым осуществляется доступ из процедуры

Произведенный эффект

Список внешних переменных, элементов управления или файлов, на которые влияет данная процедура (если это влияние не очевидно)

Входные данные

Описание назначения аргументов

Возвращает

Описание значений, возвращаемых процедурой

Также рекомендуется принять во внимание следующие моменты.

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

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

  • Комментарии не могут располагаться за последовательностью продолжения строки в той же строке.


Можно добавить или удалить символы комментария для блока кода, выбрав одну или несколько строк кода и выбрав Комментарий (   ) и раскомментировать (   ) на панели инструментов изменить .
Примеры:

text1.Text = "Hi!" ‘Это пример комментария
text1.Text = "Hi!" ‘Это пример двойного комментария

text2.Text = "World!" ‘Это пример двойного комментария

Комментирование отдельной строки с использованием ключевого слова REM в VBA


Это наименее рекомендуемый метод, потому что у него есть свои подводные камни:

  • Это ключевое слово не позволяет вам добавлять комментарии где-либо в середине вашего кода.

  • Для правильной оценки комментария всегда требуется хотя бы один пробел между REM и вашей строкой текста.

Пример 1:

Sub CommentEx2()

Rem Комментарий

End Sub

Пример 2:

Sub CommentEx2()

Dim a, b, c

a = 5

b = 15

c = a + b

MsgBox "" & c

Rem c – сумма а и b

End Sub
66. Запишите в общем виде форму вызова оператора, который устанавливает ссылку на вновь созданный или существующий объект. Приведите 3 примера. Укажите к каким объектам он не применим и почему.

Синтаксис: Set Obj = {[ New ] Objpr | Nothing }

Синтаксис оператора Set состоит из следующих элементов.

СИНТАКСИС

Часть

Описание

Obj

Обязательный. Имя переменной или свойства; соответствует стандартным соглашениям об именовании переменных.

New

Необязательно. New обычно используется во время объявления разрешения создания неявных объектов. Когда New используется с Set, он создает новый экземпляр класса. Если objectvar содержал ссылку на объект, эта ссылка освобождается, когда назначается новая. Ключевое слово New не может использоваться для создания новых экземпляров любого встроенного типа данных и не может использоваться для создания зависимых объектов.

Objpr

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

Nothing

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


Чтобы элемент objectvar был допустимым, он должен представлять собой тип объекта, согласующийся с назначаемым ему объектом.
Примеры:
Dim mas(1 to 4) As Form1

Set mas(1) = New Form1

Set mas(2) = New Form1

Set mas(3) = New Form1

Set mas(4) = New Form1
Dim YourObject, MyObject, MyStr

Set MyObject = YourObject

YourObject.Text = "Hello World" ' задаем значение

MyStr = MyObject.Text ' возвращает "Hello World".

YourObject.

Set MyObject = Nothing ' опустошает объект
Public Function odoc() 'Процедура создания Документа
Dim TempPath As String
Set doc = CreateNewWordDocument(TempPath)
doc.Activate
End Function
67. Запишите в общем виде форму вызова операторов изменения текущего диска и изменения текущего каталога. Приведите по 2 примера для каждого.

Синтаксис: ChDir path для каталога и папки

ChDrive “название диска” для диска

Обязательный path аргумент Path — это строковое выражение , определяющее, какой каталог или папка становится новым каталогом или папкой по умолчанию. Аргумент path может содержать название диска. Если диск не указан, оператор ChDir изменяет каталог или папку по умолчанию на текущем диске.

Инструкция chdir изменяет каталог или папку по умолчанию, но не изменяет диск по умолчанию. Другой оператор, ChDrive, изменяет диск, используемый по умолчанию.
Пример:

Chdir ".." ' Переход в папку на уровень выше

Chdir "..\.." ' -"- на 2 уровня выше

Chdir "..\..\DocDir" ' -"- на 2 уровня выше, а там - в указанную подпапку

Chdir "C:\MyArchive" ' Обычное использование

Инструкция для смены текущего диска (ChDrive) работает довольно примитивно. Так, вариант

ChDrive "D" или ChDrive "С"

определит текущим диском диск «D:». Из примера видно, что приводится только литерал, без двоеточия.

В этом примере оператор ChDir используется для изменения текущего каталога или текущей папки. Если диск по умолчанию — C, диск по умолчанию остается в, даже если папка по умолчанию изменяется на папку на диске D:

ChDir "D:\WINDOWS\SYSTEM"

68. Запишите в общем виде форму вызова всех операторов цикла с постусловиями. Приведите 2 примера для каждого.

Цикл называется циклом с постусловием, если условие выхода из цикла стоит в конце, после тела цикла. Синтаксис:

Do { While | Until } condition

[ statements ]

[ Continue Do ]

[ statements ]

[ Exit Do ]

[ statements ]

Loop

' -or-

Do

[ statements ]

[ Continue Do ]

[ statements ]

[ Exit Do ]

[ statements ]


'Проверка номера телефона

Dim n As Integer 'Введенный номер

Dim k As Byte 'Счетчик цифр

n = Val(TextBox1.Text) 'считываем номер из тектбокса

k = 0

Do

k = k + 1

n = n \ 10

Loop Until n = 0

If k = nmax Then

Label2.Text = "Соединение возможно" : Beep()

ElseIf k < nmax Then

Label2.Text = "Неправильно набран номер: не хватает цифр"

Else

Label2.Text = "Неправильно набран номер: слишком много цифр"

End If


'Разложение на простые множетели

Dim n, n1 As Integer 'Исходное число и его дубликат

Dim del As Byte 'Простой делитель

Dim str As String 'Строка для вывода

n = Val(TextBox1.Text)

del = 2

n1 = n

Str = ""

Do

If n Mod del = 0 Then

n = n \ del

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

str = str & CStr(del)

'Выводится "*" после всех множителей, кроме последнего

If n <> 1 Then str = str & "*"

Else

'После "2" все простые множители нечетны

If del = 2 Then del = 3 Else del = del + 2

End If

Loop Until n = 1

Label1.Text = n1 & "=" & str 'Вывод


Термин

Определение

Do

Обязательный. Запускает определение Do цикла.

While

Является обязательным, если используется параметр Until. Повторите цикл, пока condition не будет False .

Until

Является обязательным, если используется параметр While. Повторите цикл, пока condition не будет True .

condition

Необязательный элемент. Выражение Boolean. Если condition имеет значение Nothing , Visual Basic обрабатывает его как False .

statements

Необязательный элемент. Одна или несколько инструкций, повторяемых в, или до, condition имеют True .

Continue Do

Необязательный элемент. Передает управление следующей итерации Do цикла.

Exit Do

Необязательный элемент. Передает управление за пределы Do цикла.

Loop

Обязательный элемент. Завершает определение Do цикла.
Loop { While | Until } condition

69. Запишите в общем виде форму вызова всех операторов цикла с предусловиями. Приведите по 1 примеру каждого.

Цикл Do...Loop, уточняемый оператором While, выполняется до тех пор, пока верно условие, задаваемое в цикле. Если же конструкция цикла уточняется оператором Until, то цикл выполняется до тех пор, пока заданное условие ложно.
Синтаксис:

Do While (Until) <условие>

<блок операторов>

Loop
Цикл While … Wend также относится к циклам с условием. Данный оператор полностью соответствует структуре Do While … Loop.
Синтаксис:

While <условие>

<блок операторов>

Wend


Do While … Loop

Do UntilLoop

While … Wend

Sub test1()

Dim a As Byte

Do While a < 100

a = a + 7

Loop

MsgBox a

End Sub

Sub test2()

Dim a As Byte

Do Until a >100

a = a + 7

Loop

MsgBox a

End Sub



Sub test3()

Dim a As Byte

While a < 100

a = a + 7

Wend

MsgBox a

End Sub




Во всех примерах информационное сообщение MsgBox выведет число 105

70. Запишите в общем виде форму вызова оператора счетного цикла. Приведите 3 примера.
Оператор For … Next это типовой цикл со счетчиком, выполняющий заданное число итераций.
Синтаксис:

For <счетчик> = <начЗначение> То <конЗначение> [Step <приращение>]

<блок операторов>

Next [<счетчик>]


Заполняем десять первых ячеек первого столбца таблицы цифрами от 1 до 10:

Sub test1()

Dim i As Long

For i = 1 To 10

Cells(i, 1) = i

Next i

End Sub

Добавлен оператор Step со значением 3, результаты записываются во второй столбец:

Sub test2()

Dim i As Long 

For i = 1 To 10 Step 3

Cells(i, 2) = i

Next i

End Sub




Этот цикл заполняет десять первых ячеек третьего столбца в обратной последовательности:

Sub test3()

Dim i As Long

For i = 0 To -9 Step -1

Cells(i + 10, 3) = i + 10

Next i

End Sub




71.Запишите в общем виде форму вызова оператора перебора счётного цикла. Приведите 2 примера.
Оператор цикла For Each … Next относится к категории операторов объектного типа, т.е. применяется в первую очередь к коллекциям объектов, а также к массивам. Тело цикла выполняется фиксированное число раз, соответствующее числу элементов массива или коллекции.
Синтаксис:

For Each <элемент> In <группа>

<блок операторов>

Next [<элемент>]


Указанный ниже код перебирает все элементы массива и устанавливает для каждого из них значение переменной-счетчика I:

Dim TestArray(10) As Integer, I As Variant

For Each I In TestArray

TestArray(I) = I

Next I

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

Sub CloseForms()

For Each frm In Application.Forms

If frm.Caption <> Screen. ActiveForm.Caption Then frm.Close

Next frm

End Sub


72.Запишите в общем виде все форма вызова оператора выхода из цикла. Приведите 2 примера для каждого.

Для досрочного завершения итерации и выхода из цикла применяется оператор Exit. Этот оператор применим в любой циклической структуре, кроме While … Wend
Синтаксис:

<начало_цикла>

[<блок операторов1>]

Exit (For | Do)

[<блок операторов2>]

[Exit (For | Do)]



<конец_цикла>



Exit Do

Exit For

Dim index As Integer = 0

Do While index <= 100

If index > 10 Then

Exit Do

End If

Loop

Exit Do останавливает цикл, когда переменная индекса больше 10

Sub test2()

For i = 1 To 10000000

If i = 10 Then

Exit For ‘выход из цикла, когда счетчик достигнет 10

End if

Next i

End Sub

Sub test3()

Dim a As Byte, n As Long

Do While a < 10

  a = a + 1

  n = n + 1

    If a = 9 Then

      a = 0

    End If

    If n = 1000 Then

Exit Do

    End If

Loop

End Sub

Когда число итераций цикла дойдет до 1000, он будет завершен

Dim Sum As Integer
Dim j As Integer
Sum = 2
For j = 1 To 10
Sum = Sum + j
If Sum > 6 Then
Exit For Выход из цикла, если значение Sum больше 6
End If
Next j

73. Запишите в общем виде форму вызова оператора условия. Приведите 4 примера так, чтобы среди них были варианты с одним выходом или с двумя.

If … Then … Else …
If … Then

ElseIf

Else

End If
Примеры:
1)
If условие Then действие Else действие

2)
If условие Then
действие

End If

3)
If условие Then действие
ElseIf условие Then действие

Else действие
End If

4)
If условие Then действие
ElseIf условие Then
действие

Else
действие

End If

Else действие
End If
74. Запишите в общем виде форму вызова оператора множественного выбора. Приведите 2 примера.
SelectCase *выражение какого-либо типа данных*
Case *одно из значений выражения*
действие
CaseElse
действие
EndSelect


Примеры:


1)
Dim number As Integer = 8
Select Case number
Case 1 To 5
Debug.WriteLine("Between 1 and 5 ")
Case 6, 7, 8
Debug.WriteLine("Between 6 and 8")
Case 9 To 10
Debug.WriteLine("Equal to 9 or 10")
Case Else
Debug.WriteLine("Not between 1 and 10")
End Select


2)
a = 5
Select Case a
Case 5: MsgBox "a=5"
Case 7 To 9: MsgBox "a между 7 и 9"
Case Else: MsgBox "a не подходит"
End Select


75. Каким символом можно обеспечить, чтобы можно было записать 2 оператора в одной строке. Приведите 4 примера.

Символ « : ».

Примеры:

1) Dim text As String = "text" : MsgBox(text)
2) Dim a, b As Integer : a = 4 : b = a ^ 2
3) for i = 1 to 10: Arr[i] = I : next
4) If a = 1 Then b = 2 : If b = 2 Then c = 3

76. Запишите в общем виде форму вызова оператора, который позволяет переименовывать каталоги (папки) и файлы и перемещать файлы. Приведите 4 примера его использования.

Name [Исходный файл] As [Новый файл]

Примеры:

1)
sFileName = "C:\WWW.xls"
sNewFileName = "D:\WWW.xls"
Name sFileName As sNewFileName

2)
sFileName = "C:\WWW.xls"
sNewFileName = "C:\WWW1.xls"
Name sFileName As sNewFileName

3)
sFileName = "C:\WWW.xls"
sNewFileName = "C:\WWW1.xls"
sNewFilePath = "D:\WWW1.xls"
Name sFileName As sNewFileName
Name sFileName As sNewFilePath

4)
OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE"
Name OldName As NewName

77. Запишите в общем виде форму вызова оператора, который моделирует ввод с клавиатуры. Приведите 3 примера реальных ситуаций, когда это применимо.

Общий вид:



Prompt - обязательный аргумент, который задает в диалоговом окне информационное сообщение.
Title - необязательный аргумент, который задает в диалоговом окне заголовок.
Default - необязательный аргумент, который задает ответ по умолчанию, если ввод не будет выполнен пользователем.
XPos - необязательный аргумент, который задает положение диалогового окна по горизонтальной оси.
YPos - необязательный аргумент, который задает положение диалогового окна по вертикальной оси.
HelpFile - необязательный аргумент, которая определяет файл, в котором содержится контекстная справка для данного диалогового окна. Если задан данный аргумент, также нужно указать аргумент Context.
Context - необязательный аргумент, представляющий собой номер контекста, присвоенный автором справки соответствующему разделу. Если задан данный аргумент, также нужно указать аргумент HelpFile.

Пример 1: в данном примере приводится ситуация вычисления значения y для заданной функции, после ввода пользователем значения ведется проверка, числовое значение или нет, после, если проверка показала, что значение числовое, вычисляется значение y и выводится пользователю с помощью MsgBox.
Пример 2: в данном примере вычисляется площадь прямоугольника, сначала пользователя вводит значения сторон a и b, если они числовые, то вычисляется площадь и выводится с помощью MsgBox, в противном случае, выводится сообщение о том, что было введено не числовое значение.
П ример 3: InputBox также можно использовать как средство доступа к форме, в нижеприведенном случае пользователю нужно ввести верный пароль для доступа к форме, если пароль верный, то выводится сообщение о том, что доступ разрешен и вызывается форма, если пароль не верный, то только выводится сообщение о том, что доступ запрещен.

78. Запишите метод объекта Document и все его параметры, который применяется, чтобы очистить буфер отмены изменений. Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

О бщий вид:

Данный метод никакими параметрами не обладает.

Пример 1: в данном примере поочередно печатаются 2 текста: “Текст1” и “Текст2”, так как метод UndoClear используется нами после того, как напечаталось “Текст1” и перед тем, как напечатать “Текст2”, то отменить написание “Текст1” будет нельзя, но отменить написание “Текст2” будет можно.


Пример2: в данном примере поочередно печатаются 2 текста: “Текст1” и “Текст2”, так как метод UndoClear используется нами после того, как напечатались “Текст1” и “Текст2”, то отменить написание этих двух текстов будет нельзя.


79. Запишите метод объекта Document и все его параметры, который передаёт управление на Ваш документ, активизирует его. Приведите пример и опишите к чему приведёт выполнение указанной строчки.

О бщий вид:

Данный метод никакими параметрами не обладает.

Пример: в данном примере открывается документ по заданному нами пути, это делается, потому что для активации докумена документ должен быть открыт, после открытия мы активируем данный документ и теперь при обращении к свойству ActiveDocument мы будем обращаться к активированному ранее документу.



80. Запишите метод объекта Range и все его параметры, который позволяет позволяет заменить заданный диапазон символов или выделения на новый абзац. Приведите 2 примера и в каждом укажите, что сделает метод с текстом.

О бщий вид:

Expression – переменная, которая представляет объект Range.
Данный метод никакими параметрами не обладает.

Пример 1: в данном примере диапазон всего документа заменяется на новый абзац и после этого печатается текст.


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


81. Запишите метод объекта Range и все его параметры, который предназначен для вставки символа в заданное место диапазона или выделения. Приведите 2 примера и в каждом укажите, что сделает метод с текстом.

Синтаксис: Text (нужный текст)

Пример 1:

Set gRange = ThisDocument.Range(9, 10)

gRange.Text = " Insert "

Данный фрагмент кода заменяет десятый символ документа на “ insert ”.

Пример 2:

With ActiveDocument.Content.Find

.Text = "введите имя"

.Replacement.Text = " Филипп Дик "

.Execute Replace:=wdReplaceAll

End With

Данный фрагмент кода заменяет набор символов “введите имя” на “ Филипп Дик ”.

82. Запишите метод объекта Range и все его параметры, который вставляет заданный текст в конце диапазона или выделения. Приведите 2 примера и в каждом укажите, что сделает метод с текстом.

Синтаксис: InsertAfter "нужный текст" – вставляет текст после выделенного текста/символа.

Пример 1:

Set gRange = ThisDocument.Range(9, 10)

gRange.Bold = True

gRange.InsertAfter "insert"

Данный кусок кода вставляет слово “insert” после десятого символа в документе, затем делает жирным 10-й символ и вставленное слово “insert”

Пример 2:

Set oRange = ThisDocument.Range

gRange. Italic = True

gRange.InsertAfter "insert"

Данный кусок кода накладывает на весь текст документа курсив и вставляет слово “insert” после него.

83. Запишите метод объекта Range и все его параметры, который вставляет указанный текст перед заданным диапазоном. Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

Синтаксис: InsertBefore "нужный текст" – вставляет текст перед выделенным текстом/символом.

Пример 1:

Set gRange = ThisDocument.Range(8, 9)

gRange.Italic = True

gRange.InsertBefore"insert"

Данный кусок кода вставляет слово “insert” перед девятым символом в документе, затем делает курсивным 9-й символ и вставленное слово “insert”

Пример 2:

Set oRange = ThisDocument.Range

gRange. Bold = True

gRange.InsertBefore "insert"

Данный кусок кода вставляет слово “insert” перед текстом, затем делает весь текст документа жирным.

  1. Запишите метод объекта Range и все его параметры, который сворачивает диапазон или выделенный фрагмен в начальную или конечную позицию. Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

Ответ:

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

Свойствами объекта Range являются:

  • Start - начальная символьная позиция диапазона.

  • End - конечная символьная позиция диапазона.

  • Text - позволяет получить или изменить содержимое объекта.

Метод Collapse - сворачивает диапазон или выделенный фрагмент в начальную или конечную позицию. После сворачивания диапазона или выделенного фрагмента начальная и конечная точки равны.

Его параметр – Direction.

Синтаксис

выражение. Collapse( _Direction_ )

выражение (обязательно). Переменная, представляющая объект Range.

Имя

Обязательный или необязательный

Тип данных

Описание

Direction

Необязательный

Variant

Направление, в котором нужно свернуть диапазон или выделенный фрагмент. Может быть любой из следующих констант вдколлапседиректион (WdCollapseDirection) вдколлапсинд (wdCollapseEnd)  или вдколлапсестарт (wdCollapseStart). Значение по умолчанию — вдколлапсестарт (wdCollapseStart).

Примечания

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

Set myRange = ActiveDocument.Paragraphs(1).Range

myRange.Collapse Direction:=wdCollapseEnd

myRange.MoveEnd Unit:=wdCharacter, Count:=-1

Пример 1

В этом примере показано, как задать именованному myrange равным содержимому активного документа, свернуть именованному myrange, а затем вставляет таблицу 2x2 в начале документа.

' приведу пример процедуры, которая вставляет таблицу 2 на 2 в начало документа

Public Sub A1()

Set myRange = ActiveDocument.Content

myRange.Collapse Direction:=wdCollapseStart

ActiveDocument.Tables.Add Range:=myRange, NumRows:=2, NumColumns:=2

End Sub

Пример 2

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

' приведу пример процедуры, которая вставляет таблицу 10 на 15 в конец документа

Public Sub A2()

Set myRange = ActiveDocument.Content

myRange.Collapse Direction:=wdCollapseEnd

ActiveDocument.Tables.Add Range:=myRange, NumRows:=10, NumColumns:=15

End Sub

  1. Запишите метод объекта Range и все его параметры, который вставляет страницу, столбец или разрыв раздела. Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

Ответ:

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

Свойствами объекта Range являются:

  • Start - начальная символьная позиция диапазона.

  • End - конечная символьная позиция диапазона.

  • Text - позволяет получить или изменить содержимое объекта.

Метод InsertBreak - вставляет страницу, столбец или разрыв раздела.

Его параметр – Type.

Синтаксис

выражение. InsertBreak( _Type_ )

выражение (обязательно). Переменная, представляющая объект Range.

Имя

Обязательный или необязательный

Тип данных

Описание

Type

Необязательный

Variant
Тип вставляемого разрыва. Может быть одной из констант вдбреактипе (WdBreakType). Если этот параметр не указан, по умолчанию используется значение вдпажебреак (wdPageBreak).

Примечания

При вставке страницы или разрыва столбца диапазон заменяется на разрыв. Если вы не хотите заменять диапазон, используйте метод сворачивания перед использованием метода InsertBreak . При вставке разрыва раздела разрыв вставляется непосредственно перед диапазоном.

Некоторые из перечисленных выше констант могут быть недоступны, в зависимости от того, какой языковой параметр (например, Английский (США)) выбран или установлен.

Пример 1

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

Public Sub A1()

Set myRange = ActiveDocument.Paragraphs(2).Range

With myRange

.Collapse Direction:=wdCollapseEnd

.InsertBreak Type:=wdPageBreak

End With

End Sub

Пример 2

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

Public Sub A2()

Set myRange = ActiveDocument.Paragraphs(5).Range

With myRange

.Collapse Direction:=wdCollapseEnd

.InsertBreak Type:=wdSectionBreakEvenPage

End With

End Sub

  1. Запишите метод объекта Range и все его параметры, который задает позиции начального и конечного символов для существующего диапазона. Приведите 2 примера: выбор подстроки "хм" в диапазоне и обрезание диапазона до 100 символов.

Ответ:

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

Свойствами объекта Range являются:

  • Start - начальная символьная позиция диапазона.

  • End - конечная символьная позиция диапазона.

  • Text - позволяет получить или изменить содержимое объекта.

Метод SetRange - задает позиции начального и конечного символов для существующего диапазона.

Его параметры – Start, End.

Синтаксис

выражение. SetRange( _Start_ , _End_ )

выражение (обязательно). Переменная, представляющая объект Range.

Имя

Обязательный или необязательный

Тип данных

Описание

Start

Обязательный

Long

Позиция первого символа диапазона.

End

Обязательный

Long

Позиция конечного символа диапазона.

Примечания

Значения позиции символов начинаются с начала статьи, а первое значение — 0 (ноль). Подсчитываются все символы, включая непечатаемые символы. Скрытые символы подсчитываются даже в том случае, если они не отображаются.

Метод SetRange переопределяет начальные и конечные позиции существующего объекта Range . Этот метод отличается от метода Range , который используется для создания диапазона с учетом начального и конечного положения.

Пример 1

В 1 примере выбираем подстроку «хм». Для этого сначала обозначим диапазон. Диапазоном выбрали 1-3 абзацы активного документа (можно взять весь документ, но решили усложнить задачу). Затем выбор подстроки был понят как выделение данной подстроки (цветом или подчёркиванием). Как выделение подстроки решили взять выделение цветом (красным). Для поиска брали объект Range, чтобы удовлетворить условию задания.

Public Sub A1() ' ищем подстроку "хм"

Set myRange = ActiveDocument.Paragraphs(1).Range ' как диапазон берём 1-3 абзацы документа

myRange.SetRange Start:=myRange.Start, _

End:=ActiveDocument.Paragraphs(3).Range.End

Const цвет = vbRed ' выделим подстроку "хм" цветом, например, красным, он заметнее

With myRange.Find ' находим подстроку в диапазоне от 1 до 3 абзацев

.Text = "хм" ' находим подстроку "хм"

.HitHighlight .Text, цвет ' выделяем её

End With

End Sub

Пример 2

Во 2 примере обрезаем диапазон до 100 символов. На этот раз возьмём как диапазон весь документ (в прошлый брали 1-3 абзацы). Берём дополнительную переменную k, которая будет хранить в себе первые 100 символов документа. Если в документе более 100 символов (считаем через Len(myRange)), то в переменную k «запоминаем» эти 100 символов (через Left(myRange, 100)), затем удаляем весь диапазон (myRange.Delete). Чтобы «вернуть» 100 символов, присваиваем ранее взятому диапазону переменную k (myRange.Text = k).

Public Sub A2() ' обрезание диапазона до 100 символов

Set myRange = ActiveDocument.Range ' как диапазон можем взять весь активный документ

myRange.SetRange Start:=myRange.Start, _

End:=ActiveDocument.Range.End

Dim k ' в данную переменную "запомним" нужные символы (до 100 символов)

If Len(myRange) > 100 Then ' если в активном документе более 100 символов, то начинаем его обрезать

k = Left(myRange, 100) ' "запоминаем" первые 100 символов

myRange.Delete ' удаляем весь диапазон

myRange.Text = k ' затем "присваиваем" диапазону текст, который ранее "закинули" в переменную

End If

End Sub

87 Билет

Запишите метод объекта Range и все его параметры, который перемещает или расширяет начальную позицию указанного диапазона или выделенного фрагмента до начала ближайшей указанной единицы текста. Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

Метод Range. Expand (Word)

Разворачивает указанный диапазон или выделенный фрагмент. Возвращает число символов, добавленных к диапазону или выделенному фрагменту. Long.

выражение. Expand( _Unit_ )

выражение (обязательно). Переменная, представляющая объект Range .

Параметры

ПАРАМЕТРЫ

Имя

Обязательный или необязательный

Тип данных

Описание

Unit

Необязательный

Variant

Единица, на которую разворачивается диапазон. Может быть одной из следующих констант  WdUnits : wdCharacterwdWordwdSentencewdParagraphwdSectionwdStorywdCell wdColumnwdRow, or wdTable.

Пример

Set myRange = ActiveDocument.Words(1)

myRange.Expand Unit:=wdParagraph

2 пример

With Selection

.Characters(1).Case = wdTitleSentence

.Expand Unit:=wdSentence

End With
88 Билет

Запишите метод объекта Application и все его параметры, который запускает макрос на языке Visual Basic. Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

Метод

Application.InputBox ( Prompt , Title , Default , Left , Top , HelpFile , HelpContextID , Type )

Параметры

ПАРАМЕТРЫ

Имя

Обязательный или необязательный

Тип данных

Описание

MacroName

Обязательный

String

Имя макроса.

varg1... varg30

Необязательный

Variant

Значения параметров макросов. Указанному макросу можно передать до 30 значений параметров.

Пример

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

Dim strTemplate As String

Dim strModule As String

Dim strMacro As String

Dim strParameter As String




strTemplate = InputBox("Enter the template name")

strModule = InputBox("Enter the module name")

strMacro = InputBox("Enter the macro name")

strParameter = InputBox("Enter a parameter value")

Application.Run MacroName:=strTemplate & "." _

& strModule & "." & strMacro, _

varg1:=strParameter

Пример 2

Из макроса run1 запустить макрос run2 с передачей параметра

Sub run1()

Application.Run "run2", 123

End Sub
89 Билет

Запишите метод объекта Application и все его параметры, который открывает новое окно с тем же документом, что и в указанном окне. Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

Метод Application.

Открывает новое окно с тем же документом, что и в указанном окне. Возвращает объект Window .

Пример

В этом примере заносится сообщение с указанием количества окон, которые существовали до и после открытия нового окна для document1.

MsgBox Windows.Count & " windows open"

Windows("Document1").NewWindow

MsgBox Windows.Count & " windows open"

Пример 2

В этом примере открывается новое окно, размещается все открытые окна, закрывается новое окно, после чего отменяется расположение открытых окон.

Set myWindow = NewWindow

Windows.Arrange ArrangeStyle:=wdTiled

myWindow.Close

Windows.Arrange ArrangeStyle:=wdTiled
90. Запишите метод объекта Range и все его параметры, который расширяет диапазон, чтобы включить всю статью (весь вставляемый текст). Приведите 2 примера и в каждом укажите, что конкретно сделает метод.

Ответ:
1   2   3   4   5   6   7


написать администратору сайта