Hôm rổi mình sưu tầm được cách tạo 1 macro trên word để tráo đề trắc nghiệm, mình đã biên tập lại và post lên cho các thầy cô cùng tham khảo nhé.. Bước 1: Trên thanh công cụ vào Tools\Ma
Trang 1Chào các thầy cô dạo này không vào diễn đàn được, có thể là do máy tính bị nhiễm vr rồi khi lên máy nhà trường lại vào được Hôm rổi mình sưu tầm được cách tạo 1 macro trên word để tráo đề trắc nghiệm, mình đã biên tập lại
và post lên cho các thầy cô cùng tham khảo nhé
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
(hình 1)
Đặ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:
(hình 2)
Ta nháy chuột chọn nút Create để xuất hiện khung soạn thảo macro
Trang 2(hình 3)
Tại khung soạn thảo ta soạn đoạn mã 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:=" "
Trang 3Selection.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 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 tạo ra bảng để soạn, ta làm mờ đường viền của bảng, vì chương trình dựa vào bảng để trộn đề
Sưu tầm