Разрешает выполнение с файлом операций ввода/вывода.
Open путь For режим [Access доступ] [блокировка] As [#]номерФайла [Len=длина]
Параметры
путь
Обязательный. Строковое выражение, указывающее имя файла; может содержать имя каталога или папки и имя диска.
режим
Обязательный. Ключевое слово, указывающее режим файла: Append, Binary, Input, Output или Random. По умолчанию, файл открывается для доступа в режиме Random.
доступ
Необязательный. Ключевое слово, указывающее операции, разрешенные с открытым файлом: Read, Write или Read Write.
блокировка
Необязательный. Ключевое слово, указывающее операции, разрешенные с открытым файлом другим процессам: Shared, Lock Read, Lock Write и Lock Read Write.
номерФайла
Обязательный. Допустимый номер файла в интервале от 1 до 511 включительно. Для определения следующего свободного номера файла следует использовать функцию FreeFile.
длина
Необязательный. Число, меньшее либо равное 32 767 (байт). Для файлов, открытых в режиме Random, это значение является длиной записи. Для файлов с последовательным доступом это значение является числом буферизуемых символов.
Замечания
Чтобы получить возможность выполнить любую операцию ввода/вывода, файл необходимо открыть. Инструкция Open резервирует буфер ввода/вывода для файла и определяет режим использования этого буфера.
Если аргумент путь описывает несуществующий файл, такой файл будет создан при открытии в режиме Append, Binary, Output или Random.
Если файл уже открыт другим процессом и указанный режим доступа не разрешен, инструкция Open не будет выполнена и возникнет ошибка.
Если аргумент режим имеет значение Binary, предложение Len игнорируется.
В режимах Binary, Input и Random можно еще раз открыть уже открытый файл под другим номером, не закрывая его. В режиме Append и Output необходимо закрыть файл, чтобы получить возможность открыть его еще раз под другим номером.
Пример
В данном примере показаны различные способы использования инструкции Open, чтобы разрешить выполнение операций ввода/вывода с файлом.
Следующие инструкции открывают файл TESTFILE для последовательного чтения.
Open "TESTFILE" For Input As #1 ' Закрывает файл перед повторным открытием в другом режиме. Close #1
Следующие инструкции открывают файл в режиме Binary только для записи.
Open "TESTFILE" For Binary Access Write As #1 ' Закрывает файл перед повторным открытием в другом режиме. Close #1
Следующие инструкции открывают файл в режиме Random. Файл содержит записи определенного пользователем типа Record.
Type Record ' Тип, определенный пользователем. ID As Integer Name As String * 20 End Type Dim MyRecord As Record ' Объявляет переменную. Open "TESTFILE" For Random As #1 Len = Len(MyRecord) ' Закрывает файл перед повторным открытием в другом режиме. Close #1
Следующие инструкции открывают файл для последовательного вывода; любой процесс может читать из этого файла или записывать в него.
Open "TESTFILE" For Output Shared As #1 ' Закрывает файл перед повторным открытием в другом режиме. Close #1
Следующие инструкции открывают файл в режиме Binary для чтения; другие процессы не могут читать этот файл.
Open "TESTFILE" For Binary Access Read Lock Read As #1
Открытие и создание файлов
Файлы перечисленных видов открываются и могут создаваться оператором Open, который вызывается так:
Open имя-файла For режим [Access доступ] [блокировка] As [#]номерФайла [Len=длина-записи]
- Параметр имя-файла — строковое выражение, задающее имя открываемого (создаваемого) файла, в него может входить также путь ѕ имя диска и имена каталогов (папок) на пути к файлу.
- Параметр режим — ключевое слово, которое для файлов последовательного доступа может принимать одно из значений: Input (ввод), Output (вывод), Append (присоединение). Для файлов с произвольным доступом в качестве режима нужно указать Random, а для бинарных файлов — Binary.
- Параметр доступ необязателен, он ограничивает набор операций, которые разрешено выполнять над открываемым файлом; возможные значения: Read (только чтение), Write (только запись), Read Write (и то и другое).
- Параметр блокировка позволяет ограничить набор операций над открываемым файлом, выполняемых другими процессами; возможные значения: Shared (разделяемый, другим процессам разрешается работать с файлом без всяких ограничений), Lock Read (запретить чтение), Lock Write (запретить запись), Lock Read Write (запретить чтение и запись). Здесь требуется некоторые пояснения. С одним и тем же физическим файлом одновременно могут работать разные приложения. Возможна и ситуация, когда одно приложение одновременно работает с несколькими экземплярами файла, присваивая каждому экземпляру свой уникальный номер. Параметр блокировка позволяет регулировать отношения между клиентами, получающими доступ к файлу.
- Параметр номерФайла — целое число в интервале от 1 до 511, идентифицирующее файл для других операций. Для каждой операции открытия файла номер-файла должен отличаться от номеров всех открытых в текущий момент файлов. Узнать очередной свободный номер позволяет функция FreeFile.
- Параметр длина-записи — число не более 32767 — обязателен для файлов произвольного доступа и задает для них длину одной записи файла в байтах. Для последовательных файлов он необязателен (для них он задает размер буфера, создаваемого при открытии), для бинарных файлов он игнорируется.
Если последовательный файл, открываемый в режиме вывода ( Output ), существует, его содержимое будет утеряно, и данные будут записываться в его начало. Если его нет, создается новый файл. Точно так же будет создан новый файл, если файл, определяемый параметром имя-файла, не существует, а режим открытия задан как Append, Random или Binary. При попытке открыть несуществующий файл в режиме Input будет получено сообщение об ошибке.
Последовательные файлы в режиме чтения, файлы произвольного доступа и бинарные можно открывать по несколько раз с различными номерами. С каждым из номеров будет связан свой буфер, что может повысить эффективность работы с файлом. Файл, открытый для чтения, должен быть закрыт перед его открытием в режимах записи Output или Append.
Рассмотрим детали открытия и создания файлов. В первом примере открывается файл последовательного доступа «read.me» для чтения:
Open "read.me" For Input As #1
Имя можно передавать и через переменную или более сложное строковое выражение:
Const Path = "e:\O2000\CD2000\Ch14\" Public Sub Openfile() Dim NewFile As String, NewNum As Integer NewFile = "read.me" NewNum = FreeFile ' очередной незанятый номер файла Open Path & NewFile For Output As NewNum End Sub
Заметьте, при первом запуске этой программы был создан новый пустой файл с заданным именем, поскольку файл не существовал в момент открытия. Поскольку при открытии указан полный путь, то файл был создан в указанном каталоге, в противном случае он был бы создан в том же каталоге, где находится документ, инициировавший его создание.
Файл с последовательным доступом особенно удобен, когда при работе с ним требуется последовательно прочесть и обработать все записи файла. Если же данные из файла обрабатываются в произвольном порядке, или файл открывается для того, чтобы получить доступ к небольшому числу его записей, крайне желательно иметь возможность произвольного (прямого) доступа к нужному элементу файла. Такую возможность и обеспечивают файлы VBA с произвольным доступом, хотя у них есть серьезное ограничение, все записи должны иметь одинаковый размер. Это крайне неудобно в наиболее типичном случае, когда элементами файла с произвольным доступом являются записи, длины которых, естественно, могут быть не постоянны из-за, например, наличия в них строк переменной длины. В таких ситуациях одним из выходов является переход к строкам постоянной длины. Радикальное решение, как мы уже говорили, состоит в том, чтобы в подобных ситуациях переходить на работу с базами данных. Рассмотрим пример открытия двух файлов — файла с произвольным доступом для хранения записей пользовательского типа и бинарного файла для хранения картинки. Вначале дадим объявление пользовательского типа:
Type Person ' пользовательский тип записи. Возраст As Integer Фамилия As String * 20 Имя As String * 20 End Type
Обратили внимание на то, что фамилия и имя заданы, как строки постоянной длины. В данном случае это принципиально, поскольку предполагается возможность хранения переменных этого типа в файле с произвольным доступом. Вот процедура открытия двух файлов:
Public Sub OpenTwoFiles() Dim attr As Integer, Num As Integer Dim MyFriend As Person ' объявление переменной ' Открываем файл с произвольным доступом для записи: Num = FreeFile Open "Friends" For Random Access Read Write As Num Len = Len(MyFriend) PrintAttr (Num) Debug.Print "Длина Записи:", Len(MyFriend) ' Открываем двоичный файл Num = FreeFile Open "pict.bmp" For Binary Access Read Lock Read As Num PrintAttr (Num) End Sub Public Sub PrintAttr(ByVal Num As Integer) 'Эта процедура по номеру файла определяет его атрибуты 'и выводит соответствующее сообщение в окно отладки Dim Msg As String, attr As Integer attr = FileAttr(Num, 1) Debug.Print "файл # ", Num Select Case attr Case 1: Msg = "Input" Case 2: Msg = "Output" Case 4: Msg = "Random" Case 8: Msg = "Append" Case 32: Msg = "Binary" Case Else: Msg = "Таких файлов не бывает" End Select Debug.Print "Открыт для ", Msg End Sub
14.1.
В этом примере для определения свободного номера файла использовалась функция FreeFile, а для определения длины записи ѕ функция Len. Файл произвольного доступа открыт как для чтения, так и для записи, а бинарный файл только для чтения. Заметьте, что бинарный файл закрыт для чтения другими процессами. Поэтому если повторно запустить процедуру открытия, то файл произвольного доступа будет повторно открыт с другим номером, но возникнет ошибка при повторном открытии бинарного файла. Возможность одновременного открытия под разными номерами нескольких логических экземпляров одного и того же физического файла бывает крайне полезной в ряде ситуаций.
Функция
по номеру открытого файла возвращает число, указывающее режим открытия: 1 — Input, 2 — Output, 4 — Random, 8 — Append, 32 — Binary. Второй аргумент достался функции FileAttr в наследство от 16-разрядного режима, где при его значении 2, она возвращала системный указатель на файл.
Мы написали простую процедуру PrintAttr, которая по номеру файла определяет его атрибуты и выводит сообщение в окно отладки. Приведем результаты работы процедуры OpenTwoFiles:
файл # 1 Открыт для Random Длина Записи: 42 файл # 2 Открыт для Binary
-
�������������� ����� VBA
-
��������� ����� VBA
-
������ � �������
-
���������� ����
�������������� �����
VBA
�������� �������
Visual Basic for Applications (VBA) �������� ����� �������� ����������
��� ���� ���������� (Excel 5.0, Word 6.0, Mail, Power Point). VBA ���������
�������� ��������� � ������� ���������������� ������-��������� Basic (BASICA,
GW-BASIC). ��������� � ��������� ����� VBA ����������� � ������ �����
������������� � Excel 5.0.
Visual Basic for Applications (VBA)
— �������� ������� ����������� ���������������� ��� �������� ����������
�������� � ����� Microsoft Office.
� ������� VBA ����� ��������� ������� ���������� ������������
���������� ������������, �������� � �������� �������� ��������, ����������
� ��� ��������������� ����������� ���. �������� ���������������� � ��������������
������� VBA �������� � ����������:
- �������� �������� ���������� � �������� (���������� ����, �����������,
����); - ���������� ��������, ������������ ��� ������ ��������.
- ���������� ��������� �� ����� VBA ��������� �� ���������� ���������:
- ������ ���������� � �������� — �������� �����, ����������� ��������
������ ����, � ��� ����� ��������� ����, ������� ���������, �����������,
����-������, ��������� ������ � ��.;
- �������� (��������) — �������������� ��� ������� ������� ����������;
- �������� ��������;
- ������� — ��������, ������� ������������ �������� ����������;
- ����� ������� — ����������� �������� �������, ��������, ������� ������������
������ �� ������;
- ��������� — ������������ � �������, ������������ ������������������
���������� VBA; ��������� ������� �� ���������� (�����������
��� ����������� �������) � ����� ���������.
��������� �� ����� VBA ��� ����������, ��������������� � ����� Excel
5.0, ��������� ����� ���������:
- � �������������� ������ ��� ��������� ���������� ��������� ������������
(��. �������. 19.1);
- � ���������������� ������ ����� �������� ������������ ����.
���� ��������������� ������� ������������� ���������������� �� �����
VBA ������������� � Excel 5.0.
��� �������� ������������ ������ � ������� ������� ����� ����������� ������� ���� �������,
������ � ��������� ���� ������� — ������. ��� ���� ���������
����� ������� ���� �� ����������� ������ ������ � ���������� ������� ������������ ������ � ������� �����. ��� ����������
����� ����� ��������.
��� ������ � ������� �� ����� ��������� ����� ������ ������������ Visual
Basic (���. 19.20).
���. 19.20. ������ ������������
������ ��� ������ ������ (����� �������):
<������� ������> — ��������� � �������� ������� ����� ����� �����������
������;
<�������� ����> — �������������� ����� � ������ ���� ������� �����;
<�������� ��������> — �������� ������ ��������� � ������� �������
����� ��������, �������, �������� � �� �������.
������ ��� ������:
<��������� ������> — ����� ������� ������� ��� ������� ����� ����
������� ������;
<��� �������> — ��������� ���������� ���������� ������� (��� —
���� ������ ����); .
<���������� ������> — ������������� ���������� ������� ����� ���
��������;
<0��������� �����c> — ������� ���������� ��� ������ �������;
<3������� ������> — ���� ����� ���� ������� ������ �����
������ ������� � ��� ������.
������ ��� ������:
<����� ����������> — ������������ (������) ����� ���������� ���
������ ���������;
<����������> — �������� � ���� ������� ��������� VBA ��� ����������
��� ��������;
<���� � ���������> — ���������� ��������� ������ ���� ���������
VBA;
<����� �� ���������> — ���������� ��������� ������ ���� ���������
VBA � �������������.
����� ������ ������������ ��� ������ ����� ��������� �� ����� VBA. ��������
������ (������ ��������), � �������� �������� ��������� �� ����� VBA �
����� Excel 5.0, ������������ � ����. 19.3.
������� 19.3. �������� ������� VBA Excel 5.0
|
��� ������ |
��� �������� � ������ |
|
Sheets Workbooks Worksheets Charts Range |
��� ����� ����� ����� � ������� ����� ��� ������� �������� ������� ����� ��� ������� � ������� ����� ��� ����� �������� � ������� ����� �������� ����� ������� (�����, ��������, ��������� �����, ���������� ��������� ) |
������ � ���������� ������ �������������� ����� ���������:
1) �� ������ ����������
������ 19.5.
W�rkbooks(» ���_�����»). Worksheets(2)
2) �� ����� ����������
������ 19.6.
Workbooks(«���_�����»).Worksheets(«���-�����»)
������ �������� ���������� ����������:
- Count — ���������� ����� ����������� � ������;
- Name — ���������� ��� ����������;
- Parent — ���������� ��� �������, ����������� �����.
��� ���������� � �������� ����������� ������ ���������� ������ Add� Delete.
��������� ������ ������� �������� ����� ������ Range � ��������� ������:
1.Cell — � �������� ���������� ����������� ��� ����� �����, ������������
����� ��������� ��������� ������ ������� — Cell (�����1; �����2)
������ 19.7.
Cell(l;2).Value=5
����������� ������ �2 �������� �������� ����� �������� ������� �����
�������� 5;
Cells(2,l).Formula=»=SUM(Bl:B5)»
���������� � ������ �2 ������� ������������ �������� � ������� �1:�5.
2.Range — ������ � ������������� �������� �����, � �������� ����������
������������ ���� ��� ��� ������ �� ������ ������� � ����� �1:
Range(«A2″;»G10»)
Range(«f4»)
���� �� ���� ����� �� �� �����.
������19.8.
Worksheets(«PRIMTR»).Range(«Al0″;»F12»).Value=10{/p>
���������� ����� ����� ����������� �������� 10.
Range(«D15»).Value = «Test»{/p>
���������� ������ �������� �������� ����� �������� ������� ����� ��������
«Test».
Range(«Criteria»).ClearContents
������� ����������� ������������ ����� ����� �������� �������� �����
�������� ������� �����.
����������. ����� ������������ ����� ������ Range(Cells(1;1); Cells(2;2)).
3.Offset — � �������� ���������� ���������� ��� �����, ����������� ��������������
������ ������������ �������� ������ ���� ��������� �������. ��� ������
�������� � �������������� �������� ������������� ���������� ������ �����
��� �������� ������.
������19.9.
Selection.Offset(2,5).Select
������������ ������� ������, ��������, �1, ���������� �������� � ������
F3.
[«�����_������»] — ������� ������ �� ������ �� �� ������.
4.Union — ����� �������������� ��������� �������� ����� — Uni��(�������1;
�������2).
������ ������� ��������� � ������� ������ Range.
������ 19.10.
Union(Range(Cells(1;1); Cells(2;2)); Range(Cells(5;5); Cells(7;7)).Select
�������� ������� �����: �1:B2,E5:G7.
���������� ���� ������
VBA ���������� 11 ���������� ����� ������ (����.19.4).
- Boolean ���������� 2 �����, ��� 16 ���, ������ ��� �������� ���������� ������;
����� ��� ��������� ��������: True � False.
- Integer ���������� 2 ����� ������ ��� �������� ����� �����, � ��� ����� 1
��� ��� �������� ����� �����, 15 ��� — ��� �����.
- Long ���������� 4 �����, ��� 32 ����, ������ ��� �������� ������ ����� �������
��������, � ��� ����� 1 ���, ��� �������� ����� �����, 31 ��� -��� �����.
- Single ���������� 4 ����� ��� ����������� �������� �������� (�������� �����
����� — �������� 7 ������) � ������� (������������ ���������� �����).
- Double ���������� ������ ��� ����������� �������� �������� (�������� 15 ������)
� �������.
- Currency ���������� ������, ���������� ����� ������ ������������� ����� 4
� 5 ������� ������, ������������ �������������� ���������� �����������
����������.
- Date ���������� ������ � ������������ ��� �������� ��� � �������.
���� ������������ � ���� ����� ����� ����, � ����� — ��� ������� �����
���.
- String ���������� 1 ���� ��� �������� 1 ������� ���� 1 ����
��� ������� ����� ������. ������� �������� � ���� ����� ANSI.
- Object ���������� 4 ����� ������ ��� ������ �� ����� ������ Visual Basic.
- Array ���������� ������ ������ ������ ���� � ����� �����������.
- Variant ������������ ������, ����� ���� �� ������ �����-���� ������ ���;
����� ��������������� ������ ������� ������������ ���� ������.
������� 19.4 ���������� ���� ������ VBA
|
��� ������ |
������ ( � ������) |
������-����� (����) |
�������� |
|
Boolean Integer Long Single Double Currency Date String Object Array Variant |
2 2 4 4 8 8 8 1+1 4 ������� �� ����� ��������� � �� ������� ������� �� ����� ������ |
1 5 10 7 15 19 |
True, False -32768; 32768 -2147483648; 2147483648 -3.402823E+38; 1.401298E-45 � 1.401298�-45 ; 3.402823�+38 -1.79769313486232�+308; -4.94065645841247�-324 � 4.94065645841247�-324; 1.79769313486232�+308 -922337203685477.5808; 922337203685477.5808 01.01.100; 31.12.9999 0; 65535 ����� ������������ ������ ����� ���������� ��� ������ |
����������
���������� ���������� �������������
������� � ������ ���������� �� ����� ���������� ���������.
���������� ������� ������ ���������� ������ �����, ������� �������� ���������-��������
������� � ����������� �����. ��� ������ ���������� � ����� � ������������
����� ����������� ������������������ ��������, �� �� ����� 255 � �� ��������
����������� ��������.
������ 19.11.
|
����������� ��� ���������� |
������������� ��� ���������� |
����������� |
|
������; ������; EXAMPLE; example |
��� �������� ��������� � �������� ����, ��������� � �������� � |
|
|
��������_������_1_�������; Tax_off_1_class |
��� ��������� ��������� ���������� ����� �������� �� ��������� |
|
|
�������� ������ $; #room; Class&subclass |
������ ������������ ������� � ����� ����������, � ����� ����������� |
��������� �� ����� VBA ����� ��������� ��������� — ������� ������,
� ������� �������� ��������� ������, ���������� ���� ��� ����� ���������
��������.
������ ���������� ����� ������������ ��� �������� � ����� ��������, �
��������� ������ �� ������������� ��� Variant. �� ���. 19.21 ��������
����� �������� ����������.
���. 19.21. ����� �������� ���������� � ��������� �� ����� VBA
����������, ����������� ������ � ���������, ��������� � �������� ���������.
���������� ���������� �� ������ .������ ������ �� ��������� ��� ���� ��������
������. ��� ���� ����������� ��������������� ����� ���������� �� ���������
����������. ��� ������������� ���������� �� ���� ��������� ����������
� ������� ��� ����������� ���������� �� ������ �������� ������ (��������,
���������� Var0 �������� ���� ��������� ������� � �� ����������).
������ 19.12. ���������� var4 var5 ������������ ������ � ����� ����������.
���������� var2 ��������� � ���������� 1 � 2. ��� ������������� ���� ���������
���������� � ���������� ������ � ����� ������ �������� (��� ����� ������
�������� �/��� ���� ������, ���������� ���� �� �����). ���������� �� ������
������, var1 — � ������ 1 � var3 — � ������ 2. ������������ �� ���� ���������
� ������ ����������. ���������� var1 �������������� � ��������� 1, ��
��������� ���� �������� � ��������� 2; ���������� var3 ��������������
� ��������� 3.
���������� � ������ ����������� � ������� ���������� ��������� �����:
- ��������� ����������
Dim <var> As <type>, <var> As <type>, <var> As <type>, . . .
���������� ����������
Public <var> As <type>, <var> As <type>, <var>
As <type>, . . .
��� <var> — ��� ����������;
<type>- ���������� ��� ������ ����������.
������� ����������
������� ���������� ����� ������������ ����������� — ����������, ����������,
���������� � �.�, ����������� ���������� �����������:
- ��������� ������
Dim <Arr> (�����������) As <type>
- ���������� ������
Public <Arr> (�����������) As <type>
��� <Arr> — ��� �������,
(�����������) — ����������� �������,
������ 19.13.
|
����������� ������� |
����������� ����������� |
����������� � ������� |
|
���������� |
(�����) |
Dim Ball (5) as Integer-6 ��������� �������, ������ ��������� ���������� |
|
(�����1 To �����2) |
Dim Basket (45 To 74 ) as Single-30 �����- ���� ������� |
|
|
���������� |
(�����1, �����2) |
Dim Foot (1, 3) as Long- 8 ��������� �������: Foot (0, 0) Foot (0, 1) Foot (0, 3) Foot (0, 3) Foot (1, 0) Foot (1, 1) Foot (1, 2) Foot (1, 3) |
|
���������� |
Dim Cross (1, 4 To 5) As Date-4 �������� �������: Cross (0, 4) (1, 4) Cross (1, 5) |
|
|
���������� |
(�����1, �����2, �����3) |
Public Game (2, 2, 3) As Single- 36 ���-������ �������: Game (0, 0, 0) Game (0, 1, 0) Game (0, 2, 0) Game (0, 0, 1) Game (0, 0, 2) Game (0, 0, 3) Game (0, 1, 1) Game (0, 1, 2) Game (0, 1, 3) Game (0, 2, 1) Game (0, 2, 2) Game (0, 2, 3) � �.�. |
���������������� ���� ������
�������� Type ��������� �� ������ ������ ���������� ����������������
��������� ������, ���������� ������ �����������, ��������� ���������
����������, ��������:
[Private] [Public]Type<typename>
< elementname 1 > As <type>
< elementname2> As <type>
End Type
��� <typename> — ��� ����������������� ���� ������;
< elementname> — ��� ������������ ���������.
� ������ � ������� ���������� Dim ��� Public ���������� �������� ����������,
������������ ���������������� ��� ������. ��� �������, ��� �������.
������ 19.14.
Type Student
FullName As String *20
Group As Single
BrithDay As Date
Hight As Integer . . .
End Type
Dim Student_Card (1 To 1000) As Student
��� Student ������ ��� ���������� ������� Student_Card ������������ 1000
���������, ��������� ������ ��������: �������, ���, ����� ������� ������,
���� ��������, ����.
���������� ��������
��������� — ��������, ����������� ���������� �������� �� ����� ����������
���������, �� ���������� �� ������� ������������.
��������� ��������� � ������� ���������:
Const <const> = <��������>
��� <const> — ��� ���������;
<��������> — �������� ���������.
��� �������� ���������� ������� ����� ��������:
Public Const Datel=#12.12.96#
Const Date2=#12.12.97#
��������� ��������� ����������� � �������� ��������� ��� ������, ����������
��������� — �� ������ �������� ������ � �������� ��� ���� ���������
������� � ��������.
VBA ����� ���������� ���������, ������� ��������� ��� ������������
���������� � ���������� � �������� vb. Excel 5.0 ����������
���������� ���������, ������������ ��������� xl.
��������� ����� VBA
�������� ������������
������ ��� ��������� ������ ��� ���������� ��������� ��������, ������
���������� ���������� � ����������, ��������� ��������.
�������� ������������ ����� ��������� ��������� ����������:
<var>= <formula>
��� <var> — ��� ����������;
<formula> — �������.
���������� ����� �� ����� «=» ����� ���� ������� ����������,
��������� ������� ��� ��������� �������. ������� ������� �� ����������,
��������, �������� � �������.
������ 19.15.
Place=»d:\windows\system»
File=»GameTree.Exe»
Student_Card(100).Group= 133
� ������� ��������� ������������ ����������� ���������� ����������
�� ������� � ������ ������ — ��� ������ ����������.
VBA ���������� ��������� �������� ��� ���������� ���������, ��������
������� �������� ����� ������������ ��������� (�����������) ����������
(����. 19.5).
������� 19.5. �������� �������� ����� VBA
|
�������� |
�������� |
��������� |
�������� |
�������� |
��������� |
|
�������� ��� ���������� ������ |
|||||
|
^ |
���������� � ������� |
1 |
Mod |
������� �� ������� |
5 |
|
— |
��������� ( ��) |
2 |
+ |
�������� |
6 |
|
* |
��������� |
3 |
— |
��������� |
6 |
|
/ |
������� |
3 |
& |
����������� (�����-�������) ����� |
7 |
|
\ |
������� ������ |
4 |
|||
|
�������� ��������� |
|||||
|
= |
����� |
>= |
������ ��� ����� |
||
|
<> |
�� ����� |
Is |
��������� ( ������ ��� ��������, ������ � ����������������� ������ |
||
|
< |
������ |
Like |
������������� �������� ��� ������ � ��������� |
||
|
<= |
������ ��� ����� |
Between� And |
��������� �������������� ��������� ������-���� ��������� �������� |
||
|
> |
������ |
In |
��������� ��������� �� ���������� � ����� �� ��������� � ������ |
���������� ����������� � ������� �������� (��� ������ �����, ��� ������
��������� ��������). ��� ��������� ������������� ������� ����������
�������� ������������ ������� ������.
������ 19.16.
Disct=(S — P)/(dt)^2
������� ����������� �������� S — �, ����� ������������ dt ����������
� ������� 2, ����� ����� ����������� ������� �� �������; ����������������������
���������� Disct.
�������� ������������
����������� — ��� ��������� � ���������. ����� ����������� ����������
� ������ � ������������� ����� ��������� �������� ‘. ����������� �������������
��� ������������� � ��������� ��������. ��� �������, ���������� � �������������
�������� �������������� ���������� �������������. ����� ������������
������ ���������� ��������� ������ ���������, �������� �� ���������.
������ 19.17.
|
����� ��������� |
����������� |
| Option Explicit | �������������� ���������� ���� ���������� � ������ ����� �� �������������� |
| Sub ����_�����( ) | ��������� ��������� ��������� ����� � ���������� ������� ����������� ������� Excel 5.0 |
| Dim numrows As Integer; numcols As Integer Dim therow As Integer; thecol As Integer |
���������� ���������� |
| numrows=Selection.Rows.Count numcols=Selection.Columns.Count |
���������� �������� ����� ����� � �������� � ���������� ������� ����������� ������� |
| Randomize | ������ ���������� ��������� ����� |
| For therow= 1 To numrows | ����������� ����� ���� For—Next, ������� ���� |
| For thecol= 1 To numcols | ���������� ���� |
| Selection.Cell( therow; thecol).Value=Rnd{/td> | ������������ ������� ������ ���������� ����� Selection- ����� ������ Cell- ����� ������� � ������ � ������������� ������������ Value- �������� «��������» |
| Next thecol | ����� ����������� ����� |
| Next therow | ����� �������� ����� |
|
End Sub |
����� ��������� |
���������
����������� ������ VBA ������� �� �������� (����� ��� �����).
��������� — �����������
������ � ������� ���������� ��������� �� ����� VBA.
��������� ����� ����������� ����������:
Sub <���_���������> (���������)
���� ��������� (���������)
End Sub
�������� Sub — ���������� ���������, �������� ���,
����������� ������ ����������, ������������ ��� ������ ��������� �� ���������. ������� ���������
Sub ����������� ������������� End Sub.
���� ��������� — ����� ��������������� ����������� ���������� �� �����
VBA. � ��������� ����� �� ������ ������������ ��������� ������� ������������
������, �� � ��������� �� ��������� ������ ������� ������� ������� �����,
� ����� ��������� ������ ������� ����. ��� ����� ���������� ������ ������;
��� ���������� �� ������� ����� ������ ����������� ������� ������,
������. � ���������� ���� «������» ������� ������ ���������
������ �� ���������� ��� ������ ������� �����.
��� ������������ ����� ������ ���������� ������ ������ <����������>
� ������� ���������� ���� ��� ������ �����, �������� � �����, �����������
���������, �� ������� �������� ������ �� ������� ������������ ������.
����������� �������� ������������� ������������ ������ ��� ����������
����������� � ������� �������������.
��������� 4 ���� ��������:
��� ����;
����� ���� ���������;
���� (��������, �������� ��� �������� ����������� ������� Excel, �������
������, ����������� ������� � �.�.);
���� ������������ �� �������� � ������� ���������� ������� VBA.
���������� ��������� ��������� ������ �������� (��� ����������� ������
�� ��������������� ��������� ������� �������������).
1. �� ������ ��������� ���� �� ������ ����� ��������������
�� ����� ���������
Sub �r��_� () ‘ ���������� ��������� �r��_� ()
�r��_� ‘ ����� ��������� �r��_�()
End Sub ‘ ���������� ������ ��������� �r��_� ()
Sub Proc_B () ‘ ���������� ���������
End Sub ‘ ���������� ������ ��������� Proc_B ()
2. �� ������ ��������� ������� (�������������) ������
����� �������������� �� ����� ������, ����� ��������� (� �������� ������
����������)
Sub �r��_� () ‘���������� ��������� �r��_� ()
[������#].�r��_� ‘ ����� ��������� �r��_�() ������ ������#
End Sub ‘ ���������� ������ ��������� Proc_A ()
3. �� ������� ���������� (������ ������� ����� ��� Excel 5.0)
— ����� �������������� �� ����� ������, ����� ��������� � ����� �������
�����
Sub �r��_� () ‘���������� ��������� �r��_� ()
[RWl.XLS].[������#].Proc_B ‘ ����� ��������� �r��_�() ������
‘������# ������� ����� RW1.XLS
End Sub ‘ ���������� ������ ��������� �r��_� ()
����������. ���� � ���������� ������� ������ ������� ��� �������� � ������������
������, ������� ������� ��� ����� ������� ����� � ��� ������ � ����
����� ��� ������ ���������.
����� ������������� ������ � ��������� �� ������ �������, ���������
������ �������. ��� ����� � ��������� ��������� ������� �������:
Private Sub Proc_B ()
End Sub
��� ������ ������ ������� ����� �� ������� � ���� �� �������� ������
������� ����� � ������ ������ ���������: Option Private Module
���� � ������ ������ ��������� ���������� �����-�� �������� ���� ��������
��� �� ����������, ���������� ������ ����������, ������� ��������
������ ������ � ���������� ����������.
� ���� ��������� ����� ���� ��������� ���������� ����������,
������� �� �������� ��������� ������ � ���������� ����������, �����
���������� �� ����� ���������� ��� �������� ���������� ���������.
���������� ���������� � ��������� ��������� ����� ����������� ���:
Sub Proc_B (Val 1 As Single; Val 2 As Date;…)
����� ��������� ����������� ������� (� ����������� �� ��������� Windows
— ������� ��� ����� � �������) ������� ��������� � ��������� ����� �
���� ��������.
���� �������� ��������������, �.�. ����� �� ���������� ��� ������ ���������,
����������� �������� ����� Optional.
������ 19.18. ��������� ���������� ������� �������������� �� ���� ��������
|
����� ��������� |
����������� |
| Sub SquarPr (L As Single; H As Single; S As Single; Optional F) |
���������� ��������� SquarPr � �� ���������� |
|
If IsMissing( F) Then F=100 |
���������� ������� VBA- IsMissing ��������� ������� ��������� , ���� F �� ������, �� ��������� F ������������� �������� 100 ( F ����� ��� Variant ) |
| S=L*H | ���������� ������� �������������� |
|
End Sub |
����� ��������� |
����� ����� ��������� ����������� ��������� �������.
1-� ������� — ���������������� ������� �������� ���������� ��� ������
���������
|
����� ��������� |
����������� |
| Sub Proc_A ( ) Dim Sq as Single |
���������� ��������� |
| SquarPr 12; 23; Sq | ����� ��������� � ��������� �������� ���� ������ �������������� � ����� ����, ��������� ���������� ����� �������� ���������� Sq |
|
End Sub |
����� ��������� |
2-� ������� — ����� ����� ����������, ������� ��������� ��������
|
����� ��������� |
����������� |
| Sub Proc_A ( ) | ���������� ��������� |
| ���������� ���������� | |
| Dim Sq as Single | ������� |
| Dim LL as Single | ����� |
| Dim HH as Single | ������ |
| LL=12 HH=23 |
���������� �������� ���������� |
| SquarPr LL HH Sq | ����� ��������� � ��������� �������� ���� ������ �������������� � ����� ����, ��������� ���������� ����� �������� ���������� Sq |
|
End Sub |
����� ��������� |
3-� ������� — ������������� ������ ������������� ���������� ��� ������
���������
|
����� ��������� |
����������� |
| Sub Proc_A ( ) | ���������� ��������� |
| ���������� ���������� | |
| Dim Sq as Single | ������� |
| Dim LL as Single | ����� |
| Dim HH as Single | ������ |
| LL=12 HH=23 |
���������� �������� ���������� |
| SquarPr L:=LL; H:=HH; Sq | ����� ��������� � ��������� ������������ ���� ���������� ���������� ���������, ������� ����������� � ������ ������ : |
|
End Sub |
����� ��������� |
��� ���������� ������ ���������� ��������� � �������� ���������� ����������
��������� ���������� ������ �������� ����������, ����������� � ����������
���������.
��� �������������� ����� ����������� ���������� ������� ��������� ����������:
Static <var> As <type>
������ ��� ������ ��������� ���������� �������� ������, ��
�������� ��������� �������� (����� ������������� ����� ����������).
��������� ����� �������� �������� ���������. ��� ���������� ���������
�������� ��������� ������� �������� ������� ���������. ��� �����
����������� ���� ����������� ��������� ���������, ���� ��������
���������� � ���� �������.
��� ����������� ��������� ��������� ����������� �������� ���������
����� By Val ����� ������� ����������, �������� ������� �� ��������� ������ ���������.
������ 19.19.
Sub SquarPr (By Val L As Single; By Val H As Single; S As Single)
S=L*H
L=10
H=20
End Sub
��� �������������� ��������� � ���� ������� ��� ������ ���������
��� ���������� ����������� � ������� ������.
������ 19.20.
|
����� ��������� |
����������� |
|
Sub Proc_A ( ) Dim Sq as Single Dim LL as Single Dim HH as Single LL=12 HH=23 SquarPr L:=(LL); H:= (HH); S:= Sq End Sub |
���������� ��������� ���������� ���������� ������� ����� ������ ���������� �������� ���������� �������������� ��������� � ������� ����� ��������� |
���������� ������� VBA
���������� ������� VBA
������������ ������� ���� ��������� ������, �������� ������������ ��
���������� ����������� ��������. ������� ����� ���������, �
�������� ������� ������������ ����������, ���������, ���������. ���
�������, ���������� ������� VBA (����. 19.6) ���������� ��������� ��������
(�� �������).
��������� ���������� ������� VBA ����� ��� �������� ����������, � �����
������ ������������ �������� ���� Variant, � ������ — ���� String. ���������������� ������������ ��������� ��� ������ (String), ����:
�� ������� ��������� ������������ ����� ����������;
���������� �������� ���������������;
������� ������������ ��������������� � ���� ������� �������.
��������� ���������� ������� VBA ���������� �������� � ���� ������
��������, ���� � ����� ������� �������� ������ — $, ��������� ����������
������� ����� ���������� ������ � ������� ����������, ��� � ��� �������
$:
| Chr$� | Oct$ | CurDir$ | Right$ | Date$ | RTrim$ | Dir$ |
| Error$ | Space$ | Formats$ | Str$ | Hex$ | String$ | Input$ |
| Lcase$ | Trim$ | Left$ | UCase$ | Ltrim$ | Seek$ | Mid$ |
| Time$ |
������� 19.6. ��������� ���������� ������� VBA
|
��������� ���������� ������� |
������� ������� |
|
�������������� |
ABS()-���������� �������� �����; RND()-��������� �����; INT()��������� ����� ����� �����; ������������������ ������� � ��. |
|
��������� |
LCASE()-�������������� � �������� ����� ������ ��������; UCASE()-�������������� � ��������� ����� ������ ��������; LEFT()-��������� ��������� �����; RIGHT()-��������� ��������� ������; LEN()-����������� ����� ������ � ��. |
|
���� � ������� |
DATE()-������� ������� ��������� ����; CDATE()-��������������� ��������� � ������ ����/�����; NOW()-������� ������� ���� � �������� ������� ( �� ����������); DAY()-������� ������ ��� ����; MONTH()-������� ������ ������ ����; WEEKDAY()������� ������ ��� ������; YEAR()-������� ������ ���� � ��. |
|
�������������� ����� ������ |
CINT()-�������������� ��������������� ����� � ����� ( � �����������); CSTR()-�������������� ����� � ������ ��������; CVAR()-�������������� � ��� ������ VARIANT; FORMAT()-�������������� ������ ���� ����, �����, �����, ������ STRCOMP()-��������� ���� �����; VAL()-�������������� ������ �������� � ����� � ��. |
|
�������� ������� |
FILEATRR()-������� ��������� �����; FILEDATETIME()-���������� ���� � ����� �������� (����������� FILELEN()-���������� ����� ����� � ������; FREEFILE()-���������� ��������� ��������� ����� ��� ������ � |
������� ������������
�� ����� VBA ����� ��������� �������
������������, �������, � ������� �� ���������, ����������
����������� �������� (����); ��� ����� ����������� � ���������� ���������
������������.
��������� ������� ������������ ����� ���:
Function <���_���������>(���������) As <type>
���� ��������� (���������)
End Function
��������! ��� ������� ����������� ��� ������������ �������� — As <type>. �
���� ������� ������������ �������� ������������ ������������ ��������
����� �������.
������ 19.21. ������������� ���������������� ������� ����������
������� ��������������
|
����� ��������� |
����������� |
|
Sub Proc_A ( ) Dim S as Single Dim LL as Single Dim HH as Single LL=12 HH=23 S=Sq(LL; H)/2+1200 End Sub Function Sq (H As Single; L As Single As Single) Sq=H*L End Function |
���������� ��������� ���������� ���������� ������� ����� ������ ���������� �������� ���������� ������� ������ ������� Sq ����� ��������� ���������� ������� Sq � ����������� ���������� ������� Sq ���������� ���������� ����� ������� |
����������� ���������
VBA ��������� � ��������� ������ ������������ ���������������� � ���������
������������ ����������� ����������� ���������, � ������� ���������:
�������� ��������, �������������� �������, �����.
�������� �������� If. �������� ����� �������������� � ���� ��������: � ���� ������� � �������
��������.
�������� ������� ��������� ����� ��������� ������ ������:
If <���������> Then <��������>
������ �������� ������������ �������� ��������� (�������). ���� �������
������� (True), ����������� ������� ��� ��������� ��������, ��������� �� ������ Then; ���� �������
����� (False), ���������� ���������� ���������� �� If ���������.
��������� �������� — ������������������ ���������� ����� ������, �����������
������ : (���������).
��� ���������� ��������� � ������� ���������� ����������� ���������
������� ���������� ������������ ������������ �������.
������ 19.22.
If MaxPrice > 23,000.00$ Then MaxPrice=23,500.00$
If Student_Card(100).FullName Like «��*» Then number=Sludent_Card
(100).Group
��� ���������� ��������� ���������� ����������� ������� ����������
�������� VBA.
���������� ��������� ����� ���� ��������� � ������� ����������� ����������
�������:
|
������� |
�������� |
������� |
�������� |
|
|
Not And Or |
�������� ��� ��������� ���������� «�» ���������� «���» |
Xor Imp Eqv |
����������� «���» ���������� ��������������� |
�������� If ������� ��������� ����� ����������:
If <��������� 1 > Then <���� ���������� 1>
�lseIf <���������2> Then
<���� ����������2>
ElseIf <���������3> Then
<���� ����������3>
[Else
<���� ���������� Else>
End If
��������������� ����������� �������� ���������� ���������. ���� ���������1
�������, ����������� ���� ����������1, ����� �����������
�������� ���������� ���������2 � �.�.
���� �� ���� �� ��������� �� ������������� ����������� ����������,
����������� ���� ���������� Else, ���� ��� �������,
����� — ��������, ��������� �� End If.
������ 19.23. ����������� �������� ������� ������� ����������
��������� If
|
����� ��������� |
����������� |
|
If AvgPrice >12000 Then DiffPrice=Full(234, 45600) |
�������� ������� 1 ���� ������� 1 �������, ����� ��������� |
|
ElseIf AvgPrice > 24000 Then DiffPrice=Full ( 12000, 45000) ElseIf AvgPrice > 36000 Then DiffPrice=Full ( 24000, 50000) Else DiffPrice=Full ( 36000, 70000) End If |
�������� ������� 2 ���� ������� 2 �������, ����� ��������� �������� ������� 3 ���� ������� 3 �������, ����� ��������� ���� ������� 1-3 �� �����������, ����� ��������� ����� ����� If |
�������� ������� Select Case. ������ �������� ����������� � ��� ������, ���� �� ���� ���������� ��������
��������� ���� � �� �� �������� (����������):
Select Case <��������>
Case <��������� 1>
<���� ���������� 1>
Case <���������2>
<���� ����������2>
[ Case Else
<���� ���������� Else> ]
End Case
��������� ��� ��������� ����� ���� �������� � ����: Case 45 ��� Case 3, 4, 5, ��� Case
5 �� 12.
���� �� ���� �� ��������� �� �������� ��������, ����������� ���� ����������
Else, ���� ���� Else �����������, ���������� ���������� ���������, ���������� �� End
Case.
������ 19.24. ����������� ���������������� �������� ��������
����������
|
����� ��������� |
����������� |
|
Select CDemse |
������ ������ ��������� Select, ���������� ����� ����������, |
|
Case Demse 21 |
������ ��������� |
|
Dem=21 |
���� ������ ��������� �������, ����������� �������� ������������ |
|
Case Demse 22; 25; 28 |
������ ���������- ������ ������ ��������� �������� |
|
Dem=31 |
���� ������ ��������� �������, ����������� �������� ������������ |
|
Case Demse 45 To 48 |
������ ��������� �������, ����������� �������� ������������ |
|
Case Else |
���� �� ����������� �� ���� �� ��������� ��������� |
|
Dem=51 |
����������� ������������ |
|
End Case |
����� ��������� Select |
�������� ����� For—Next. ������ �������� ��������� � ��������� ����������� ������, �����
�������� ������� ����� ���������� �����, ������ ���������, ��������
�������� � ��� (����������) ��������� ���������� ��������, �.�.:
��� ������� �������� ���������� ����� ����� ����������� ���� ����������,
������������� �� ��������� ����� Next. ����� ���������� ���������
���������� ����� (���������� �������� �� ���), ����������� ����������
�������� (�� ����� ���������� ��������� ��������) � ����������� ����������
����� ����������.
���� ���������� ����� ��������� �������� �����, ����������
���������� ���������, ���������� �� ������ Next.
� ���� ����� ����� �������������� �������� Exit For. ��� ���������� ����� ��������� ������������ ���� � ���������� �����
���������� ���������, ���������� �� ������ Next. ���� For—Next ����� ���� ���������.
������ 19.25. ����������� ������ � �������������� �������� ����������
|
����� ��������� |
����������� |
| Sub stickRandom() | ���������� ����� ��������� |
| Dim numrows As Integer; numcols As Integer Dim therow As Integer; thecol As Integer |
���������� ���������� |
| numrows=Selection.Rows.Count | ����������� ����� ����� � ���������� ����� ����� |
| numcols= Selection.Columns.Count | ����������� ����� �������� � ���������� ����� ����� |
| Debug.Print numrows; numcols | ������ ����� ����� � �������� � ���������� ����� ����� |
| Randomize | ��������� ��������� ����� |
| Debug.Print Rnd | ������ ���������� ����� |
| For therow=1 To numrows | ������� ���� �� ����� ����� � ����� ����� |
| For thecol=1 To numcols | ���������� ���� �� ����� �������� � ����� ����� |
| Selection.Cell(therow; thecol).Value=Rnd{/td> |
������������ ������� ������ ���������� ����� Selection-����� ������ |
| Next thecol | ����� ����������� ����� |
| Next therow | ����� �������� ����� |
|
End Sub |
����� ��������� |
���� Do—Loop. ��������� ����������� ����, �������� Do Loop — ����� �����; ����� 4
�����������:
1) ������� True � ������ �����
Do While <�������>
<���� ����������>
Exit Do
<���� ����������>
Loop
���� ����������� �� ��� ���, ���� ������� <�������>.
����������� ����� ���������� ���� ����� — 0. �������� Exit Do ������������ ��� ����������� ����� � �������� ���������� ���������
Loop — ����� �����.
2) ������� True � ����� �����
Do
<���� ����������>
Exit Do
<���� ����������>
Loop While <�������>
���� ����������� ���� �� ���� ���, � ����� ����������� �������� <�������>.
3) ������� False � ������ �����
Do Until <�������>
<���� ����������>
Exit Do
<6��� ����������>
Loop
Until ���������, ��� ���� ����������� �� ��� ���, ���� <�������>
�� ������ ��������. ����������� ����� ���������� ���� ����� — 0.
4) ������� False � ����� �����
Do
<���� ����������>
Exit Do
<���� ����������>
Loop Until <�������>
������� ����������� � �����, ���� ������������, ����� ������� ������
��������. ����������� ����� ���������� ���� ����� — 1.
������ 19.26. ���������� ��������� ����������� ������
|
����� ��������� |
����������� |
| Option Explicit | �������������� ���������� ���� ���������� ����� �� �������������� |
| Sub Do_Rnd() | ���������� ����� ��������� ��� ���������� |
| Dim a As Single Dim i As Integer, |
���������� ���������� |
| Randomize | ������ ���������� ��������� ����� |
| Do While True | ������ ����� Do. ������� ������� ���������� �����- ���� ����������� |
| a=Rnd | ���������� ���������� ��������� ����� |
| Debug.Print a | ������ ���������� ����� |
| If a>0.99 Then Exit Do | ���� ������� — ��� ��� ���������� ����� �� ����� |
| Loop | ����� ����� |
| End Sub | ����� ��������� |
���� While-Wend. ������ �������� ��������� ������������� ���������
Do While—Loop. ������������� ������������ ��������� �������� ������������� ��������
���������� ����� �� ���� ����� (Exit Do �����������), �������� ������� ����������� ������ � ������ �����.
While <�������>
<���� ����������>
Wend
����For Each. �������� ��������� � ��������� ���������� ����������
����, �.�. ����������� � �������� (���������) � ������� ��������. �����������
������������� ����� ���, ����� �������� � ������ ������������ �������������. ������������ ��������� ������ — ������������.
For Each <�������> In <�����>
<���� ����������>
Exit For
<���� ����������>
��� <�������> ������������ ����� ���������� ���� Variant, <�����>
— ������������ ����� ��������. ��� ���������� ����� ������������ ��������
Exit For.
������ � �������
�������� �������
VBA �������� � ��������� �� ����� ������� ���� �����: �����������������
� ������������� �������.
���������������� ����
— ���������, ������� �������������� ������������ ����������
��������� ����������, ��� ��� �������� ������ �������� � ������� ANSI.
��� �������� � ����������������� ������� ����������� �� ������ �����:
��� ���� ������������ ������ ������ � ������ � ���������������� ����.
���� �������������
������� ����� ������ ������������� �����: ����� ������������
��������� ������ � ������ � ���� �������.
�������� �����
��������� ����� ��� ������������ �� �����, ��� � ����� �����. ������
���� ���������������� � ��������� ������������ �������, �������
������������� ��� � ������ ��������. ��������� ����� ����� ����� ����������
� ������� ���������� ������� FileFree, ������� ����������
��������� ��������� ����� ��� �������� ����� (����� ���������� � ���������
1 — 511).
���� ��������� � ������������ ������ ������:
Open <����_���__�����> [For <������>] [Access <�����������_������>]
[<����������>] As [#]����� [Len=<�����_������>]
��� <���� ���_�����> — ������ ��������, �������� ��������������
� ��� ��������� �����;
<������> — ������ ������ � ������:
Append — ���������� �������
Binary — �������� ����
Input — ���� ��� ������
Output — ���� ��� ������
Random — ���� ������������� �������;
<�����������_������> — ������ ��� ������ ������ �� ���������
� �����:
Read — ������ ������
Write — ������ ������
Read Write — ������ � ������ ������������;
<����������> — ���������� ����������� ������ � ������ ������
����������:
Shared — �������������� ������
Lock Read — ���������� ����� ��� ������
Lock Write — ���������� ����� ��� ������
Lock Read Write — ���������� ����� ��� ������ � ������;
����� — �������� ������������� �����;
<�����_������> — ����������� ��� ������� ������������� �����,
�������� — 32767 ����. ����������� ����� ������ ������ ������� ���������
������� (512 ����).
��� ������ ������������� ������� ����������� ��������� ������ � �������
��������� Type; ����������� ���� � ����� ����������� ���������. � ������� Binary, Input,
Random ��� ������� �������� ����� ������� ���� � ��� �� ����, �� ��������
����� ��������; � ������� Append, Output ��������� �������������� �������
����� �������� �����.
������ 19.27. �������� ������
|
����� ��������� |
����������� |
| Open «FILE» For Input As #1 | �������� ����������������� ����� ��� ������ |
| Open «FILE» For Binary Access Write As #1 | �������� ��������� ����� ������ ��� ������ |
|
Type Record Define userdefined type ID As Integer Name As String * 20 End Type Dim MyRecord As Record |
���������� ����������������� ���� ������ |
|
Open «FILE» For Random As #1 |
�������� ����� ������������� �������. ����� ������ ����� ������������ ���������� �������� Len |
| Open ‘FILE» For Output Shared As #1 | �������� ����������������� ����� � �������������� �������� (����� ���������� ����� ������ � ������ � ����) |
|
Open «FILE» For Binary Access Read Lock Read As #1 |
�������� ��������� ����� ��� ������, ������ ����� ������ ����������� |
�������� �����
����� ���������� ������ � ������ ��� ��������� � ������� ���������:
Close [<������_�������_������>]
���� ����� ������������ ����� �� ������, ����������� ��� �������� �����.
������ 19.28. �������� ������
Close # 1; #2;#4 ‘ �������� ������, ����� ��������
��� �������� 1, 2, 4
Close ‘ �������� ���� �������� ������
������ ���������� � ����
���������� ��������� ���������� ������ ���������� � ����.
1. ������ � ���������������� ����
������ �������� ������������ ������ ���������������� ������ � ����������������
���� ���������� ���� — �� �������� � �������� ������:
Print#�����_�����;[<��������_������_����������>]
�������� ������ ������ ����� ���������:
[{Spc(n)|Tab[(n)]}] [<���������>] [charpos]
��� Spc(n) — ����� ������ ������;
Tab(n) — ������ � ��������� �������;
<���������> — ��������� ��������� ��� ����������� ����;
charpos — ���������� ������� ������� ��� ���������� �������. ������
; ������������ ������� �� ������ ������ (� ������ ������ �����).
���� ���������������� ���� ������ ����� �����������, �� �������������
��������� �������� Print.
������ 19.29. ������ � ���������������� ����
|
����� ��������� |
����������� |
|
Open «FILE» For Output As #1 Print #1; «������ ������ ������» |
�������� ����� ��� ������ ����� � ���� ��������� ������ |
|
Print #1; |
������� ������ ������ |
| Print #1; «���»; Tab ; «������������» | ����� � ��� ������� |
| Print #1; «���» ; » » ; «������������» |
���������� ���� ���� �������� |
| Print #1; Sps(5); «���» | ������� 5 �������� ����� ������� ����� |
| Print #1; Tab(10); «���» | ���������������� � ������� 10 |
| MyBool=False | ���������� �������� ���������� ���������� ���� |
|
MyDate=#February 12, 1969# MyNull=Null MyError=CVErr(32767) |
|
|
Print #1; MyBool; Print #1; MyDate ; «��� ����» Print #1; MyNull; «��� ������ ��������» Print #1; MyError; «��� ������» |
������ �������� ���������� � ���� |
|
Close#1 |
�������� ����� |
���������� ������:
������ ������ ������
��� ������������
��� ������������
���
���
False
February 12, 1969 — ��� ����
Nul — ��� ������ ��������
Error 32767 — ��� ��� ������
2. ������ � ���������������� ����
� ���������������� ���� ������ ���������� ����������� ��������:
Write #�����_�����; [<��������_������_����������>]
��� ������ ��������� ���� ������������ ������ ����� ��� ����������
�����, � ������� �� ��������� Print ��� ������ � ����
������������� ����������� ����������� �������- �����������:
- ������� — ����� ����������;
- ������� ������� — ������ ���������� ������.
������ — ������ �����).
������ 19.30. ������ ���������� � ���������������� ����
|
����� ��������� |
����������� |
|
Open ‘FILE» For Output As #1 Write #1;»����� ������!’; 1234567890 Write #1; |
�������� ����� ��� ������ �������� ���������� ������ � ����� ������� ������ ������ |
|
MyBool=False MyDate=»February 12, 1969″ MyNull=Null MyError=CVErr(32767) |
���������� �������� ���������� |
|
Write #1;; MyBool ; Write #1; MyDate ; Write #1; MyNull ; Write #1; MyError; |
������ �������� ���������� � ���� |
|
Close#1 |
�������� ����� |
��������� ������:
«���� ������!»,1234567890
#FALSE#,»February 12, 1969″,#NULL#,#ERROR 32767#
3. ����� ������ � ���� ������������� �������
����� ������ ����������� ����������:
Put [#�����_�����; [#������],<����������>
��� #������ — ����� ������ ��� ����� ������������� ������� ���� �����
�����, � �������� ���������� ������, ��� ��������� �����. ���� �����
�� ������, ������������ ��������� �� ��������� �������������� � ����������
Get. Put, Seek.
������ 19.31. ������ � ���� ������������� �������
|
����� ��������� |
����������� |
|
Type Record ID As Integer Name As String * 20 End Type |
���������� ����������������� ���� ������ ��� ������ |
| Dim MyRecord As Record | ���������� ���������� �� ������ ����������������� ���� ������ |
| Open «TESTFILE» For Random As #1 Len=Len(MyRecord) | �������� ����� ������������� ������� � ������, ��������������� ����� ������������ ���� |
|
For RecordNumber=1 To 5 |
����������� ����� ��� ������ � ���� |
|
MyRecord.ID=Number �MyRecord.Name =»������ �����» & RecordNumber |
������������ ����������� ������ |
| Put #1, RecordNumber, MyRecord | ���������������� ������ � ���� |
|
Next RecordNumber Close #1 |
����� ����� �������� ����� |
���� ���������� �� �����
1. ������ ������ �� ����������������� ����� ������ ����������� ����������:
Input #�����_�����; <������_����������>
������� ������� ��� ���������� ������������, ����������� �������� ������������
����� ������ ���������� � �����.
������ 19.32. ������ � ���� ������������� �������
|
����� ��������� |
����������� |
|
Open «FILE» For Input As #1 Do While Not EOF(1) Input #1; MyString; MyNumber Debug.Print MyString; MyNumber Loop Close #1 |
�������� ����� ���� �� ����� ����� ������ ������ ������ � ���������� ������ ��������� ������ ����� ����� �������� ����� |
������ ���������� ������ �� ����������������� ����� ��������
Line Input #�����_�����; <����������>
�������� ������������ ������������ ���������� ������ ������ �� �����
�� ����������� ������� «������� �������» (�h�(13)) � ����������
���� ������ ��������� ���������� ����������� ����.
������ 19.33. ���������� ������ �� ����� ����������������� �������
|
����� ��������� |
����������� |
|
Open «TESTFILE» For Input As #1 Do While Not EOF(1) Line Input #1, TestLine Debug.Print TextLine Loop Close #1 |
�������� ����� ����, ���� �� ��������� ����� ����� ������ ������ � ���������� ������ � ���� Debug ����� ����� �������� ����� |
2. ������ ������ �� ����� ������������� �������
������ �������� ������������ ���������� ������ ����� �������������
������� � ��������� ����������:
Get Put [#�����_�����; [#������],<����������>
������ 19.34. ������ �� ����� ������������� �������
|
����� ��������� |
����������� |
| Type Record | ���������� ����������������� ���� ������ ��� ������ |
|
ID As Integer Name As String * 20 End Type |
|
| Dim MyRecord As Record | ���������� ���������� �� ������ ����������������� ���� ������ |
| Open «FILE» For Random As #1 Len=Len(MyRecord) | �������� ����� ������������� ������� � ������, ��������������� ����� ������������ ���� |
|
Psition=3 Get #1, Position, MyRecord Close #1 |
������� ������ ( ������) ������ ������������ ����������� ������ �������� ����� |
���������������� �� ������ � �����
������� � ������ (����� ����� ��� ����� ������) ��� ���������� ������
��� ������ � ���� ��������������� ����������:
Seek [#] �����_�����; �������
��� �������.- ����� � ��������� ������� ������ (1-2147483 647) �����.
��� �����, ������������ � ������ ����������������� �������, � �������
��������� SEEK ������������ ����.
������ 19.35. ���������������� � ����� ����������������� �������
|
����� ��������� |
����������� |
| Dim MyChar As String | ���������� ���������� �� ������ ����������������� ���� ������ |
| Open «FILE» For Input As #1 | �������� ����� ������������� ������� � ������, ��������������� ����� ������������ ���� |
| MaxSize=LOF(1) | ���������� ���������� ������ � ����� |
| For NextChar- MaxSize To Step -1 | ����������� ����� ��� ����������������� ���������� ������� �� ����� ����� � ��� ������ |
|
Seek #1, NextChar MyChar= Input(1,#1) Next NextChar |
|
|
Close #1 |
�������� ����� |
��� �����, ������������ � ������ ������������� �������, ������������
��������� ����� ������, � ������� ����� �������� ���������.
������ 19.36. ���������������� � ����� ������������� �������
|
����� ��������� |
����������� |
| Type Record | ���������� ����������������� ���� ������ ��� ������ |
|
ID As Integer Name As String * 20 End Type |
|
| Dim MyRecord As Record |
���������� ���������� �� ������ ����������������� ���� ������ |
| Open «FILE» For Random As #1 Len=Len(MyRecord) | �������� ����� ������������� ������� � ������, ��������������� ����� ������������ ���� |
|
MaxSize=LOF(1)\ Len(MyRecord) Get For RecordNumber=MaxSize To 1 Step-1 |
���������� ���������� ������� � ����� ����������� ����� ��� ����������������� ���������� ������� �� |
|
Seek #1, RecordNumber Get #1, , MyRecord Next RecordNumber |
|
|
Close #1 |
�������� ����� |
���������� ����
���������� ��������� ����� ����������
����, ������� ���������� ��� ����������� � ��������� ��������������
������ ������ ��������� ������������ (����� ��������� ������������,
����� � ������������� ��������, ��������� �������������, � ��.).
���������� ���� ��� ������ �����������
���������� ������� MsgBox() ������������ �������� ���������� ���� ��������� �����.
1. ������� ����-���������
MsgBox ( «������_���������»)
���� � ��������� ������ �������������� �������� ���������� ��� ��������
������� ����������, ������� ��������� ����������������� ���� ������
� �.�., ������� ������������� �������� � ��������� � ����������
������������ �����.
������ 19.37.����� ��������� � �������� ����������
|
����� ��������� |
����������� |
|
Option Explicit Sub Msg_Priim() Dim a As Single Randomize a=rnd MsgBox «�������� ���������� �����» & Str(a) End Sub |
�������������� ���������� ���� ���������� � ������ ����� �� �������������� ���������� ��������� ���������� ���������� ������ ���������� ��������� ����� ���������� ���������� �������� ���������� ����� ����� ��������� ����� ��������� |
2. ����-��������� � ���������� ��������
����� ������ ���������:
MsgBox(«������_coo������»[, <������>] [, «���������_����»
[, <����-���������>, <��������>])
��� <������_���������> — ������������ ����� ������ — 1024 �������;
<������> — �����, ���������� ������ ����� ��������� ����� ������
� �����������, ��� ����� ������;
<���������_����> — ������ ��������;
<����-���������> — ��� �����-��������� ��� ����������-���������
������ ��� ������ � ����, ������ ��������;
<��������> �����, ������� ��������� ��������� ��� ������� ����.
���� ������� ��������� ������ � ���������� � ������� MsgBox()
��������� � ���. 19.7. ������� MsgBox() ���������� ��� (�����), ��������������� ������� ������-
������� 19.7. ������ ����� ��������� ������ � �� �����
|
��� |
��������� |
�������� |
|
0 1 2 3 4 5 0 256 512 16 32 48 64 0 4096 |
vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCansel vbYesNo vbRetryCansel vbDefaultButton 1 vbDefaultButton 2 vbDefaultButton 3 vbCritical vbQuestion vbExclamation vbInformation vbApplicationModal vbSystemModal |
���� ��������� �������� ��, ������ ����������, ���������, ������������ ��, ���, ������ ��, ��� ���������, ������ ���� ���������� �� ����������������� 1 �������� 2 �������� 3 ���� ���������������� ��������� ����������������� ������ ����������������� ��������� �������������� ��������� ���� ���������������������� ��������� �������� ( ��������� ������������ �����, ��������� ��������� �������� ( ��������� ������������ �����, |
������ 19.38. ������������ ����������� ���� � ��������
| ����� ��������� | ����������� |
| Option Explicit | �������������� ���������� ���� ���������� ����� �� �������������� |
| Sub Msg_Priim() | ���������� ��������� |
|
Dim Response As Integer Dim Msg As String Dim Title As String Dim Help�As String Dim�Ctxt As Integer |
���������� ���������� |
|
Msg= «�� ������ ����������?» Styl=35 |
������ ��������� ������ ��� ���� ( vbYesNoCancel+ vbDefaultButton+ vbQuestion) |
|
Title=» ������ ����-���������» |
��������� ���� |
| Help= «DEMO.HLP» | ��� �����- ��������� |
| Ctxt=0 | ����� ��������� ������ �����- ��������� |
| Response=MsgBox( Msg; Style;Title; Help; Ctxt) | ���������� ���������� ���� ������ |
| End Sub | ����� ��������� |
���������� ���� ��� ����� ������
������� InputBox() ������������ ������������ ���� ��� ������ ������ ��������� � ��������
����� ������ �������� ��� ������� ������. ���������� ���������� ����������
�����:
Input���(<������_���������> [,<���������_����>] [,<�����_��_���������>]
[,����][,Y���][, <����-���������>, <��������>])
��� <�����_��_���������> — ������ ��������, ��������� � ���������
����� (����� ���� ������);
����, Y��� — ������� ������ �������� ���� ����.
������ 19.39. ������������ ���� �����
|
����� ��������� |
����������� |
| Option Explicit | �������������� ���������� ���� ���������� � ������ ����� �� �������������� |
| Sub Msg_Inp() | ���������� ��������� |
|
Dim Response As String Dim Message As String Dim Default As String Dim Title As String Dim Help As String Dim Style As String Dim Ctxt As Integer |
���������� ���������� |
| Message=»������� �������, ���, �������� �������� « |
������-��������� |
| Title=» ������ ���� ��� �����» | ��������� ���� |
| Default=» ������� ����� �������������» | ����� �� ��������� |
| Response=InputBox ( Message; Title; Default; 100; 100) |
���������� ���������� ���-�������� ���� ���������� ����� |
| End Sub | ����� ��������� |
���������� ���� �������������
���������� ���� ������������� ������������ ���� � �������������� ������
������ � ������. ��� �������� ����������� ���� ����������� ������� �������,
������ � ��������� ���� ������������ ����� — ������. �����
�������� ������ ��� ���������� ����������� ���� ������������, � �����
������ ������������ ����� (���. 19.26) ��� ���������� � ��������� (��������������)
��������� ����.
���. 19.26. ������ ������������ �����
������� .19.8. ������ ������ ������������ �����
� ���������� ���� ����� ����������� �������� ������������� ����. ������� �������
������ ��������. ������ � ����������� �������� — �� ����� ������
� ����� ��� ����������� ������ �������� ������ ������.
����� �� ����� ���������������
������������� � �������� ������ � ���������� �����, �� ����� ����������
����������� ����� � ������� �������� Caption ������� Labels().
������ 19.40.
Sheets(«<���_�����_�������>»). Labels («<���_ �������_�����>»)
.���tion=»������ ������»
���� ����� ��������
�������������, �������� �����, ������� ����� �������������. ���� �����
������ � ����� EditBoxes(), ��� ����� ������������� � ����������� ��������.
������ 19.41.
Sheets(«<���_����a_��a�o�a>»).EditBoxes(«<���_
o��a>»).Text=»c����� ������»
����� ����, ���� ��� �������� ����������� ���� �������� ����������
����������:
� MultyLine =True — � ������ ��������������� ���� �����;
� InputType — ����������� ���� ������, �������� � ���� (xlFormula,
xlInteger,xllNumber, xlReference, xlText).
����� ������
������������ ����������� ���������� ��������� ����������� ����. ����
��� ���� ������������ � ������ �������, � ����� ������ ���� �����������
������ ��������. ��� ������� ������ ������ � ������� ������ ����� �����������
������� ������������ ��� �������� — Caption.
������ ������������
���������� �����, ����� �������� Value (��������� �������� True, ���� ������, ��� False — � ��������� ������). �������� �������������
�������� ����� CheckBoxes().
������ �������������
������������ �������������� ����� �� ������ ����������������� �����.
����� ������ ������ � ������ ������, ���� ��� �������� �� ����������,
���� ��� ������ � ���������� ���� �������� ������ ������; ����� �����
�� ������ ������ ������ �������� �������������� ������� ������. ��������
������������� �������� ����� OptionButtons(). �������� Value ��������� �������� True, ���� ������� ������, � False — � ��������� ������.
���� ������
������������� ��� ������ ������ ��������, ��� ���� �������� ������ ����������.
������������ ������ �������������� ������ ����������� �����. ����������
��������� ��������� ����������� ������� � ������� ������� �������;
� ListFillRange � ������ �� �������� ����� ����������� �������, ���������� �������� ���������
������;
� List() � ������������ ��������� ������ ���������������, ������ ������� ������
����� �������.
�������������� ������
�� ������ ������������� ���� �������, �� ���� ������� ������ � �����
DropDowns().
���� ����� �� ������� ���������� ���� ������ � ���� ��������������.
��� ������ �������� ������ �� ������������� ���������� � ���� ��������������,
��� �������� ��� �������������. � �������� ��� ��� ������ ���� � ����������
����������.
���� ����� � �������������� ������� ������������ ����� ���������� �����������
������, �������� �������� ����� �������������.
������� ��������� ������� �������������� ��� ������������ ������� ���������.
�������� Value �������� �����, ��������������� ��������� ��������, ������ � ��������
��������� ����� �����-ScrollBars(). �������� Min � ���
��������� ���������� ��������, �������� ��� �� ���������, ��� � �����
���������� ���� �������������� ��������. �������� LargeChange � SmallCnange �������� �������� ��������� �������� Value.
��������� ��������
���������� ������� ���������, �� ����������� �������� LargeChange.
�� ���. 19.27 ������������ ���������� ���� ������������ ��� ����� ������
�� ��������������� �������.
���������� ���� ������������ �������� ��������� ��������:
- ����� (������, ������� ��� ��������, N ���.������ � ��.);
- ���� ������ ��� ������ N ������ — ������ ����� ���� �����������
� ������� �������� �����, ��� ���� ��������� �������� ������ �����
���� ���������, ������������� ��� �������. ��������� ������ �����
�������� � ��������� ������ �������� �����; - ���� ����� (������� ��� ��������, � ���.������, ����), ��� �������
����� ���� ������ ��� �������� ���������� (�����, ����� �����, �����,
������, �������), ������� �������������� ������ � ������������ �������
���������; - �������������� ������ (����������, �������������, ������), ��������
������� ����� ���� �������� � ������� �������� �����, �����������
����������� ��������� ����� ���������; - ������ ���������� (<�� ���������>, <0�����>, <3������>,
<�������>).
���. 19.27. ���������� ���� ������������
��� ����������� �������� ����������� ���� � ������� ������� ������������
���� ������ ������� ���������� ���� «�������������� �������»
��� ������� ���������, �������������.
Открытие или создание нового файла из кода VBA Excel для ввода и (или) вывода информации с помощью оператора Open. Синтаксис и параметры.
Open – это оператор, который открывает или создает новый файл и включает операции ввода и (или) вывода информации.
Оператор Open не используется для открытия собственных файлов офисных приложений, например, документов Word, рабочих книг Excel или баз данных Microsoft Access. Так как это приводит к нарушению целостности и повреждению файлов.
Закрывается файл после окончания операций ввода и (или) вывода информации в коде VBA Excel с помощью оператора Close.
Синтаксис оператора Open
Краткая запись выражения с оператором Open:
|
Open pathname For mode As [#] filenumber |
Краткая запись не содержит необязательные параметры. Знак решетки [#] используется в случае, когда номер файла указывается в виде числа без использования функции FreeFile. Например: #1, #2, #150, #300.
С полной записью выражения с оператором Open вы можете ознакомиться на сайте разработчика. Мне не удалось заставить ее работать с необязательными параметрами в VBA Excel 2016.
Параметры оператора Open
Обязательные параметры:
| Параметр | Описание |
|---|---|
| pathname | Строковое выражение, указывающее полный путь к открываемому файлу*. |
| mode | Ключевое слово, задающее режим** открытого файла: Append – последовательный доступ, который позволяет записывать данные в конец файла с сохранением предыдущих строк; Input – последовательный доступ, который разрешает только чтение файла; Output – последовательный доступ, который позволяет записать новую информацию в файл с перезаписью (очисткой) предыдущих данных. |
| filenumber | Числовое значение в диапазоне от 1 до 511 включительно, для получения которого следует использовать функцию FreeFile. |
* Если указанный файл не существует, он будет создан при открытии в любом режиме, кроме Input (только для чтения).
** На сайте разработчика вы можете узнать о существовании еще двух ключевых слов, задающих режим оператора Open: Binary и Random.
Продолжение темы об открытии файла для ввода и вывода информации с примерами кода опубликовано в статье: Операторы чтения и записи в файл.
Материалы
этой статьи опубликованы в [12], [].
§ 1.
…
1.1.
Удобно
хранить исходные данные для больших
программ в виде отдельных файлов. Тогда
при запуске программ не надо будет
каждый раз эти данные вводить, а
полученные результаты тоже хранить в
файловом виде.
Рассмотрим
основные принципы работы с файлами.
В
табл. 9.5 приведены наиболее часто
используемые функции, обеспечивающие
операции с файлами.
Таблица
9.5. Функции
работы с файлами
|
Функция |
Описание |
|
Open
For
[Access [Lock]
As
[Len
Seek Position
Seek
FreeFile[(Range)
Get
[RecNumber] VarName
Put
[RecNumber] VarName LineInput #FileNumber VarName
Input VarList Input(Number, Print [OutputList] Write [OutputList] FileLen(PathName) LOF(FileNumber) EOF(FileNumber) Dir [.Attributes] CurDir ChDir MkDir RmDir Kill |
Функция
Параметр
Параметр
режим
двоичного
Параметр
Параметр
Параметр
Функция
Функция
Функция
идентификатора
Функция
FileNumber—
RecNumber—
Функция
Функция
происходит
Функция
Например:
Функция
FileNumber
IDChar=Input(1,#1)
Функция
Print
Функция
Например:
Функция
Функция
Функция Функция fn=Dir(“C:\temp\*.bmp”) fn=fn+Chr Файл Примеры: Dir Dir Dir Функция
Функция Функция Функция Функция
Kill |
В Visual
Basic реализованы
три типа доступа к файлам:
-
последовательный
– для чтения и записи текстовых файлов; -
произвольный
– для чтения и записи текста с записями
структурированной длины; -
двоичный
– для чтения и записи произвольно
структурированных файлов. -
Имеются
3 разных типа файлов: -
—
последовательные файлы -
—
файлы с произвольным доступом -
—
бинарные файлы
Файлы
бывают двух типов:
-
Последовательного
доступа -
Произвольного
доступа
Мы
в будем рассматривать только
последовательный доступ. Данные в файле
хранятся при этом в неструктурированном
виде.
Доступ
к файлам VBA подразумевает
выполнение 3 действий:
—
открытие файла
—
чтение или запись файла
—
закрытие файла
Работа
с файлами данных всегда состоит из
нескольких этапов:
-
получение
дескриптора файла; -
открытие
файла; -
чтение
или запись данных; -
закрытие
файла.>
Рассмотрим
все перечисленные этапы поочередно.
Дескриптор
файла. Чтобы
работать с файлами, нужно понимать, как
связывается система с файлом. Для этого
имеется канал ввода-вывода. При открытии
файлу ставится в соответствие канал с
определенным номером. Каждый открытый
файл имеет собственный канал, с помощью
которого записываются или считываются
данные. Для ввода и вывода данных имеет
значение не имя файла, а номер канала.
Функция Visual
Basic FreeFile возвращает
номер свободного канала, который можно
использовать для работы с файлом.
intFh
= FreeFile( )
В
этом примере переменной intFH присваивается
целое значение, которое можно использовать
для открытия файла.
Команда
открытия файла:
Open
«имя путь.txt»
for
режим работы, номер цикла
Открытие
файлов:
Прежде
чем начать запись или чтение файла его
необходимо открыть. Файл открывается
при помощи оператора Open,
в котором используется следующий
синтаксис:
Open
Filename for mode Access lock
As
# filenum
LEN
= reclen
Filename –
строка определяет название файла,
который необходимо открыть.
Mode –
необязательный аргумент, который
определяет режим доступа к файлу
возможного значения:
APPEND –
последовательный доступ к файлу. Если
файл уже существует, то данные
присоединяются в конец файла, если файл
не существует, то они отсоединяются.
BINARU –
бинарный доступ к файлу для чтения и
записи.
INPUT –
последовательный доступ к файлу только
для чтения, если файл не существует, то
возникает ошибка.
OUTPUT –
последовательный доступ только для
записи. Если файл существует, он удаляется
и создается заново, если не существует,
то просто создается.
RANDOM –
произвольный доступ для чтения и записи
данных. Этот режим используется по
умолчанию, если аргумент mod не
задан.
ACCESS –
необязательный аргумент, определяющий
операции которые размещены с открытым
файлом.
READ –
файл открыт только для чтения.
WRITE —
файл открыт только для записи.
READWRITE —
файл открыт только для чтения и записи.
Открытие
файла. Способ
открытия файла с последовательным
доступом (для чтения, записи или
добавления) задается при вызове
оператора Open.
Open Имя_файла For
[Input \ Output \ Append] As FileHandle
Если
в операторе использовано слово Input,
то файл открывается только для чтения
из файла. Если файл не существует и
открывается для чтения, то Visual
Basic выдает
сообщение об ошибке.
Если
в операторе использовано слово Output,
то файл открывается для записи. Если
файл с таким именем уже существует, то
его содержимое удаляется. Если файла
с таким именем нет на диске, то создается
новый файл.
Если
в операторе использовано слово Append,
то файл открывается для добавления.
Если файла с таким именем нет, то он
создается.
В
конце оператора указывается номер
канала, возвращаемый функцией FreeFile. Приведем
несколько примеров использования
оператора Open при
последовательном доступе.
Open
“Text . txt” For Input As intFH1
Open
“C: / DAN / Text . txt” For Output As intFH2
Open
“Proba . txt” For Append As intFH3
Команда
открытия файла.
Open
«Имя пути. txt» «Режим работы» С # номер
файла. Например,
Open
«S: / Windows / Рабочий стол / Учебный процесс
/ Вектор.txt». Input S #1.
Режим
работы.
Output
– для записи данных файлов.
Append
— для добавления
Input
– для чтения
данных из файла. Число любое, целое
(1-511)
Режим
работы:
-
Output
– для записи данных (имеющиеся стираются) -
Append
– для добавления информации в конец
файла -
Input
– для чтения данных из файла
В
качестве номера файла можно использовать
целое число от 1 до 511
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
