Использование объектов других приложений



Основное приложение. Проекты 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!