Lavan

New Member

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

 

Các chủ đề có liên quan khác

Top