>>897
ありがとうございます。
そちらでの結論としても
DoEventsを入れましょうということのようですが、
>ユーザがアプリケーションを操作できず
というのは無理そうですね。。。

と、ここまで書いていてちょっと思いついて試してみたら次のコードで
うまく動作しました。
しかし端末スペックなど環境に依存するかもしれず心配ですが、
どうでしょうね。手がなければこれで進めようとも思いますが。(心配だ)

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
        Me.MousePointer = vbHourglass 'ここを一ステップ前に
        MsgBox "foo"
        Sleep 3 * 1000
        Me.MousePointer = vbNormal
End Sub