Решил проблему, если кому то понадобится, то создайте BAS модуль с текстом
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Boolean
'<doc Находит окно в Windows по заголовку и перемещает его наверх
'<par as String Загогловок окна>
'<type Boolean> >
function SetWindowOnTop(Caption)
Dim hW As Long
Dim hB As Boolean
hW = 0
hB = False
hW = FindWindow(vbNullString, Caption)
if hW <> 0 then hB = SetWindowPos(hW, -1, 0, 0, 0, 0, 3)
SetWindowOnTop = hB
end function
Добавьте этот BAS модуль в шаблон отчетов. В пользовательской форме отчета в процедуре UserForm_Initialize() вызовите функцию SetWindowOnTop, которая через api найдет форму по заголовку окна и сменит позицию на top
Private Sub UserForm_Initialize()
SetWindowOnTop (PeriodForm.Caption)
End Sub
в моем примере имя пользовательской формы PeriodForm