Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы занятия.doc
Скачиваний:
11
Добавлен:
27.03.2015
Размер:
720.38 Кб
Скачать

Макросы занятие 10. Работа с массивами.

Массивы

Если попытаться упрощенно определить понятие массив в программировании, то это те же переменные, но хранящие не одно, а множество значений. Как и обычная переменная, массив существует только во время выполнения программы в памяти компьютера. Преимущество использования массивов состоят в том, что все действия с ними связанные производятся гораздо быстрее, так как это не объекты интерфейса.

Массив описывается только явным образом. Например:

Dim mass(200) as Integer

Приведенная запись показывает, что будет использована переменная mass, в которой для каждого индекса от 0 до 199 могут храниться различные целые числа. Если размерность заранее не определена, то в описании указывается пустой массив, а по ходу выполнения программы размерность переопределяется при помощи оператораReDim.

Sub ggg()

Dim mass() as Integer

----

----

ReDim mass(200)

В случае использования индексов, начиная с 1, исходный размер массива увеличивают на единицу, либо в настройках VBAделают изменения индексации с 1. Например, необходимо хранить 1000 имен, тогда объявите массив как:

Dim fio(1001) as String или изменить описание Dim fio(1 to 1000) as String

Множество значений массива можно «зашить» внутрь программного кода при помощи переменной Variantи инструкцииArray. Такие инструкции могут быть использованы,

Например, в некий массив ms() требуется поместить заранее известные значения, прописанные в программном коде. Подпрограмма может выглядеть так:

Submassiv_array() ‘Объявление подпрограммы

DimI%,Razm%,ms()asInteger,MmasVariant‘Объявление переменных и массивов

Mm=Array(2, 4, 6, 8, 14, 16, 24, -60) ‘Присвоение области значений переменной

Razm=InputBox(“Введите размерность”,,7) ‘Диалог о размерности

Redimms(Razm+1) ‘Переобъявление размерности массива

ForI=1toRazm‘ Цикл для присвоения

ms(i)=Mm(i) ‘значений элементам массива из области переменнойMm

Next I ‘

End sub

Макросы занятие 11. Работа с файлами.

Файлы

Операции с файлами производятся с помощью инструкции Open. Синтаксис данной инструкции включает множество настроек. Напоминаем, что в квадратных скобках содержатся необязательные команды.

Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength],

Где pathname – полное имя файла, например “P:\1kurs\m72\dann.txt”,

Mode – для чего открывается файл (Input-считывание из файла, Output-запись в файл, Append-добавление в файл)

As #1 – под каким номером будет использован файл. Одновременно может быть открыто 255 файлов.

Например подпрограмма записывающая произвольное количество случайных чисел в текстовый файл по указанному Вами пути, например «P:\1kurs\m72\dann.txt»:

Public Sub file_write()

DimN%

N=InputBox(“Сколько значений поместить в файл?”,,90)

Open “P:\1kurs\m72\dann.txt” For Output As #1

For I=1 to N

Print #1, Int(RND*100)

Next I

Close #1

End Sub

Аналогично можно считывать значения из файла. Предположим, заранее неизвестно число значений в файле. Используем метод NOTEOF(), что означает «не конец файла».

Public Sub file_read()

Open “P:\1kurs\m72\dann.txt” For Input As #1

I=1

While NOT EOF()

Input #1, Cells(I,1)

I=I+1

Wend

Close #1

EndSub

Данная программа будет брать значения из файла по указанному пути и помещать в ячейки таблицы активного листа в первую колонку.