Читаем Excel. Трюки и эффекты полностью

Листинг 2.25. Заполнение диапазона

Sub FillCellRect1()

Dim lngRows As Long, intCols As Integer

Dim lngRow As Long, intCol As Integer

Dim lngStep As Long, lngVal As Long

Dim alngValues() As Long

Dim rgRange As Range

' Установка начального значения и шага заполнения

lngVal = 1

lngStep = 1

' Ввод количества ячеек по горизонтали и вертикали, которое _

необходимо заполнить

lngRows = Val(InputBox(«Количество ячеек в высоту»))

intCols = Val(InputBox(«Количество ячеек в ширину»))

ReDim alngValues(1 To lngRows, 1 To intCols)

Set rgRange = ActiveCell.Range(Cells(1, 1), _

Cells(lngRows, intCols))

' Заполнение массива alngValues значениями

For lngRow = 1 To lngRows

For intCol = 1 To intCols

alngValues(lngRow, intCol) = lngVal

lngVal = lngVal + lngStep

Next intCol

Next lngRow

' Перенос значений из массива в таблицу

rgRange.Value = alngValues

End Sub

Порядок заполнения диапазона такой же, как и в предыдущем примере, – после запуска макроса нужно последовательно указать количество ячеек в высоту и ширину. Результатом работы макроса будет заполненный диапазон (начиная с активной ячейки). Так же, как и в предыдущем примере, для изменения параметров заполнения диапазона (начальное число последовательности, шаг и др.) можно внести соответствующие изменения в код макроса.

Более высокая скорость работы данного алгоритма достигается благодаря тому, что сначала формируется двухмерный массив со значениями. Этот массив целиком передается объекту Range. Тем самым мы избегаем множества обращений к таблице, заменяя их одним, но эффективным.

<p>Гиперссылки – в виде обычного текста</p>

В Microsoft Excel, начиная с версии 2000, осуществляется автоматическая замена текста гиперссылками, если он содержит следующие наборы символов:

• http://;

• www.;

• ftp://;

• mailto:;

• file://;

• news:;

• mail@pochta.

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

<p>Помещение в ячейку электронных часов</p>

В любую ячейку рабочего листа при необходимости можно поместить электронные часы. В листинге 2.26 приведен код макроса, который позволяет решить эту задачу.

Листинг 2.26. Размещение в ячейке электронных часов

Sub UpdateTime()

Dim varNextCall As Variant

' Записываем в ячейку текущее время

Cells(1, 1).Value = Now

' Записываем в varNextCall время, когда вызвать этот макрос _

в следующий раз (через 1 секунду)

varNextCall = TimeSerial(Hour(Now), Minute(Now), Second(Now)

+ 1)

' Уведомляем Excel в необходимости вызова макроса

Application.OnTime varNextCall, «UpdateTime»

End Sub

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

<p>«Будильник»</p>

Помимо электронных часов, можно настроить «будильник». Смысл данного трюка заключается в том, что в определенное время на экране отобразится окно с указанным ранее информационным сообщением (а при наличии колонок и иных сопутствующих устройств – вместе со звуковым сигналом). В листинге 2.27 приведен код макроса, который позволяет решить эту задачу.

Листинг 2.27. «Будильник»

Sub Clock()

' Уведомляем Excel, что процедуру Alarm нужно вызвать в 20:55

Application.OnTime TimeValue(«20:55:00»), «Alarm»

End Sub

Sub Alarm()

MsgBox «Пора ужинать!!!»

End Sub

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных