Листинг 5.5. Вывод бегущей строки в строку состояния



Function StatusString(ByVal LeftSpace As Integer, _

ByVal Message As String) As String

StatusString = Space(LeftSpace) & Message

End Function

Sub RunMessage()

Dim n As Integer

For n = 20 To 0 Step -1

Application.StatusBar = StatusString(n, "Hello!")

Application.Wait Now() + TimeValue("00:00:01")

DoEvents

Next

Application.StatusBar = False

End Sub

Отключение генерации событий

Свойство Enab l eEvents объекта Application позволяет отключать генерацию событий. Например, следующие три инструкции обеспечивают сохранение рабочей книги без отображения предупреждающего сообщения.

Application.EnableEvents = False

ActiveWorkbook.Save

Application.EnableEvents = True

Установка типа курсора

Свойство cursor объекта Application устанавливает тип курсора в приложении. Допустимые значения:

r xlDefau l t — курсор, используемый по умолчанию;

r x lW ait — песочные часы;

r xlNorthwestArrow — стрелка в северо-западном направлении;

r x lI Beam — вертикальная полоска.

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

Листинг 5.6. Видоизменение типа курсора для уведомления о проводимых вычислениях

Sub DemoCursor()

Dim s As Double

Dim i As Long

Application.Cursor = xlWait

s = 0

For i = 1 To 1000000

s = s + 1 / I ^ 2

Next

Application.Cursor = xlDefault

MsgBox s

End Sub

Видоизменять курсор можно не только при вычислениях, но и при любых других действиях, например, при выборе ячейки. В следующем коде из модуля рабочего листа при выборе ячейки А1 курсор превращается в указатель, направленный на северо-запад, а при выборе любой другой — он принимает тот вид, который используется в приложении по умолчанию (листинг 5.7).

Листинг 5.7. Видоизменение типа курсора при выборе специфицированной ячейки. Модуль рабочей книги

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$A$1" Then

Application.Cursor = xlNorthwestArrow

Else

Application.Cursor = xlDefault

End If

End Sub

Семейство встроенных диалоговых окон

Свойство Dialogs возвращает семейство Dialogs всех встроенных диалоговых окон. Параметр этого семейства идентифицирует окно. Метод Show отображает его на экране, а параметры этого метода задают параметры, специфицируемые в отображаемом окне. Метод Show возвращает значение True, если задача, поставленная в отображаемом окне, была выполнена успешно. Например, следующий код отображает окно Открытие документа для открытия книги C:\Test.xls (листинг 5.8).

Листинг 5.8. Открытие специфицированного документа с помощью окна Открытие документа

Sub DemoDialogs()

Dim idx As Long

idx = Application.Dialogs(xlDialogOpen).Show("c:\test.xls")

If idx Then

MsgBox "Файл открыт"

Else

MsgBox "Файл не открыт"

End If

End Sub

Объект FileDialog

Объект FileDialog, возвращаемый свойством FileDialog объекта Application, предоставляет в распоряжение разработчика диалоговые окна Открыть и Сохранить как . Свойство FileDialog имеет один параметр DiaiogType, задающий и тип окна. У этого параметра имеются четыре допустимых значения:

r msoFiieDialogFiiePicker — предоставляет возможность пользователю выбрать файл;

r msoFileDialogFolderPicker — обеспечивает выбор папки;

r msoFiieDiaiogOpen — позволяет открыть выбранный файл. Открытие файла производится методом Execute;

r msoFileDiaiogSaveAs — разрешает пользователю сохранить файл. Сохранение файла производится методом Execute.

Для отображения окна, симулируемого объектом FileDialog, необходимо воспользоваться методом Show. Этот метод возвращает значение 0, если нажата кнопка Отмена , и значение -1, если нажата другая функциональная кнопка. Для окон Открыть и Сохранить как после применения метода S how надо воспользоваться методом Execute для реализации выбранной команды.

В коде листинга 5.9 демонстрируется техника сохранения и загрузки файлов при помощи окон Открыть и Сохранить как , а именно в процедуре LoadFiles 1 — окна типа msoFileDialogFilePicker, в процедуре LoadFiles 2 — окна типа msoFileDialogOpen, а в процедуре LoadFiles 1 — окна типа msoFileDialogSaveAs.

Листинг 5.9. Открытие и сохранение документов с помощью окон Открыть и Сохранить как

Sub LoadFiles1()

Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Dim itm As Variant

With fd

If .Show = -1 Then

For Each itm In .Selectedltems

Workbooks.Add itm

Next

End If

End With

Set fd = Nothing End Sub

Sub LoadFile2()

Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogOpen)

If fd.Show = -1 Then

fd.Execute

Else

MsgBox "Выбрали отмену"

End If

Set fd = Nothing

End Sub

Sub SaveFile3()

Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogSaveAs)

If fd.Show = -1 Then

fd.Execute

Else

MsgBox "Выбрали отмену"

End If

Set fd = Nothing

End Sub


Дата добавления: 2019-02-12; просмотров: 146; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!