This code works fine for me with a label:

VB Code:
  1. Private Declare Function GetTickCount Lib "kernel32" () As Long
  2.  
  3. Public Sub TypeWriter(txtt As Label, time As Single, text As String)
  4. '^^^ for time you put the amount of seconds you want it to wait
  5. Dim progress As Integer
  6. Dim lastc As Long
  7.  
  8. progress = 1
  9. lastc = GetTickCount
  10. time = time * 1000
  11.  
  12. Do While progress <> (Len(text) + 1)
  13. If GetTickCount - lastc > time Then
  14. txtt.Caption = txtt.Caption + Mid(text, progress, 1)
  15. txtt.Refresh
  16. progress = progress + 1
  17. lastc = GetTickCount
  18. End If
  19. DoEvents
  20. Loop
  21.  
  22. End Sub
  23.  
  24. Private Sub Form_Load()
  25. Me.Show
  26. TypeWriter Label1, 0.5, "Welcome"
  27. End Sub