Загрузка заставки точек на Workbook_Open - PullRequest
0 голосов
/ 24 июня 2019

У меня есть код для имитации "пузырей" при загрузке книги. Я пытался заставить их появиться на Workbook_open, но что-то не так, и мой код не работает правильно. Точки не работают. Я думаю, что проблема в текущем коде с Application.OnTime Now + TimeValue("00:00:01")

Используемый код: Анимированные точки Excel в форме при загрузке

Если я запускаю UserForm отдельно только командой .Show, все работает.

Вот мой код для пользовательской формы:

Private Sub UserForm_Initialize()

    Dim AppXCenter, AppYCenter As Long
    Dim bytOpacity As Byte
    bytOpacity = 192 ' variable keeping opacity setting
    hWnd = FindWindow("ThunderDFrame", Me.Caption)
    Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, GetWindowLong(Me.hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
    Call SetLayeredWindowAttributes(Me.hWnd, 0, bytOpacity, LWA_ALPHA)


    AppXCenter = Application.Left + (Application.Width / 2)
    AppYCenter = Application.Top + (Application.Height / 2)
    With Me
    .StartUpPosition = 0
    .Top = AppYCenter - (Me.Height / 2)
    .Left = AppXCenter - (Me.Width / 2)
    End With

HideTitleBar.HideTitleBar Me

    Application.OnTime Now + TimeValue("00:00:01"), "loadingdots"

End Sub

Loadingdots:

Public Sub loadingdots()

If IsLoaded("Loading") = True Then
    If Len(Loading.Label2.Caption) = 10 Then
        Loading.Label2.Caption = "."
    Else
        Loading.Label2.Caption = Loading.Label2.Caption & "."
    End If
    Application.OnTime Now + TimeValue("00:00:01"), "loadingdots"
End If

End Sub

Проверить, загружен ли:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...