Использование объектов других приложений
Основное приложение. Проекты VBA разрабатываются и выполняются совместно с другим приложением, которое называется основным. Программы на языке VBA всегда сохраняются в документе основного приложения. Однако программы могут использовать как возможности, так и данные других приложений.
Использование VBA в Microsoft Excel
VBA позволяет существенно расширить возможности EXCEL. С помощью VBA можно легко и быстро создавать различные приложения, даже не являясь специалистом в области программирования. VBA имеет графическую инструментальную среду, позволяющую создавать экранные формы и управляющие элементы. С его помощью можно создавать свои собственные функции для Excel, вызываемые мастером функций, разрабатывать макросы, создавать собственные меню и многое другое.
Редактор VBA активизируется из Excel одним из следующих способов:
- командой меню Сервис → Макрос→ Редактор Visual Basic;
- комбинацией клавиш Alt+ F11;
- кнопкой панели инструментов Visual Basic .
Вернуться из редактора VBA в приложение можно по комбинации клавиш Alt+ F11, по команде View→Microsoft Excel или через панель задач.
Знакомство с VBA мы рекомендуем начинать с создания макросов, когда сама программа Excel записывает выполняемые команды и генерирует программный код в виде процедуры. Между макросом, который создается в процессе записи, и VBA-программой, код которой мы вводим вручную, принципиальной разницы нет. В дальнейшем процедуру макроса можно модифицировать, добавляя новые команды или удаляя лишние. Тщательный разбор команд поможет освоить принципы языка VBA, а практическое написание программ значительно ускорит процесс изучения (подробнее о макросах см.в разделе Макросы).
|
|
Работа с файлами на языке VB
Каждая программа должна сохранять данные на диск и читать их с диска. Это необходимо, например, для сохранения настроек программы, вряд ли пользователю понравится программа, которую при следующем запуске придется настраивать заново.
В данной статье речь пойдет о работе с текстовыми файлами средствами Visual Basic.
Дескриптор файла
Для работы с файлами операционная система использует каналы ввода/вывода, т.е. каждый открытый файл имеет свой номер.
В Visual Basic существует функция FreeFile, которая возвращает номер свободного канала, который можно использовать для работы с файлом. Если свободных каналов нет, то возникает ошибка.
FreeFile [ (RangeNumber) ]
RangeNumber -необязательный параметр, который позволяет определить диапазон значений свободных каналов, если RangeNumber = 0 (по умолчанию), то возвращается номер канала из диапазона 1 - 255, а если 1, то из диапазона 256 - 511.
Пример:
MyFile = FreeFile ' Переменной MyFile присвоен свободный канал и теперь ее можно использовать для работы с файлами
|
|
Работа с текстовыми файлами
Наиболее часто приходится встречаться с текстовыми файлами. Текстовые файлы состоят из набора символов ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией).
Прежде чем начать записывать/считывать данные, файл необходимо открыть, делается это при помощи оператора Open (Имя_файла) For [Input | Output | Append] As #Номер_файла, где:
Input - открыть файл для чтения, если файл не существует, то возникает ошибка;
Output - для записи, если файл не существует, то он будет создан, а если файл существует, то он будет перезаписан;
Append - для добавления, если файл не существует то он будет создан, а если файл существует, то данные будут добавляться в конец файла.
Чтение текстовых файлов можно производить двумя способами: читать посимвольно, для этого используется функция Input(Количество_считываемых_символов, #Номер_файла) и построчно, для этого используется функция Line Input #Номер_файла, Куда_считывать.
Например, если надо считать первую строку из какого-нибудь файла в переменную S, то код будет таким:
Dim MyFile 'Объявляем переменную для свободного файла
Dim S As String'Переменная для хранения считанных данных
|
|
MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:TEST.txt") For Input As #MyFile 'Открываемфайл TEST.TXT длячтения
Line Input #MyFile, S 'Считываем первую строку из файла TEST.TXT в переменную S
Close #MyFile 'Закрываем файл
Если, например, надо считать не первую, а пятую строку, то код будет немного другой:
Dim MyFile 'Объявляем переменную для свободного файла
Dim i As Integer'Переменная для цикла
Dim tS As String'Переменная для считывания строк
Dim S As String'Переменная для хранения окончательных данных
MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:TEST.txt") For Input As #MyFile 'Открываемфайл TEST.TXT длячтения
For i = 1 To 5
Line Input #MyFile, tS 'Читаемфайл TEST.TXT построчно
If i => 5 Then S = tS 'Если пятая строка, то запоминаем ее в переменную S
Next i
Close #MyFile 'Закрываем файл
А если надо считать все данные из файла, то:
Dim MyFile 'Объявляем переменную для свободного файла
Dim S As String 'Переменная для хранения считанных данных
MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:TEST.txt") For Input As #MyFile 'Открываемфайл TEST.TXT длячтения
S = Input$(LOG(1), 1) 'Считываем весь файл в переменную S
Close #MyFile'Закрываемфайл
Для записи в файл существуют операторы Print #Номер_файла, Данные и Write #Номер_файла, Данные. Отличает эти операторы только то, что Write записывает данные в кавычках, а Print без кавычек.
|
|
Ниже следующий код создаст на диске C: новый файл TEST.TXT и запишет в него две строки, первую без кавычек, а вторую в кавычках:
Dim MyFile 'Объявляем переменную для свободного файла
MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:TEST.txt") For Output As #MyFile 'Открываемфайл TEST.TXT длязаписи
Print #MyFile, "Эта строка записана оператором Print, она без кавычек…"
Write #MyFile, "Эта строка записана оператором Write, она в кавычках…"
Close #MyFile 'Закрываем файл
Вот собственно и все. Как вы уже наверно поняли, для закрытия файла служит оператор Close #Номер_файла, при этом, #Номер_файла указывать не обязательно.
The End
Дата добавления: 2018-02-28; просмотров: 408; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!