您可以使用 `SpVoice` 对象的 `EndStream` 事件来判断语音是否已经播放完毕。以下是一个示例代码:
```vb
Private WithEvents spVoice As SpVoice
Private Sub Command1_Click()
Set spVoice = New SpVoice
spVoice.Speak "Hello, World!", SVSFDefault
End Sub
Private Sub spVoice_EndStream(ByVal StreamNumber As Long, ByVal StreamPosition As Variant)
MsgBox "语音播放完毕!"
End Sub
```
在上面的代码中,我们创建了一个 `SpVoice` 对象,并在按钮点击事件中调用 `Speak` 方法来播放一段文字。同时,我们还声明了一个 `spVoice_EndStream` 事件处理程序,在语音播放完毕时会触发该事件,弹出一个消息框提示用户。
请注意,为了能够接收到 `EndStream` 事件,我们需要将 `SpVoice` 对象声明为带有 `WithEvents` 关键字的变量。