9 Июнь 2008

Вопрос 3 Написать макрос, формирующий таблицу Пифагора в Excel для чисел от 1 до 10.

sub pifagor()
dim i,j as integer
for i=1 to 10
for j=1 to 10
workscheets(’
Лист1′) cells(i,j)
value=i*j
next
exit
end sub

9. Объекты Range. Свойства и методы.

написано в рубрике: Информационные технологии (Т) — Метки: , , — Михаил @ 21:27

Этот объект используется для задания получателя любого действия. Диапазон может пред­ставлять одну ячейку, целую строку или колонку рабочего листа, произвольный двух- и трехмерный блок ячеек рабочей книги. В то время, как рабочая книга может иметь несколько диапазонов одновременно, не существует коллекции Ranges, осуществляющей доступ ко всем этим объектам.

Объект Range можно получить из свойства Range объектов Application, Worksheet или Range. Но работа с этим свойством в указанных объектах отлича­ется друг от друга. Свойство Application.Range ссылается на текущий актив­ный рабочий лист. Таким образом, после выполнения фрагмента

Dim RangeI As Range

Set Rangel=Application.Range(”A2″)

диапазон Range 1 будет ссылаться на ячейку А2 в том рабочем листе, который оказался активным во время работы программы. Как противоположность этому, свойство Worksheet. Range будет ссылаться на конкретный рабочий лист. Сле­дующий фрагмент установит ссылку Range2 на ячейку В2 в рабочем листе SalesData, независимо от того, какой рабочий лист активен в данный момент:

Dim Range2 As Range-

Set Range2=Worksheets(”SalesData”).Range(”A2″)

Свойство Range.Range отличается тем, что оно возвращает позицию относи­тельно первого диапазона. Рассмотрим следующий фрагмент:

Dim Range3 As Range, Range4. As Range

Set Range3=Worksheets(”SalesData”).Range(”B2″)

Set Range4=Range3.Range(”C4″‘)

В результате его выполнения Range4 будет ссылаться вовсе не на ячейку С4, а на D5. Это произошло потому, что данный диапазон устанавливается относитель­но диапазона Range3, который уже ссылается на В2, поэтому и результат смеща­ется соответствующим образом — в данном случае на одну колонку вправо и на одну строку вниз.

8. Диаграммы в Excel.

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

Листы диаграмм и внедренные диаграммы

Рабочая книга Excel имеет два способа отображения диаграмм. Первый метод отображает каждую диаграмму на отдельном рабочем листе, называемом листом диаграммы (chart sheet). Лист диаграммы содержит только одну диаграмму и не содержит колонок и -бтрок данных. Второй метод отображает диаграмму вне­дренной на стандартном рабочем листе. В обоих случаях вид диаграмм остается одинаковым — отличается только способ их отображения.

Листы диаграмм представляются коллекцией Charts,’ которая содержит объ­ект Chart для каждого листа диаграммы заданной рабочей книги (объекта Work­book) или активной рабочей книги (объект Application). Таким образом, сле­дующий фрагмент выведет на печать все листы диаграмм рабочей книги

Sales.xls:

WorkbooksCSales.xls”).Charts.Printout

Добавить новый лист диаграммы в коллекцию можно следующим методом:

Charts.Add

Как и в других коллекциях, каждому листу диаграммы в коллекции Charts можно присвоить имя, чтобы потом по нему обращаться к этому объекту:

Dim ch As Excel,Chart Set ch=Charts.Add Ch.Name=”Sales”

Объект Chart

Каждая диаграмма в рабочей книге, будь она внедренной или расположенной на собственном листе, представлена объектом chart. Данные, которые отобража­ет диаграмма, устанавливаются в методе SetSourceData объекта Chart. Его син­таксис:

MyChart.SetSourceData(Source, PlotBy) Аргумент Source является ссылкой на объект Range, в котором находятся данные для отображения в диаграмме. Этот аргумент является обязательным. Необязательный аргумент PlotBy определяет, будут ли данные организованы в серии по строкам (xlRows, по умолчанию) или по столбцам (xlColumns). Данные, выводящиеся на диаграммы, обычно организованы в прямоугольную таблицу, в которой левая колонка и верхняя строка содержат метки, идентифицирующие данные. Метод содержит и другие аргументы, но они не являются общими. Еще одной важной составляющей создания диаграммы является задание типа диаграммы. Он устанавливается в свойстве ChartType объекта Chart, его возможными значениями являются константы xlChartType. В приложении Excel

имеется 14 основных типов диаграмм, таких как гистограммы, линейные гра­фики и т.п. каждый их этих типов имеет несколько подтипов. Например, кон­станта xlColumnCkastered задает обычную гистограмму, a xlColumnStacked гистограмму с накоплением и т.п. Вместо перечисления здесь всех констант ти­пов диаграмм, я предлагаю для этого воспользоваться окном Object Explorer.

Перед тем как вдаваться в детали, рассмотрим несколько примеров. Следую­щий фрагмент программы создает новый лист диаграммы, создает трехмерную гистограмму, используя данные, а затем активирует этот лист.

Dim c As Excel.Chart Set с = Charts.Add c.ChartType = xl3DColumnClustered

с.SetSourceData Source:=Worksheets(”Лист1″).Range(”B2:F6″) c.Activate

Метод ChartWizard

Метод ChartWizard используется для изменения внешнего вида диаграммы. Это гораздо легче, чем последовательное изменение отдельных свойств диаграм­мы (хотя и такой метод также используется). Его синтаксис:

ChartToModifу.ChartWizard (Source, Gallery, Format, _ PlotBy, CategoryLabels, SeriesLabels, _ HasLegend, Title, ValueTitle, ExtraTitle)

Управление внешним видом диаграммы

Объект Chart имеет сложную структуру. Он имеет множество свойств и мето­дов, которые управляют различными аспектами внешнего вида диаграммы. Он также содержит несколько под объектов, представляющих компоненты диаграм­мы, такие как оси. Таким образом, некоторые манипуляции с диаграммой тре­буют установки соответствующих свойств одного или нескольких подобъектов. Объект Legend представляет легенду диаграммы. Свойства этого объекта управляют общим внешним видом легенды, например, шрифтом и рамкой. Каж­дый отдельный элемент легенды представлен объектом LegendEntry в коллек­ции LegendEntries. Отображение легенды управляется свойством HasLegend объекта Chart, которое может быть установлено в значения True или False.

Каждая ось в диаграмме представлена объектом Axis в коллекции Axes. Внешний вид отдельных осей управляется установкой свойств соответствующего объекта Axis. Количество осей (если они вообще существуют) находится в свой­стве HasAxis объекта Chart.

Объект ChartGroup представляет одну или более серий данных, которые вы­водятся на диаграмму и используют одинаковый формат. Каждая серия данных в объекте ChartGroup представлена объектом Series в коллекции SeriesCol-lection. В большинстве диаграмм один объект ChartGroup содержит лишь одну серию данных.

Объект ChartTitle представляет заголовок диаграммы. Свойства этого объек­та задают текст и его внешний вид.

На двумерных диаграммах объект chart Area представляет область, содержа­
щую оси, наименования осей, наименование диаграммы и легенду. На трехмер­
ной диаграмме он представляет область, включающую заголовок и легенду.
Свойства этого объекта определяют размер и шаблон заполнения фона этой об­
ласти диаграммы. :

Объект PlotArea представляет область самой диаграммы — там, где отобра­жаются данные. Как на двумерной, так и на трехмерной диаграмме область диа­граммы содержит маркеры данных, линии сетки, метки данных и соединительные линии. На трехмерных графиках эта область также содержит стены, основание и оси.

Объекты Floor и Walls представляют основание и стены на трехмерной диа­грамме. Свойства этих объектов управляют цветом и другими аспектами внеш­него вида оснований и стен трехмерной диаграммы.

7. Манипуляции с рабочими листами

Большинство манипуляций заключаются либо в помещении че­го-либо в ячейки рабочего листа, либо в чтении чего-либо из них. Свойство Value объекта Range используется как для чтения, так и для помещения данных в ячейки. Например, оператор

SomeRange.Value=data

помещает данные data в заданный диапазон. Если переменная SomeRange ссылается на более чем одну ячейку, данные помещаются во все ячейки диапа­зона. Существующие в ячейках данные замещаются без предупреждения. Дан­ные могут быть числовыми, текстовыми, формулой или одной из встроенных функций Excel. Приведем несколько примеров:

Range (”Al”) .Value=123.4 . 56 . Range(”A2″).Value=”Sales Data” Range(”A3″).Value=”=Al/2″ Range(”Bll”).Value=”=sum(Bl:B10)”

Свойство Value также используется для получения значения из ячейки. Если заданный диапазон ссылается на одну ячейку, то свойство Value вернет её дан­ные — число, текст или пустые данные. Если диапазон ссылается более чем на одну ячейку, свойство Value вернет массив, состоящий из данных всех ячеек. Это условие можно проверить, используя функцию isArray, например:

Dim x

X=Range(”SalesTotal“).Value If IsArray(x) Then

‘программа обработки массива Else

‘программа обработки одного значения End If

Возвращаемый массив является двумерным, с типом Variant. Для определе­ния размера массива можно использовать функции Rbound и Lbound (он, естест­венно, будет иметь размеры диапазона).

Обратите внимание: хотя и может показаться, что свойство Value, возвра­щаемое пустой ячейкой, должно содержать пустую строку, на самом деле оно со­держит специальное значение Empty. Для проверки этого значения используется функция IsEmpty:

If IsEmpty(Range(”Al“).Value) Then

‘ячейка Al — пустая Else

‘ячейка Al — не пустая End If

Если из ячейки вы хотите выбрать формулу, используется свойство Formula. В то время, как свойство Value возвращает результаты формул, саму формулу возвращает свойство Formula. С ячейками, в которых нет формул, свойство For­mula работает подобно свойству Value. Рассмотрим следующий фрагмент:

Dim f, v

Range(”Al”).Value=5

Range(”A2″).Value=7

Range (”A3 “) . Value=” =A1+A2″

V=Range(”A3″).Value

F=Range(”A3″).Formula

После выполнения этого фрагмента переменная v будет содержать значение 12, а переменная f — строку “=А1+А2″.

6. Создание, сохранение и закрытие рабочих книг

Для того чтобы создать новую рабочую книгу, используется метод Add кол­
лекции Workbooks:

\Workbooks.Add(Template)

Аргумент Template задает имя файла, который будет использован в качест­ве шаблона новой рабочей книги, или одну из предопределенных констант xlWBATemplate (их можно увидеть в Object Explorer). Когда в качестве аргумента задается константа, в новой рабочей книге будет содержаться только один рабо­чий лист заданного типа. Если аргумент Template опущен, создается новая ра­бочая книга, содержащая то количество рабочих страниц, которое указано в свойстве Application.SheetslnNewWorkbook (по умолчанию — 3). Метод Add возвращает ссылку на новую рабочую книгу, которая может быть, если это не­обходимо, присвоена переменной соответствующего типа:

Dim MyWorkbook As Excel.Workbook

Set MyWorkbook=Workbooks.Add(Template)

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

Workbooks.Open(Fi1епате)

Обязательный аргумент Filename задает путь и имя открываемого файла. Метод Open имеет большое число дополнительных аргументов, которые опреде­ляют открытие только для чтения, ввод требуемого пароля (если книга защище­на) и то, добавлять ли этот файл в список последних открытых файлов (в меню File приложения Excel).

Для сохранения рабочей книги, которой уже было присвоено имя, использу­ется метод Save объекта Workbook. Этот метод не имеет аргументов. Для сохра­нения новой рабочей книги в первый раз с присвоением ей имени или для со­хранения книги под другим именем используется метод SaveAs. Его упрощен­ный синтаксис:

MyWorkbook. SaveAs (Fi 1 епате)

Аргумент Filename определяет имя файла, включая его путь. Метод SaveAs имеет также множество необязательных дополнительных аргументов, которые управляют назначением файлу пароля или формата. Эти подробности хорошо описаны в онлайновой справке.

Для сохранения копии рабочей книги под другим именем, не изменяя при этом имя текущей книги, используется метод SaveCopyAs:

^Workbook. SaveCopyAs (Fi 2 eName)

Перед тем как рабочая книга будет сохранена и ей будет присвоено имя, в свойстве Name будет содержаться имя, присвоенное по умолчанию приложением Excel (Bookl, Book2, и т.п.). После того как имя будет назначено, оно будет со­держаться в свойстве Name. Свойство Name нельзя изменить напрямую — для этого обязательно использовать метод SaveAs. Объект Workbook содержит еще два свойства, которые связаны с его именем. Как только рабочая книга была со­хранена, свойство FullName будет содержать полное имя файла (вместе с путем), а свойство Path будет содержать только путь.

Для закрытия рабочей Книги используется метод Close: MyWorkbook.С1ose{SaveChanges, FileName, RouteWorkbook)

Все три аргумента не являются обязательными. SaveChanges задает вариант действий для случая, когда рабочая книга содержит несохраненные изменения. Возможными значениями являются True (для сохранения изменений) и False (для игнорирования изменений). Если этот аргумент опущен, пользователю бу­дет предложено сохранить изменения.

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

RouteWorkbook относится только к тем рабочим книгам, которые имеют спи­сок распространения (routing slip), но еще не были распространены; устанавли­вается в значение True, если необходимо отправить рабочую книгу следующему получателю, в противном случае устанавливается в False. Если этот аргумент опущен, пользователю выводится соответствующий запрос.

Новые записи »

© Проект «Студенты-Программеры»., 2008. Все права защищены.
Перепечатка материалов только при наличии активной ссылки на источник.
Powered by WordPress