Si se puede, y mas facil si ya conoces el tiempo anticipado en segundos, nunca he manejado Visual Basic para aplicaciones pero en Visual Basic seria algo asi
-Agrega un control Timer y le pones de intervalo 1000 y en enabled = false
-Declaras una variable a nivel formulario tipo byte y en el load la inicializas a 20
CODE
Dim x as byte
Private Sub Form_Load()
x = 20
End Sub
-Agregas un form y le pones una etiqueta que diga espere por favor o algo asi
-Despues en el codigo del boton para generar el reporte pones que se muestre dicho form en forma modal, y se active el timer ej.
CODE
frmSplash.show vbModal
timer1.enabled=true
-Despues en el codigo del Timer quedaria mas o menos asi
CODE
Private Sub Timer1_Timer()
If x = 0 Then
Timer1.Enabled = False
Unload frmSplash
Exit Sub
End If
x = x - 1
End Sub
Espero lo puedas adaptar al vb que trae excel
Saludos