私は教師であり、Microsoft Word を使用して学生向けに多肢選択式のテストを数多く作成しています。問題を自動的にシャッフルして、テストの周りに問題をコピー アンド ペーストすることなく、複数のバージョンのテストを使用できるようにする方法はありますか? オンラインで見ると、Steve Yandl が投稿した 1 つの解決策が見つかりました。この解決策では、各質問を表の個別の行に配置した後にマクロを使用していました。彼のマクロを機能させようとしていますが、エラーがあります。私はコーディングについて何も知らないので、行き詰まっています。彼のコードは次のとおりです。
Sub ShuffleQuestions()
Dim Tmax As Integer
Dim strCell As String
Dim strQ As Variant
Dim strText As String
Dim I As Integer
Dim Z As Integer
Dim intQsLeft As Integer
Dim rndQ As Integer
Dim Q As Integer
Dim vArray As Variant
Dim strNew As String
Set objDict = CreateObject("Scripting.Dictionary")
Tmax = ThisDocument.Tables(1).Rows.Count
For I = 1 To Tmax
strCell = ThisDocument.Tables(1).Cell(I, 1).Range.Text
strQ = Left(strCell, Len(strCell) - 1)
objDict.Add strQ, strQ
Next I
ReDim arrQs(I - 1)
intQsLeft = I - 2
Z = 0
Do While intQsLeft = 0
Randomize
rndQ = Int((intQsLeft + 1) * Rnd)
intQsLeft = intQsLeft - 1
vArray = objDict.Items
strText = vArray(rndQ)
arrQs(Z) = strText
Z = Z + 1
objDict.Remove strText
Loop
For Q = 1 To Tmax
strNew = arrQs(Q - 1)
strNew = Left(strNew, Len(strNew) - 1)
ThisDocument.Tables(1).Cell(Q, 1).Range.Text = strNew
Next Q
End Sub
「実行時エラー 5941 要求されたコレクションのメンバーが存在しません」というエラー メッセージが表示されます。[デバッグ] ボタンを選択すると、マクロ内の「Tmax = ThisDocument.Tables(1 ).Rows.Count"
最終的には質問を並べ替えたいだけですが、質問ごとに複数選択オプションを並べ替える方法もあればうれしいです.