Стив Каммингс - VBA для чайников
- Название:VBA для чайников
- Автор:
- Жанр:
- Издательство:Компьютерное издательство Диалектика
- Год:2002
- Город:Москва
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стив Каммингс - VBA для чайников краткое содержание
Эта книга поможет освоить интегрированную среду разработки VBA и научиться программировать в VBA с использование объектов, их свойств, методов и событий. Обсуждаемые приемы программирования иллюстрируются примерами, которые можно сразу же опробовать на практике. Полученные знания вы сможете применить как для настройки и усовершенствования популярный офисных приложений, включая приложения Office XP, так и для создания собственных приложений.
Книга рассчитана на тех, кто собирается быстро и без лишних усилий научиться программировать для Windows, используя VBA.
VBA для чайников - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Метод |
Доступные режимы ввода-вывода для определенного объекта текстового потока |
Create Text File (объект FileSystemObject) |
Чтение и запись |
Open Text File (объект ileSystemObject ) |
Чтение и добавление |
Open As Text Stream (объект File ) |
Чтение, запись или добавление (только один из режимов) |
Когда объект Text Stream создается из объекта File, режим ввода-вывода задается как аргумент метода OpenAsText Stream с помощью трех соответствующим образом названных констант: For Reading (для чтения), For Writing (для записи) и ForAppending (для добавления). Например, если нужно добавить текст в конец существующего файла, откройте текстовый поток с помощью следующего оператора:
Set objTS = objFile.OpenAsTextStreamfForAppending)
Открыв объект Text Stream в подходящем режиме доступа, можно начинать работу с содержимым файла. В вашем распоряжении для этого есть несколько простых методов.
Можно читать и записывать данные как отдельные символы или строки. Если только все элементы данных не равны по длине, я рекомендую построчное считывание и построчную запись. Когда читаются строки данных, вам не нужно знать длину строк, а только их номер. Сама же "строка" может состоять из любого числа символов и даже вообще не содержать ни одного символа.
В любом случае, чтобы читать данные из текстового потока, присвойте переменной значение, возвращаемое одним из подходящих методов объекта Text Stream. Следующий фрагмент программного кода подскажет вам, как это сделать:
' чтение следующей строки из файла в переменную
strНекоторыйТекст = Text Stream.ReadLine
Для чтения предусмотрены следующие методы.
Метод (объекта Text Stream) |
Выполняемое действие |
Read (число_символов) |
Чтение заданного числа символов начиная с текущей позиции в файле |
ReadLine |
Чтение всех символов начиная с текущей позиции в файле до следующего символа перехода на новую строку |
ReadAll |
Чтение всего файла |
Skip ( число_символов) |
Пропуск заданного числа символов при чтении файла. Следующее чтение должно начаться с первого из символов, следующих за пропущенными |
SkipLine |
Пропуск следующей строки в файле. Следующее чтение должно начаться с первого из символов, следующих за пропущенной строкой |
Чтобы записать данные в текстовый поток, задайте текст для записи в виде строки как аргумент метода Write или WriteLine, как в следующем примере:
' запись строки
objTextStream.Write "Алло, центральная!"
' запись значения переменной с последующим символом
' перехода на новую строку
objTextStream.WriteLine strMyTwoBits
Метод (объекта TextStream) |
Выполняемое действие |
Write(строка) |
Запись в текстовый поток указанной строки |
WriteLine(строка) |
Запись в текстовый поток указанной строки с последующим символом перехода на новую строку |
WriteBlankLines(число_ строк) |
Запись в текстовый поток указанного числа символов перехода на новую строку |
Завершив чтение текстового потока или запись в текстовый поток, всегда закрывайте объект Text Stream, чтобы освободить системные ресурсы и память и чтобы другие программы и пользователи смогли получить доступ к соответствующему файлу. Здесь нужен метод Close:
objText Stream.Close
Текстовые потоки хороши для чтения и записи относительно небольших по объему порций данных. Основная проблема состоит в том, что нельзя свободно перемещаться внутри текстового потока. Методы чтения начинают чтение данных с самого начала файла и читают его до конца. И хотя при чтении можно использовать методы Skip и Ski pLine, чтобы перепрыгнуть заданное число символов или строк, в обратном направлении перескакивать нельзя - выполнение оператора типа objText Stream. Skip (-10) порождает ошибку. к сожалению, объекты Text Stream не имеют методов или свойств, позволяющих прямо задать стартовую позицию для следующего чтения. Однако примерно то же самое можно сделать по-другому. Сначала нужно закрыть и снова открыть текстовый поток, а затем с помощью метода Skip пропустить на одну позицию меньше, чем номер нужной позиции. Например, если вы хотите прочитать 25 символов, начиная с 5-го символа в файле, соответствующую задачу выполнят следующие операторы:
objTextStream.Close
Set objTextStream = bjFile.OpenAsTextStream(ForWriting)
objTextStream.Skip(4)
objTextStream.Read(25)
При записи данных в текстовые потоки вы еще больше ограничены, чем при чтении, поскольку вообще не допускаются пропуски в файле. Каждая последующая операция записи начинается там, где закончилась предыдущая, и при этом переписывается любой текст, который может оказаться на соответствующих позициях в файле.
Поэтому, если вам нужно внести в каком-то месте файла некоторые изменения, не затрагивая при этом остальной текст, прочитайте все содержимое файла в строку, соответствующим образом измените ее, а затем замените все данные в файле новыми данными.
Использование объектов Dictionary
В объектах Dictionary (Словари) удобно хранить табличную информацию, организованную в два столбца. В каждой строке такой таблицы в одном столбце хранится имя элемента, а в другом - нужное вам значение. Действительно, очень похоже на словарь; заголовки словарных статей - это имена элементов, а словарные определения - значения. Правда, объекты Dictionary допускают хранение значений любых типов.
С объектами Dictionary можно работать и в VBA 5, и в VBA 6. Но эти объекты не встроены в VBA. Они находятся в библиотеке Microsoft Scripting Runtime, использование которой уже обсуждалось в разделе "Работа с файлами". Чтобы использовать объекты Dictionary в VBA-программе, нужно выполнить инструкции, приведенные там под заголовком "Ссылки на библиотеку Microsoft Scripting Runtime".
Базисные сведения об объектах Dictionary
При объявлении переменных для словарей и последующем их создании используйте приемы, описанные выше в разделе "Доступ к объектам других приложений". Например:
Dim dictBigCats As Scri pti ng.Dictionary
Set dictBigCats = CreateObject("Scri pti ng.Dictionary")
Теперь можно добавлять в словарь имена элементов и значения с помощью метода Add:
dictBigCats.Add "Гепард", "Быстрый и поджарый"
dictBigCats.Add "Лев", "Рычащий и лохматый"
dictBigCats.Add "Пантера", "Черная, а не розовая"
Лучше, чем коллекции
Объекты Dictionary в некоторых довольно важных деталях совершеннее подобных им объектов Collection, которые обсуждались в главе 12, по следующим причинам.
* Не требуется знать имена элементов для доступа к ним и к соответствующим им значениям, поскольку возможен доступ ко всем элементам сразу с помощью цикла For Each . . . Next. Например:
For Each airplane in dictBiplanes
MsgBox dictBiplanes(airplane)
Next
* Можно изменить значение элемента, используя имя элемента, просто присвоив новое значение:
Читать дальшеИнтервал:
Закладка: