Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_1_ZAO_VBA.doc
Скачиваний:
11
Добавлен:
29.02.2016
Размер:
706.56 Кб
Скачать

2.2. Рассмотренную задачу решим, используя ввод/вывод с листа/на лист Ехсеl

Следующие средства VBA используются для ссылок на ячейки рабочих листов Excel:

 Свойство Cells позволяет выбрать одну или все ячейки рабочего листа.

 Свойство Range возвращает одну ячейку, прямоугольную область или группу несмежных ячеек.

 Свойство ActiveCell возвращает активную ячейку активного окна.

 Свойство Selection возвращает выделенный объект активного окна.

 Свойство Columns и Rows возвращают столбец или строку рабочего листа или диапазона ячеек.

Некоторым неудобством использования cвойства Range является то, что оно требует указания имени ячейки, на которую требуется сослаться. То есть в случае, когда имя точно не известно и требуется использование переменной вместо имени ячейки этот метод не очень подходит. В этом случае предпочтительнее свойство Cells. Существует две особенности использования этого свойства.

 Во-первых, вместо символа для указания строки или столбца может использоваться число или численное выражение, а, следовательно, и переменная.

 Во-вторых, в списке параметров этого свойства на первом месте стоит строка, а на второй столбец.

В соответствии с этим ссылка, например, на ячейку В7 будет выглядеть, как Cells(7,2), хотя доступна и ссылка вида Cells(7,"B").

Программирование с использованием объектов excel.

Разрабатывать приложения в редакторе VBAможно и с использованием объектов приложенийOffice(объектовEXCEL,WORDи др.)

Рассмотрим разработку приложения примера 2с использованием объектовEXCEL. Будем использовать объекты:

  • WORKSHEETS() –для обозначения листаEXCEL

  • RANGE(), илиCtlls()– для обозначения диапазона ячеек или одной ячейки

  • свойство .Valueдля обращения к значению ячейки.

Т.е., если мы хотим записать в ячейку значение Fпрограммным способом, нужно написать в программе так:

Worksheets().Range().Value = F, где в скобках указать имя или номер листаEXCELи адрес ячейки, или Worksheets().Cells().Value = F. Например, чтобы:

Выполнить

Выражения в процедуре

Присвоить ячейке С1

На листе “лист1” значение переменной F

Worksheets(“лист1”).Range(“C1”).Value = F

или

Worksheets(“лист1”).Cells(1,3).Value =F

Присвоить переменной Xзначение, содержащееся в ячейкеD2

X=WorkSheets(“лист1”).Range(“D2”).Value

или

X= WorkSheets(“лист1”).Cells(2,4).Value

Порядок выполнения работы:

1. Открыть редакторVBE

2. Выполнить команду Insert/Module

3. В окно ввода кодов вставить процедуру Insert/Procedure

Написать программный код.

PublicSubPr_1()

Dim a As Integer, b As Integer, c As Integer

‘Считывание значений

a= WorkSheets(“лист1”).Cells(2,1).Value

b= WorkSheets(“лист1”).Cells(2,1).Value

‘Формирование строки заголовков

Worksheets(“лист1”).Cells(1,1).Value =a

Worksheets(“лист1”).Cells(1,2).Value =b

‘Вычисление

c=a+b

‘Вывод вычисленного значения на лист Excel

Worksheets(“лист1”).Cells(1,3).Value =c

End Sub

Пояснения к программе:

2.3. Рассмотренную задачу решим, используя функции ввода/ вывода InputBox(), MsgBox()

Порядок выполнения работы:

  1. Вставить процедуру в имеющийся в проекте модуль.

  2. Написать программный код.

Public Sub Pr_2()

‘Объявление переменных

Dim a As Integer, b As Integer, c As Integer, Pr As Integer

'Ввод значений переменных

a = CInt(InputBox("Введите значение a "))

b = CInt(InputBox("Введите b"))

c = a + b 'Вычисление значения с

Pr = MsgBox("Значение с равно " & c, 35, "Данные введены")

Debug.Print Pr

End Sub