Учебников в интернете много. Однако ничего подходящего не нашел. Есть ли способ сделать анимированные точки при загрузке?
Идея состоит в том, чтобы сделать цикл анимированных точек .....
на пользовательской форме, чтобы они появлялись одна за другой, а затем начинались заново после некоторого количества точек.
Итак, я ввожу точку в Label1 и перемещаю ее влево после определенных временных критериев?
Мой текущий код для UserForm:
Private Sub UserForm_Initialize()
HideTitleBar.HideTitleBar Me
Call loadingdots
End Sub
Код для Private Sub Workbook_Open()
:
Loading.Show (vbModeless)
Dim RngCom As Range
Dim RngTurb As Range
Dim RngGen As Range
Application.Wait (Now + TimeValue("00:00:06"))
ThisWorkbook.Worksheets("MAIN").ScrollArea = "$A$1:$BL$45"
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
etc...
Unload Loading
'Application.ScreenUpdating = True
End Sub
Чтобы добавить к тому, что сказал Харун, вы также можете использовать свойство шрифта для увеличения/уменьшения размера точки (размера шрифта), чтобы имитировать «анимацию».
Не могли бы вы добавить пример? Я не могу заставить его работать, см. мой отредактированный вопрос.
Самым элегантным решением, вероятно, будет Метод OnTime.
Поместите этикетку внутри вашего UF и удалите подпись. Далее в обычном модуле (то есть не в модуле UF) поместите эту подпрограмму:
'this function ensures the self-activating sub will stop if the UF has been closed
Public Function IsLoaded(form As String) As Boolean
Dim frm As Object
For Each frm In VBA.UserForms
If frm.Name = form Then
IsLoaded = True
Exit Function
End If
Next frm
IsLoaded = False
End Function
Public Sub loadingdots()
If IsLoaded("UserForm1") = True Then
If Len(UserForm1.Label1.Caption = 4) Then
UserForm1.Label1.Caption = "."
Else
UserForm1.Label1.Caption = UserForm1.Label1.Caption & "."
End If
Application.OnTime Now + TimeValue("00:00:01"), "loadingdots"
End If
End Sub
Затем вызовите самоактивирующуюся подпрограмму, когда UF инициализируется.
Private Sub UserForm_Initialize()
Call loadingdots
End Sub
Не забудьте поменять ссылки на УФ на правильное название.
Это работает в других пользовательских формах, я проверил это. Однако есть проблема с пользовательской формой заставки. По какой-то причине анимации нет, и я вижу только первую точку, и она не продвигается вперед. В чем может быть проблема?
Я не знаю, как выглядит этот UF и какой код внутри него. Я знаю, что RefEdits может сильно испортить.
Вы должны взять на себя управление меткой и ввести точку в качестве текста на этикетке. Затем используйте
label1.left
(левое, правое, верхнее свойство), чтобы переместить их. Вы должны использовать процедуры управления таймером для их автоматического перемещения через определенное время, например 100 миллисекунд, 200 миллисекунд или 500 миллисекунд.