Quote:
Được gửi bởi thanhhaf ai biết cách trộn đề thi trong phần mềm microsoft word xin chỉ giúp
Thank nhiều
|
rước tiên ta phải cài đặt macro ở trong word
I. Cài đặt Macro.
Bước 1: Trên thanh công cụ vào Tools\Macro\Record new macro để xuất hiện hộp thoại record macro
Đặt tên macro rồi nháy OK.
Bước 2: Trên thanh công cụ Tools\Macro\StopRecording
Bước 3: Nháy chọn Tools\Macro\macros để mở hộp thoại:Macros
Ta nháy chuột chọn nút Create để xuất hiện khung soạn thảo macro.Tại khung soạn thảo ta soạn đoạn ngựa sau vào thân chương trình macro.
Code:
"n = Selection.Tables(1).Rows.Count
For i = n To 1 Step -1
a = Int(ActiveDocument.Tables(1).Rows.Count * Rnd + 1)
Selection.Tables(1).Rows(a).Select
Selection.Cut
Selection.EndKey Unit:=wdStory
Selection.Paste
Next i
For i = 1 To n
Selection.Tables(1).Rows(i).Select
Selection.HomeKey Unit:=wdLine
Selection.Find.ClearFormatting
With Selection.Find
.Text = ":"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
a = Selection.Characters.Count
Selection.HomeKey Unit:=wdLine
Selection.MoveRight Unit:=wdCharacter, Count:=4
If a = 6 Then
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
Else
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
End If
Selection.HomeKey Unit:=wdLine
Selection.MoveRight Unit:=wdCharacter, Count:=3
Selection.TypeText Text:=" "
Selection.TypeText Text:=i
Next i
For i = 1 To n
Selection.Tables(1).Rows(i).Select
a = Selection.Paragraphs.Count
m = a - 1 - Int((Rnd * 3) + 1)
Selection.Paragraphs(m).Range.Cut
Selection.Tables(1).Rows(i).Select
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.Paste
For j = 2 To 5
Selection.Tables(1).Rows(i).Select
b = Selection.Paragraphs.Count
y = b - j
Selection.Paragraphs(y).Range.Select
Selection.HomeKey Unit:=wdLine
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
Select Case j
Case 2
z = "D"
Case 3
z = "C"
Case 4
z = "B"
Case 5
z = "A"
End Select
Selection.TypeText Text:=z
Next j
Selection.Tables(1).Rows(i).Select
Selection.EndKey Unit:=wdLine
Selection.TypeBackspace
Next i"
II. Soạn đề.
Trên word làm ra (tạo) 1 bảng gồm 1 cột, n hàng. soạn đề trắc nghiệm trên word sao cho mỗi câu nằm trong 1 ô. Và đánh dấu * vào cuối phương án đúng, mỗi phương án nằm trên 1 dòng.
Ví dụ:
Câu 1. Trong ngôn ngữ lập trình Pascal, cách khai báo xâu ký tự nào sau đây là đúng?
A. Var S: File of String;
B. Var S: array[1..256] of char;
C. Var S: File of Char;
D. Var S: String;*
Câu 2. Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng?
A. Type mang1c = array[1..100] of char;*
B. Type mang1c = array(1..100) of char;
C. Type mang = array[1 - 100] of char;
D. Type 1chieu = array[1..100] of char;
III. Trộn đề.
Nháy chọn Tools\macro\Macros để hiện hộp thoại như hình 3. Nháy chuột chọn nút RUN.
* Một số lưu ý.
- Chương trình chỉ trộn được vị trí các câu và vị trí các phương án đúng. Sau khi trộn xong đề thì bỏ dấu * ở các phương án đúng.
- Khi chạy Macro, macro sẽ thay đổi nội dung đề gốc do vậy cần lưu lại 1 đề gốc.
- Ở bước soạn đề sau khi làm ra (tạo) ra bảng để soạn, ta làm mờ đường viền của bảng, vì chương trình phụ thuộc vào bảng để trộn đề.
Bổ sung một đoạn ngựa Macro (VBA) trong Word, khi soạn đề các bạn bất nên phải làm ra (tạo) 1 bảng gồm 1 cột, n hàng. Cứ soạn bình thường bất có bảng trong Word. Sau khi soạn xong bạn chạy đoạn ngựa Macro dưới đây thì tất cả đề thi sẽ được chèn vào trong bảng.
Lưu ý: Trong đề thi bạn bất được sử dụng phím Tab.
"Sub Chen_De_Vao_Bang()
Dim tailieu As Document
Dim dong As Range
Dim demdong As Long
Dim demtruong As Long
Set tailieu = ActiveDocument
Set dong = tailieu.Range
demdong = 1
demtruong = 1
With dong
.ConvertToTable Separator:=wdSeparateByTabs, NumColumns:=demtruong, NumRows:=demdong
With .Tables(1)
.Columns(1).Width = InchesToPoints(7.36)
End With
End With
With ActiveDocument.PageSetup
.LeftMargin = InchesToPoints(0.49)
.RightMargin = InchesToPoints(0.49)
End With
End Sub "
Cách sử dụng:
Trong file đề thi nhấn phím: Alt+F11; nếu chưa có cửa sổ soạn thảo VBA thì nhấn F7.
Dán đoạn ngựa trên ( Từ đoạn Sub Chen_De_Vao_Bang() đến đoạn End Sub) vào khung soạn thảo.
Nhấn phím F5 là chạy ngựa VBA (macro) thực hiện.
Bàn thêm: tui viết phần mềm trắc nghiệm thì bất thực hiện soạn đề trong bảng như các phần mềm Test Pro…gây khó khăn cho người soạn đề.
Việc làm mờ đường viền của bảng có thể thực hiện thủ công hay tự động bằng cách thêm ngựa VBA vào đoạn ngựa trên