Всё прекрасно, всё работает, но...попробовал усложнить задачу: заставить выводить, по необходимости, нарастающее многоточие после текста, для чего попробовать управлять св-вом TimerInterval: в модуль формы добавил код на событие Timer:
Me!txtMess.Text = Me!txtMess.Text & "."
DoEvents
а саму процедуру изменил так:
Public Sub sss(strMess As String, lngColor As Long, lngTimeInterval As Long)
If Not isLoadedForm("ff") Then
DoCmd.OpenForm "ff"
End If
Forms("ff").TimerInterval = lngTimeInterval
With Forms("ff")!txtMess
.SelStart = Len(Nz(.Text))
If Len(.Text) = 0 Then
.SelColor = lngColor
'первое сообщение
.SelText = strMess
Else
.SelColor = lngColor
'не первое сообщение - добавить перед ним перевод строки
.SelText = vbCrLf & strMess
End If
End With
End Sub
Две тестовые вызывающие процедуры, одна запускает нарастающее многоточие:
Public Sub www()
Call sss("Ищем", 0, 500)
End Sub
текст выводится чёрным цветом, строка из точек формируется...
Другая процедура останавливает появление точек и выводит сообщение красным цветом:
Public Sub eee()
Call sss("Нашли!", 255, 0 )
End Sub
Тут иная ситуация: процедуру, в которой запускается таймер можно запускать только самой первой и только один раз, иначе и добавляемая ею строка, и все строки, которые уже были перед ней, окрашиваются в цвет самой первой строки...