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

Ответы на вопросы по 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
страница2 из 7
1   2   3   4   5   6   7

ПРЕОБРАЗОВАНИЕ ТИПОВ


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

CStr – преобразование в тип String.

variableorproperty=CStr(expression) Variableorproperty – любая текстовая переменная или свойство. Expression – любое текстовое выражение.

Dim Primer1, Pr As Integer

Pr = 2357

Primer1 = CStr(Pr)

‘Primer1 = “2357”

MsgBox(Primer1)

Dim Primer2, Pr As Double

Pr = 245.567

Primer2 = CStr(Pr)

‘Primer2 = “245.567”

MsgBox(Primer2)

Dim Primer3, Pr As Single

Pr = -3.4028

Primer3 = CStr(Pr)

‘Primer3 = “-3.4023”

MsgBox(Primer3)


(8) Запишите в общем виде форму вызова функции, которая возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа. Приведите 3 примера и в каждом укажите, что вернёт функция.

Val(строка) 
Обязательный строковый аргумент — любое допустимое строковое выражение.

Функция Val перестает считывать строку на первом символе, которая не может быть распознана как часть числа. Символы и знаки, которые обычно считаются частью числа (например, знак доллара и запятая), не распознаются. 
Однако функция распознает префиксы &O системы счисления (восьмеричные) и &H (для шестнадцатеричного). Пробелы, символы табуляции и знаки перевода строк удаляются из значения аргумента.

Примеры.

1.

В следующем примере возвращается значение 2121171:

Val(" 2121 171th Street N.E.")

2.

В приведенном ниже коде функция Val возвращает десятичное значение – 1 для шестнадцатеричного значения, отображаемого следующим образом:

Val("&HFFFF")

3.

В этом примере функция Val возвращает числа, содержащиеся в строке.

Dim MyValue 
MyValue = Val("2263") ' Вернется 2263. 
MyValue = Val(" 2 26 3") ' Вернется 2263. 
MyValue = Val("18 and 57") ' Вернется 18.

(9) Запишите в общем виде форму вызова функции, которая возвращает целую часть заданного числа. Приведите 4 примера и в каждом укажите, что вернёт функция.

Int(число) 
Fix(число)

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

Примеры.

В этих примерах показано, как функции Int и Fix возвращают целые части чисел. Если используется отрицательный числовой аргумент, функция Int возвращает первое отрицательное целое число, которое меньше или равно этому числу; функция Fix возвращает первое отрицательное целое число, которое меньше или равно этому числу.

1.

Dim MyNumber 
MyNumber = Int(99.8) ' Вернется 99. 
MyNumber = Fix(99.2) ' Вернется 99. 

2.
Dim MyNumber 
MyNumber = Int(-99.8) ' Вернется -100. 
MyNumber = Fix(-99.8) ' Вернется -99.
3.

Dim MyNumber 
MyNumber = Int(-99.2) ' Вернется -100. 
MyNumber = Fix(-99.2) ' Вернется -99.

4.


Private Sub Numeber() 
Debug.Print Int(1.2) 'возвращает
Debug.Print Int(-1.2) 'возвращает -2 
End Sub

(10) Запишите в общем виде форму вызова функции, которая возвращает значение даты, полученное из строки. Приведите 3 примера и в каждом укажите, что вернёт функция.

Date() — возвращает текущую системную дату.

Dim MyDate 
MyDate = Date ' MyDate содержит текущую системную дату.

Примеры.

1.Sub dateeee() 
Dim a as Variant 
a = date() 
msgbox "Дата: " &
End Sub ‘После выполнения функции будет следующее: Дата: 00/00/0000(Вместо 0 будет дата)

2.DatePart() — функция возвращает указанную часть даты (например, только год, только месяц или только день недели), на основании заданной даты.

Dim TheDate As Date ' Declare variables. 
Dim Msg 
TheDate = InputBox("Enter a date:") 
Msg = "Quarter: " & DatePart("yyyy", TheDate) 
MsgBox Msg

В этом примере берется дата и с помощью функции DatePart отображается год, на который она приходится.

3.В этом примере берется некоторая дата и с помощью функции DateAdd отображается дата, соответствующая ей через указанное число месяцев в будущем.

Dim FirstDate As Date 'Объявить переменные
Dim IntervalType As String 
Dim Number As Integer 
Dim Msg As String 
IntervalType = "m" ' "m" указывает месяцы как интервал
FirstDate = InputBox("Введите дату") 
Number = InputBox("Введите количество месяцев для добавления ") 
Msg = "New date: " & DateAdd(IntervalType, Number, FirstDate) 
MsgBox Msg

(11) Запишите в общем виде форму вызова процедуры (функции), которая удаляет пробелы в начале и в конце строки. Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура.

  • LTrim(строка) — удаление пробелов слева;

  • RTrim(строка) — удаление пробелов справа;

  • Trim(строка) — удаление пробелов слева и справа.

Selection.Text = Trim(Selection.Text)

Примеры.

1.

Function myTrim(text As String) As String

'Удаляем пробелы слева и справа строки

text = Trim(text)

'Удаляем лишние пробелы внутри строки

    Do While InStr(text, "  ")

      text = Replace(text, "  ", " ")

    Loop

  myTrim = text

End Function

2.

Sub Primer()

Dim a1 As String

a1 = " Солнце   светит     сильно "

MsgBox Trim(a1) & vbCrLf _

& WorksheetFunction.Trim(a1) _

& vbCrLf & myTrim(a1)

End Sub

В этом примере функция удалит лишние пробелы в заданном примере a1

3.

With Selection.Range 
.Collapse Direction:=Word.wdCollapseEnd 
.Move Unit:=wdCharacter, Count:=-1 
.Delete Unit:=wdCharacter, Count:=-1 
End With 

Пробелы убираются без Trim

12 вопрос Запишите в общем виде форму вызова процедуры (функции), которая возвращает символ ANSI, соответствующий числовому значению параметра. Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура.

Функция Chr

Chr(CharCode)

Функция Chr(Character)позволяет получить символ по значению его числового кода ANSI или Unicode

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

Функции Chr возвращают значение субтипа String типа Variant, содержащее символ, соответствующий указанному коду символа ANSI.

Параметры

CharCode

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

Dim MyChar

MyChar = Chr(65)

Debug Print MyChar ' Возвращается A.
Пример 2

Dim MyChar

MyChar = Chr(62)

Debug Print MyChar ' Возвращается >.
Пример 3

Dim MyChar

MyChar = Chr(37)

Debug Print MyChar ' Возвращается %.


13 вопрос Запишите в общем виде форму вызова процедуры (или функции), которая возвращает текущую системную дату и время. Приведите 2 примера программных конструкций с данной функцией на получение данных о текущем дне недели и о вычислении числа дней до Нового года.

Функция Now возвращает значение Variant (Date), указывающее текущую дату и время в соответствии с системной датой и временем компьютера.

Общий вид: Mynow = Now

Пример 1

Получение текущего дня недели:

Sub Дата()

Dim Mynow As Date

Mynow = Now

MyWeekday = Weekday(Mynow) ' возвращает номер дня недели, где 1- воскресенье,...,7-суббота

MsgBox MyWeekday

End Sub

Пример 2

Вычисление числа дней до Нового года:

Sub www()

Dim d1 As Date, d2 As Date

d1 = #1/1/2022# 'Задаём дату Нового года

d2 = Now 'Задаём нашу дату

MsgBox DateDiff("d", d2, d1) ' количество дней между двумя датами

End Sub

14 вопрос Запишите в общем виде форму вызова функции для определения длины строки. Приведите 3 примера: определение числа символов в документе, размер максимального раздела и какой-то свой.

Функция Len

Len(String | Varname)
LenB(String | Varname)

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

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

Возвращает значение типа Long, содержащее число символов в строке или число байт, необходимое для размещения переменной

Параметры

String

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

Varname

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

Пример 1 (Свой)

Dim A as Byte

A = Len("Русский_Проект")' Вычисляем длину строки Русский_Проект

Print A

Пример 2

Определение числа символов в документе (не факт, что код корректный, поэтому следует перепроверить)

Public Sub A2()

Dim myRange as String
Set myRange = ActiveDocument.Range ' как диапазон можем взять весь активный документ
myRange.SetRange Start:=myRange.Start, _
End:=ActiveDocument.Range.End
Dim k

k = Len(myRange) ' находим длину файла
End Sub

Пример 3

размер максимального раздела

готового кода нет, поэтому кидаю только наработки

Set myRange = ActiveDocument.Paragraphs(1).Range ' как диапазон берём 1 абзац документа
myRange.SetRange Start:=myRange.Start, _
End:=ActiveDocument.Paragraphs(1).Range.End

т.е. весь подсчёт сводится к строчке Len(myRange)

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

Возвращает значение типа Variant (String), содержащее указанное число символов строки.

Синтаксис

Mid(строканачало, [ длина ])

Cинтаксис функции Mid состоит из следующих именованных аргументов:

СИНТАКСИС

Часть

Описание

строка

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

начало

Обязательный аргумент. Long. Позиция символа в строке, с которой начинается забираемая часть. Если значение аргумента начало больше, чем число символов в строке, функция Mid возвращает строку нулевой длины ("").

длина

Необязательный аргумент. Variant (Long). Число возвращаемых символов. Если не указано или если меньше, чем символов длины в тексте (включая символ в начале), возвращаются все символы от начальной позиции до конца строки.

Примеры:

Dim MyString, FirstWord, LastWord, MidWords

MyString = "Mid Function Demo" 'Создаём текстовую строку.

FirstWord = Mid(MyString, 1, 3) ' Возвращает "Mid".

LastWord = Mid(MyString, 14, 4) ' Возвращает "Demo".

MidWords = Mid(MyString, 5) ' Возвращает "Function Demo".

16. Запишите в общем виде форму вызова функции, которая удаляет пробелы в начале строки. Приведите 2 примера и в каждом укажите, что вернёт функция.

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

Синтаксис:

LTrim(строка)

Примеры:

  1. Dim MyString, String1

MyString = " anyString" ‘заполнение строки

String1 = LTrim(MyString)

‘переменная «String1» будет иметь значение «anyString»

  1. Dim s

s = " string" ‘заполнение строки

MsgBox LTrim(s)

‘будет сообщение с текстом «string»

17. Запишите в общем виде форму вызова процедуры (или функции), которая ищет подстроку в строке, но начинает поиск с конца строки и возвращает позицию последнего вхождения подстроки. Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура.

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

Синтаксис:

InStrRev(stringcheck, stringmatch[, start[, compare]])

Примеры:

Dim String1, Search, MyPos

String1 ="XXpXXpXXPXXP" 'строка, в которой будем искать

Search = "P" 'будем искать символ "P"

'бинарное сравнение строк начиная с позиции 10, возвращает 9

MyPos = InStrRev(String1, Search, 10, 0)

'сравнение строк как текст начиная со следующей позиции, возвращает 12

MyPos = InStrRev(String1, Search, -1, 1)

'бинарное сравнение строк по умолчанию (последний аргумент пропущен)

MyPos = InStrRev(String1, Search, 8) 'возвращает 0

18. Запишите в общем виде форму вызова процедуры (функции), которая выделяет из строки указанное количество символов справа. Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура.

Эта функция извлекает правую часть строки с заданным количеством символов.

Синтаксис:

Right(stringlength)

Примеры:

Dim MyString, String1

MyString = "Hello World" 'заполнение строки

String1 = Right(MyString, 1) 'Возвращает "d"

String1 = Right(MyString, 6) 'Возвращает " World"

String1 = Right(MyString, 20) 'Возвращает "Hello World"

19. Запишите в общем виде форму вызова процедуры (функции), которая ищет подстроку в строке. Возвращает позицию первого вхождения строки в строку с указанной позиции. Приведите 2 примера и в каждом укажите, что вернёт функция или сделает процедура.

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

Синтаксис:

InStr([начало], строка1, строка2, [сравнение])

Сокращенный вариант:

InStr(строка1, строка2)

Примеры:

Dim MyString, Search, String1

MyString ="Русский_Проект" 'строка, в которой будем искать

Search = "Р" 'будем искать символ "P"

'Посимвольное сравнение, начиная с позиции 4. Возвращает 10

String1 = Instr(4, MyString, Search, vbTextCompare)

'Двоичное сравнение, начиная с позиции 1. Возвращает 1

String1 = Instr(1, MyString, Search, 0)

'Сравнение является двоичным по умолчанию (последний аргумент опущен)

String1 = Instr(MyString, Search) 'Возвращает 1

String1 = Instr(1, MyString, "W") 'Возвращает 0

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

Общий вид: Replace (<строка>, <строка Поиск>, <строка Замена>)

Пример:

Sub Primer1()

Dim a

a = "идёт медведь, идёт лиса, идёт грач"

a = Replace(a, "идёт", "бежит”)

End Sub
‘Заменит «идёт медведь, идёт лиса, идёт грач» на «бежит медведь, бежит лиса, бежит грач»

Sub Primer2()

Dim b

b = "бежит медведь, бежит лиса, бежит грач"

b = Replace(b, "бежит", " идёт”)

End Sub
‘Заменит «бежит медведь, бежит лиса, бежит грач» на «идёт медведь, идёт лиса, идёт грач»

Вопрос 21. Запишите в общем виде форму вызова процедуры (или функции), которая даёт возможность преобразовать строку (в Unicode и обратно, в верхний и нижний регистр, сделать первую букву слов заглавной и т.п.). Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура.

Общий вид: StrConv(строка, Преобразование , [LCID] )

Пример:

Sub Primer1()

Dim a

a = StrConv("чиСтота – зАЛОг здОроВья", 1)

End Sub

‘Преобразует "чиСтота – зАЛОг здОроВья" в “ЧИСТОТА – ЗАЛОГ ЗДОРОВЬЯ"
Sub Primer2()

Dim b

b = StrConv("чиСтота – зАЛОг здОроВья", 2)

End Sub

‘Преобразует "чиСтота – зАЛОг здОроВья" в «чистота – залог здоровья»
Sub Primer3()

Dim c

c = StrConv("чиСтота – зАЛОг здОроВья", 3)

End Sub

‘Преобразует "чиСтота – зАЛОг здОроВья" в «Чистота – Залог Здоровья»

Вопрос 22. Запишите в общем виде форму вызова процедур (или функций), которые позволяют перевести строку в нижний и верхний регистры соответственно. Приведите по 2 примера каждой.

Общий вид: LCase((<строка>) и UCase((<строка>)

LCase – нижний регистр, UCase – верхний регистр


Пример:

Sub Primer1U ()

Dim LowerCase, UpperCase

LowerCase = "Hello World"

UpperCase = UCase(LowerCase)

End Sub

‘Преобразует "Hello World" в «HELLO WORLD»

Sub Primer2U ()

Dim LowerCase, UpperCase

LowerCase = "World"

UpperCase = UCase(LowerCase)

End Sub

‘Преобразует "World" в «WORLD»
Sub Primer1L ()

Dim LowerCase, UpperCase

LowerCase = " HELLO WORLD "

UpperCase = LCase(LowerCase)

End Sub

‘Преобразует " HELLO WORLD " в «hello world»

Sub Primer2L ()

Dim LowerCase, UpperCase

LowerCase = " WORLD "

UpperCase = LCase(LowerCase)

End Sub

‘Преобразует " WORLD " в «world»

Вопрос 23. Запишите в общем виде форму вызова процедуры вывода на экран окна сообщения. Приведите 3 примера.

Общий вид:

MsgBox «текст сообщения», встроенные константы, «заголовок окна»

Пример:

Sub Primer1 ()

MsgBox "Первый пример"

End Sub
‘Будет выведено сообщение “Первый пример”


Sub Primer2 ()

MsgBox "Второй пример", , "2"

End Sub
‘Будет выведено сообщение “Второй пример” с заголовком “2”

Sub Primer3 ()

MsgBox "Третий пример", , "3"

End Sub

‘Будет выведено сообщение “Третий пример” с заголовком “3”

24. Запишите в общем виде форму вызова функции для ввода текстовой информации пользователем во время работы приложения. Приведите 3 примера.

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

Общий вид: InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfilecontext ]), где

promptобязательный аргумент. Строковое выражение, отображающееся в диалоговом окне. Максимальная длина строки аргумента сообщение составляет приблизительно 1024 знака и зависит от их ширины.

title – необязательно. Строковое выражение, отображаемое в заголовке диалогового окна. Если аргумент заголовок пропущен, в заголовке выводится имя приложения.

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

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

ypos – необязательно. Числовое выражение, задающее в твипах расстояние по вертикали от верхнего края диалогового окна до верхнего края экрана. Если аргумент ypos пропускается, диалоговое окно позиционируется по вертикальной оси и отстоит от верхнего края окна примерно на треть от высоты экрана.

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

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

Примеры:

Sub ex1()

Dim Message, Title, Default, MyValue

Message = "Введите число от 1 до 3" ' установление prompt.

Title = "InputBox Demo" ' установление title.

Default = "1" ' установление default.

' Показать message, title, and default value.

MyValue = InputBox(Message, Title, Default)

' Использование Helpfile и context. Автоматически добавлена кнопка Help

MyValue = InputBox(Message, Title, , , , "DEMO.HLP", 10)

' Показать диалоговое окно в позиции 100, 100.

MyValue = InputBox(Message, Title, Default, 100, 100)

End Sub

Sub площадь()

Dim Length As Double

Dim Width As Double

Dim Sqrt

Length = InputBox(“Введите длину”, “Введите число”)

Width = InputBox(“Введите ширину”, “Введите число”)

Sqrt = Length * Width

MsgBox ("Площадь прямоугольника = ") & Sqrt

End Sub

Sub inputbox1()

Dim pers

pers = InputBox("Как Вас зовут?”, "Личная информация")

End Sub

25. Запишите в общем виде форму вызова процедуры (или функции), которая возвращает одномерный массив из элементов строки. Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура.

Общий вид:

Общий вид: Split(expression, [ delimiter, [ limit, [ compare ]]])

expression - обязательная часть. Строковое выражение, содержащее подстроки и разделители. Если аргумент expression является строкой нулевой длины (""), функция Split возвращает пустой массив — без элементов и данных.

delimiter - необязательно. Строковый символ, используемый для разделения подстрок. Если этот аргумент не указан, в качестве разделителя используется знак пробела (" "). Если аргумент delimiter является строкой нулевой длины, возвращается массив с одним элементом, содержащим всю строку из аргумента expression.

limit - необязательно. Количество возвращаемых подстрок; – 1 указывает, что возвращаются все подстроки.

compare - необязательно. Представляет собой числовое значение, указывающее вид сравнения, которое выполняется при оценке подстрок. 

Примеры:

Sub o()

Dim str() As String

str = Split("ghhgg - rfkgg - wfvl - sfw", " - ")

MsgBox str(0)

End Sub

Возвращает «ghhgg»

Sub o1()

Dim str() As String

str = Split("Красный оранжевый желтый зеленый", " ", 1)

MsgBox str(0)

End Sub

Возвращает «Красный оранжевый желтый зеленый»

Sub o2()

Dim str() As String

str = Split("Памzпамzламzзе", "лам", -1)

MsgBox str(0)

End Sub

Возвращает «Памzпамz»

26. Запишите в общем виде форму вызова функции, которая возвращает строку, отформатированную в соответствии с инструкциями, содержащимися в формате выражения. Приведите 3 примера и в каждом укажите, что вернёт функция.

Функция Format

Возвращает Variant (String), содержащий выражение expression, отформатированное в соответствии с инструкциями, включенными в выражение формата.

Общий вид: Format(Expression, [ Format ], [ FirstDayOfWeek ], [ FirstWeekOfYear ])

Expression - Обязательный атрибут. Любое допустимое выражение.

Format - Необязательный атрибут. Допустимое именованное или определяемое пользователем выражение формата.

FirstDayOfWeek - Необязательный атрибут. Константа, задающая первый день недели.

FirstWeekOfYear - Необязательный атрибут. Константа, задающая первую неделю года.

Примеры:

Function Example1()

Const Baza = #1/15/2021#

MsgBox Format(Baza, “General Date”)

End Function

Данная функция возвращает выражение «15.01.2021»

Function Example2()

Const Baza = #1/15/2021#

MsgBox Format(Baza, “Long Date”)

End Function

Данная функция возвращает выражение «15 Январь 2021 г.»

Function Example3()

Const Baza = #17:04:23#

MsgBox Format(Baza, "hh:mm:ss AM/PM")

End Function

Возвращает "05:04:23 PM".

27. Запишите в общем виде форму вызова функции, которая возвращает выровненную по правому краю строку, содержащую указанную строку, настроенную под указанную длину. Приведите 3 примера и в каждом укажите, что вернёт функция.
1   2   3   4   5   6   7


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