私の環境でも16行目で「配列の要素が無効です」とでました。
エラーを消すための簡単な方法は
15行目と19行目にある
repeat/loopをコメントアウトします。
うまく実行できるようにするには
8行目から20行目を消してから
; ボイスリスト
sdim voicelist,4096
comres voices
spv->"GetVoices"
if varuse(voices) {
voicemax=voices("Count")
repeat voicemax
dimtype it,vartype("variant")
comres it
voices->"Item" cnt
voicelist +=it("Id")+"\n"
loop
}
と書き換えます。
dimtypeで配列にしたものが
メソッドを呼ぶことによって
COMオブジェクト型の変数に変わって
しまっていることで起こっているようです。