Ответы на вопросы по VBA. 1 Опишите модификатор Public. Для чего он, с какими элементами языка vba. Приведите 3 примера и в каждом укажите, что означает в примере использование Public
Скачать 245.69 Kb.
|
Общий вид: RSet stringvar = stringВозвращает выровненную по правому краю строку, содержащую указанную строку, настроенную под указанную длину. Stringvar – Обязательный. Имя строковой переменной. String - Обязательный аргумент. Строковое выражение для выравнивания по правому краю в stringvar.
28.Запишите в общем виде форму вызова функции, которая возвращает строку или объект, состоящие из указанного знака, повторенного определенное количество раз. Приведите 3 примера и в каждом укажите, что вернёт функция. StrDup(Number, Char) Dim aString As String = "Yennefer of Vengerberg" Dim aObject As New Object Dim testString As String aObject = "Hello! My name is Geralt of Rivia" ' Возвращает «KKKK» testString = StrDup(4, "K") ' Возвращает "YYYYYYYY" testString = StrDup(8, aString) ' Возвращает "aaaaaa" testString = CStr(StrDup(6, aObject)) 29.Запишите в общем виде форму вызова функции, которая возвращает строку, состоящую из указанного числа пробелов. Приведите 3 примера. Space(Number) Dim testString As String ' возвращает строку из 5 пробелов testString = Space(5) ' возвращает строку из 3 пробелов testString = Space(3) ' вставляет 2 пробела между двумя строками testString = "Hi" & Space(2) & " Geralt" 30.Запишите в общем виде форму вызова функции, которая возвращает строку, образуемую путем соединения нескольких подстрок, содержащихся в массиве. Приведите 3 примера и в каждом укажите, что вернёт функция. Join(SourceArray, Delimiter) Dim testItem() As String = {" Geralt”, "Yennefer", "Ciri"} ' Возвращает "Geralt, Yennefer, Ciri" Dim testSerialList As String = Join(testItem, ", ")
31. Запишите в общем виде форму вызова функции, которая возвращает массив (с индексацией от нуля), который содержит подмножество массива типа String, выделяемое согласно указанным условиям фильтрации. Приведите 3 примера и в каждом укажите, что вернёт функция. Общий вид - Filter(Object[], String, Boolean, CompareMethod) Начало для примеров 1, 2, 3 Dim testStrings(2) As String Dim subStrings() As String testStrings(0) = "Один" testStrings(1) = "Два" testStrings(2) = "Три" Пример 1 subStrings = Filter(testStrings, "Два", True, CompareMethod.Text) Результат: "Один", "Два". Пример 2 subStrings = Filter(testStrings, "Два", True, CompareMethod.Binary) Результат: "Один". Пример 3 subStrings = Filter(testStrings, "Два", False, CompareMethod.Binary) Результат: "Два", "Три". 32. Запишите в общем виде форму вызова функции, которая позволяет получить информацию о последнем времени обращения к указанному файлу. Приведите 2 примера и в каждом укажите, что вернёт функция. Общий вид - FileDateTime(PathName) Пример 1 Dim MyStamp Предположим, lab7.doc последний раз изменялся 04 января 2021 г. в 19:54:50. MyStamp = FileDateTime ("C:\lab7.doc") MsgBox MyStamp Результат: 04.01.2021 19:54:50 Пример 2 Dim MyDate Предположим, lab9.doc последний раз изменялся 12 января 2020 г. в 12:30:59. MyDate = FileDateTime ("C:\lab9.doc") MsgBox MyDate Результат: 12.01.2020 12:30:59 33. Запишите в общем виде форму вызова процедуры (или функции), которая открывает файл для записи и записывает данные в конец файла, а не перезаписывает текущие данные. Приведите 2 примера. Общий вид – Append # Пример 1 Dim MyString, MyNumber Open "FILE" For Append As #1 'открываем файл для записи в конец файла. Do While Not EOF(1) 'цикл до конца файла. Append #1, MyString, MyNumber Debug.Print MyString, MyNumber Loop Close #1 'закрываем файл. Пример 2 Sub SelectionToTxt() Dim s As String, rc As Range Dim ff 'запоминаем все значения из выделенной строки в строку For Each rc In Selection If s = "" Then 'если пока ничего не записали - присваиваем только значение ячейки s = rc.Value Else 'если уже записано - добавляем через TAB s = s & vbTab & rc.Value End If Next ff = FreeFile 'Открываем текстовый файл 'если файла нет - он будет создан Open "C:\Text1.txt" For Append As #ff 'записываем значение строки в файл Print #ff, s Close #ff ' Закрываем файл End Sub 34. Запишите в общем виде форму вызова процедуры (или функции), которая позволяет определить длину открытого файла в байтах. Приведите 3 примера. Общий вид – LOF(filenumber) FileNumber — это целое число, содержащее допустимый номер файла. Пример 1 Функция LOF используется для определения размера открытого файла. В этом примере предполагается, что TESTFILE это текстовый файл с образцами данных. Dim FileLength Open " D:\test.txt " For Input As #1 FileLength = LOF(1) Close #1 Пример 2 Sub LOF_Example() Dim a as String Open "D:\test.txt" For Input As 1 a = Input(LOF(1),1) ‘Чтение всего файла Close End Sub Пример 3 Текстовый файл запоминаем в переменную Private Sub txtInword() Dim ActiveDocumentRangeText As String Open "c:\ test.txt" For Input As 1 ActiveDocumentRangeText = Input(LOF(1), 1) Debug.Print Len(ActiveDocumentRangeText) Close 1 End Sub 35. Запишите в общем виде форму вызова процедуры (или функции), которая позволяет считывать из файла заданное количество байт. Приведите 3 примера. Функция Input Служит для чтения символьных или байтовых данных из файла, открытого инструкцией Open в режиме текстового ввода или бинарного доступа Возвращаемое значение Возвращает значение типа String, содержащее символы или байты из файла, открытого в режиме Input или Binary Параметры
Примечания Данные, считываемые с помощью функции Input, обычно записываются в файл с использованием оператора Print # или Put. Эта функция применима только к файлам, открытым в режиме Input или Binary В отличие от оператора Input #, функция Input возвращает все считанные символы, в том числе запятые, символы возврата каретки, символы перевода строки, кавычки и начальные пробелы Для файлов, открытых для доступа в режиме Binary, попытка чтения файла с помощью функции Input при возвращении функцией EOF значения True, приводит к ошибке. При чтении двоичных файлов с помощью функции Input следует вместо функции EOF использовать функции LOF и Loc или применять с функцией EOF оператор Get Замечание Для байтовых данных, содержащихся в текстовых файлах, пользуйтесь функцией InputB. В этом случае параметр Number указывает число байт (а не символов), которые следует вернуть
36. Запишите в общем виде форму вызова процедуры (или функции), которая возвращает число, которое определяет текущее место вставки или чтения в открытом файле. Приведите 3 примера. Функция Loc Loc(FileNumber) Функция Loc(Location of current position) определяет номер последней прочитанной/записанной записи или байта для файла, открытого инструкцией Open Возвращаемое значение Возвращает значение типа Long, указывающее текущую позицию записи/считывания в открытом файле Ниже перечислены значения, возвращаемые для каждого режима файла
Параметры
37. 37.Запишите в общем виде форму вызова процедуры (или функции), которая возвращает информацию о позиции, с которой будет выполняться следующая операция чтения или вставки. Приведите 2 примера. Функция Seek Seek(FileNumber) Функция Seek определяет текущее положение указателя чтения\записи внутри файла, открытого с помощью инструкции Open Возвращаемое значение Возвращает значение типа Long в интервале от 1 до 2 147 483 647 (т.е. 2^31 – 1) включительно, определяющее текущее положение указателя чтения/записи внутри файла, открытого с помощью инструкции Open Описание значений, возвращаемых для каждого режима доступа к файлу
Параметры
38. Запишите в общем виде форму вызова функции, позволяющей определить длину указанного файла в байтах. Приведите 3 примера и в каждом укажите, что вернёт функция. Функция FileLen FileLen(PathName) Функция FileLen позволяет узнать длину файла в байтах. Перед вызовом функции есть смысл проверить существование файла с помощью функции Dir. Если в момент вызова фунции указанный файл открыт, то возвращается длина файла до его открытия. Для определения размера открытого файла используйте фукцию LOF Возвращаемое значение Возвращает значение типа Long, содержащее длину заданного файла Параметры
Пример ' Узнаем длину файла autoecex.bat Print FileLen("c:\autoexec.bat") Пример №2 Dim MySize MySize = FileLen("TESTFILE") ' Returns file length (bytes). Пример №3 FileLen "C:\test.txt" 'Result: 500 (bytes) Пример №4 FileLen("C:\image.png")/1024 'Result: 25 (kilobytes) 39. Запишите в общем виде форму вызова функции, которая возвращает путь к каталогу(для указанного диска) . Приведите 2 примера и в каждом укажите, что вернёт функция. Общий вид: CurDir [ (drive) ] Примеры: Dim MyPath 1) MyPath = CurDir - Возвращает путь к текущему файлу 2) MyPath = CurDir("C") - Возвращает путь к текущему файлу на диске С, при отсутствии файла на этом диске возвращает "С:\" 3) MyPath = CurDir("D") - Возвращает путь к текущему файлу на диске D, при отсутствии файла на этом диске возвращает "D:\" 40. Запишите в общем виде форму вызова функции для определения конца файла. Приведите 3 примера. Общий вид: EOF(FileNumber) Примеры: 1) Dim InputData Open "MYFILE" For Input As #1 Do While Not EOF(1) Line Input #1, InputData Debug.Print InputData Loop Close 2) Dim InputData Open "MYFILE" For Input As #1 Do Until EOF(1) Line Input #1, InputData Debug.Print InputData Loop Close 3) Dim InputData Open "MYFILE" For Input As #1 Do Line Input #1, InputData Debug.Print InputData Loop While Not EOF(1) Close 41. Запишите в общем виде форму вызова функции, которая позволяет искать файл или каталог по указанному пути на диске. Приведите 3 примера и в каждом укажите, что вернёт функция. Общий вид: Dir [ (pathname, [ attributes ] ) ] Примеры: 1) Dir (D:\Program files, vbReadOnly ) – Возвращает имя файла без атрибута или доступного только для чтения, находящегося в D:\Program files 2) Dir (D:\Program files\text.doc) - Возвращает имя файла text.doc, находящегося в D:\Program files, при отсутствии файла возвращает пустую строку. 3) Dir (C:\Program files) – Возвращает имя файла без атрибута находящегося в C:\Program files 42. Запишите в общем виде форму вызова процедуры (функции), которая открывает текстовый файл на чтение. Приведите 2 примера. Общий вид: Input #filenumber, varlist Примеры: 1) В этом примере используется оператор input # для считывания данных из файла в две переменные. В этом примере предполагается, что TESTFILE это файл с несколькими строками данных, записываемых в него с помощью оператора Write # ; то есть каждая строка содержит строку в кавычках и номер, разделенный запятыми, например "Hello", 234. Dim MyString, MyNumber Open "TESTFILE" For Input As #1 ' Open file for input. Do While Not EOF(1) ' Loop until end of file. Input #1, MyString, MyNumber ' Read data into two variables. Debug.Print MyString, MyNumber ' Print data to the Immediate window. Loop Close #1 ' Close file. 2) В этом примере функция Input используется для чтения из файла отдельных символов и их печати в окно Интерпретация. В этом примере предполагается, что TESTFILE это текстовый файл с несколькими строками образца данных. Dim MyChar Open "TESTFILE" For Input As #1 ' Open file. Do While Not EOF(1) ' Loop until end of file. MyChar = Input(1, #1) ' Get one character. Debug.Print MyChar ' Print to the Immediate window. Loop Close #1 ' Close file. 43. Запишите в общем виде форму вызова процедуры (или функции), которая записывает в открытый файл указанный текст. Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура. Print #ff, s Примеры: Open "C:\Text1.txt" For Append As #ff 'записываемзначениестрокивфайл s = ‘text’ Print #ff, s Close #ff ' Закрываемфайл В данном примере в файл допишется строка text Open "C:\Text1.txt" For Output As #ff 'записываем значение строки в файл s = ‘text’ Print #ff, s Close #ff ' Закрываемфайл В данном примере в файле сотрутся старые данные и запишется строка text Open "C:\Text1.txt" For Output As #ff 'записываем значение строки в файл s = ‘text1’ & vbTab & ‘text2’ Print #ff, s Close #ff ' Закрываем файл В данном примере в файле сотрутся старые данные и запишется строка text1 символ табулиция и text2 44. Запишите в общем виде форму вызова процедуры (или функции), которая позволяет определить, как именно был открыт файл в файловой системе: на чтение, запись, добавление, в двоичном или текстовом режиме и т.п.. Приведите 2 примера. FileAttr(FileNumber[, ReturnType]) FileNumber - целое число типа Integer, обозначающее номер файла, открытого оператором Open. ReturnType - целое число типа Integer определяет, какую информацию возвращает функция. Возвращает значение типа Long, указывающее в каком режиме открыт файл. По умолчанию установлено значение 1: 1 - Input; 2 - Output; 4 - Random; 8 - Append; 32 – Binary Примеры: Dim FileNum, Mode Open "TESTFILE" For Append As 1 ' Открываетфайл Mode = FileAttr(FileNum, 1) ' Возвращает 8 (режим Append) Close FileNum ' Закрывает файл
45. Запишите в общем виде форму вызова процедуры (или функции), которая открывает файл для записи. Приведите 3 примера. Open "C:\Text1.txt" For Output As 1 Open "C:\Text1.txt" For Append As 1 Примеры: Open "C:\Text1.txt" For Append As #ff 'записываем значение строки в файл Print #ff, s Close #ff ' Закрываемфайл Open "C:\Text1.txt" For Output As #ff 'записываем значение строки в файл Print #ff, s Close #ff ' Закрываемфайл 46) Запишите в общем виде форму вызова процедуры, которая считывает одну строку из открытого последовательного файла и присваивает ее переменной типа String или Variant. Приведите 3 примера. Общий вид: Line Input [#]filenum, var_name. filenum – номер открытого файла, целое число; var_name – имя переменной строкового типа.
47) Запишите в общем виде форму вызова процедуры, которая считывает данные из открытого файла на диске в переменную. Приведите 3 примера. Общий вид: Get [#]filenum,[position ],var_name. filenum – номер файла, открытого оператором Open File; position – позиция, с которой начинается чтение из файла; var_name – имя переменной.
48)Запишите в общем виде форму вызова процедуры, которая записывает данные из переменной в файл на диске. Приведите 3 примера. Общий вид: Put [#]filenum, [position ], var_name. filenum – номер открытого файла, присвоенный оператором Open File; position – позиция файла для записи (не для последовательного доступа);var_name – имя переменной, значение которой будет использовано как данные для записи.
49) Запишите в общем виде форму вызова процедуры (функции), которая возвращает абсолютную величину заданного числа. Приведите 3 примера и в каждом укажите, что вернёт функция или сделает процедура. Общий вид: Abs(Number). Number - любое число, либо числовое выражение. Если Number содержит значение null, возвращается null . Если это неинициализированный переменная, возвращается ноль.
50. Запишите в общем виде форму вызова процедуры (или функции), которая генерирует равномерно распределенное случайное число в интервале [0 - 1]. Приведите 3 примера: формирование исхода подбрасывания монеты, случайный выбор дня недели и случайный прогноз на температуру воздуха. Кратко опишите каждый пример. В общем виде: Int((upperbound - lowerbound + 1) * Rnd + lowerbound) Здесь upperbound представляет собой самое большое число в диапазоне, а lowerbound — самое маленькое. Для интервала [0-1]: Int((2*Rnd)
51. Запишите в общем виде форму вызова оператора, возвращающего число, округленное до указанного количества десятичных разрядов. Приведите 2 примера: вычисление косинуса с точностью до 3-х знаков и округление результата расчёта заработной платы до 2-х знаков после запятой. Round(выражение, [ нумдеЦималплацес ])
52. Запишите в общем виде форму вызова оператора для логического отрицания двух выражений (если оба равны, то ложь, если не равны, то истина). Приведите 3 примера и в каждом укажите, что будет в результате выполнения оператора. Not(A EQV B)
|