Листинг 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!