Dim WaitTime As Single
Dim FirstTime As Single
Dim NowTime As Single
WaitTime = 30
FirstTime = Timer()
Do
NowTime = Timer()
DoEvents
Loop While (NowTime - FirstTime < WaitTime)

ループ中に日付がかわっちゃうと無限ループしちゃうので何とかしてください。