You are on page 1of 12

12/13/2009

HƯỚNG DẪN DÙNG VBA TẠO TRÒ CHƠI


TRÚC XANH TRONG POWERPOINT

- CENTEA -

CENTEA ñã có những loạt bài hướng dẫn sử dụng ứng dụng Visual Basic
Application (VBA) ñể tạo trò chơi ô chữ, tạo slide trả lời câu hỏi trắc nghiệm trong
PowerPoint. Chúng tôi xin tiếp tục gửi ñến Thầy Cô loạt bài hướng dẫn S dng VBA ñ
to trò chi Trúc Xanh ngay trên PowerPoint mà không cần phải sử dụng những
chương trình khác.

www.giaovien.net --//-- www.center4teachers.com Trang 1/12


centea.info@gmail.com
12/13/2009

Giới thiệu trò chơi Trúc xanh:


- Trò chơi Trúc xanh vốn là 1 trò chơi tìm các cặp ô hình giống nhau, nhưng nó trở
nên phổ biến kể từ khi ðài truyền hình Tp.HCM tổ chức Games Show Trúc Xanh
ñể 2 người chơi lật các ô hình, và tìm các cặp hình giống nhau. Nếu lật ñược 1 cặp
hình giống nhau, người ñó sẽ ñược tiếp tục lật 1 cặp hình khác, nếu sai, thì chuyển
quyền chơi cho người còn lại. Khi tất cả các ô hình ñược mở, sẽ có 1 hình nền có
nội dung liên quan ñến các câu cao dao, tục ngữ của Việt Nam. Người chơi dựa
vào hình nền ñó ñể ñọc câu ca dao, tục ngữ có nội dung tương ứng
Những lưu ý trước khi thiết kế:
- Quý Thầy Cô cần chuẩn bị trước các hình nền có cùng kích cỡ và lưu các hình
nền ñó trong cùng 1 thư mục chứa slide trình chiếu. ðể có thể chỉnh sửa các
ảnh có cùng kích cỡ, Quý Thầy Cô có thể sử dụng phần mềm miễn phí VSO
Image Resizer (http://www.vso-software.fr/products/image_resizer/download-
image-resizer.php). Ở ñây, CENTEA ñã tạo 8 cặp hình có cùng kích cỡ là 128 x
90px.
- Chúng ta cần phải thiết lập chế ñộ bảo vệ các Marco ở mức Low ñể chương trình
có thể chạy các ñoạn mã lệnh. Cách thiết lập như sau:
o Mở chương trình PowerPoint.
o Vào menu Tools / Macro / Security. Chọn Low. Nhấn OK
o Khởi ñộng lại chương trình PowerPoint.
- Quý Thầy Cô có thể tham khảo công dụng của từng nút lệnh trong Control Box của
VBA trong bài hướng dẫn trước
Bước 1: Mở thanh công cụ Control Box của VBA
Trong PowerPoint, Thầy Cô vào menu View >> Toolbars, nhấn chọn vào dòng
Control Toolbox. Khi ñó, hộp công cụ các nút lệnh sẽ ñược hiển thị

www.giaovien.net --//-- www.center4teachers.com Trang 2/12


centea.info@gmail.com
12/13/2009

Hình 1

Khi ñó thanh công cụ Control ToolBox sẽ hiện


ra như sau:
- Properties: các thuộc tính của nút lệnh
- Checkbox: ô ñánh dấu kiểm chọn
- Command Button: nút thực hiện các ñoạn lệnh
- List Box: thể hiện 1 box có nhiều lựa chọn. Ví
dụ chọn Tỉnh, thì ta sẽ tạo list box trong ñó có
chứa tên các tỉnh và thành phố
- Toogle Box: nút bật, tắt chức năng. Giống như công tắc ñèn.
- Scroll Bar: nút cuộn
- Picture: chèn hình
- View Code: xem, chỉnh sửa các ñoạn mã của các nút lệnh.
- Text Box: khung chứa nội dung văn bản
- Option Button: nút chọn
- Combo Box: hộp kết hợp (kết hợp giữa list box, text box ...)
- Spin Button:
- Label: Nhãn
Bước 2: Tạo cơ sở dữ liệu cho 8 cặp hình cho bảng 4x4
Ta sẽ sử dụng nút lệnh Picture (Image) ñể lưu các hình ảnh. Và 8 cặp hình ảnh ñó
ñược xếp thành 1 ma trận 4 x 4 (có 4 hàng và 4 cột). Hình thứ 1 ở vị trí dòng 1 cột 1, hình
thứ 2 ở dòng 1 cột 2, hình 3 ở dòng 1 cột 3, hình 4 ở dòng 1 cột 4 và hình 5 ở dòng 2 cột
1, ..., hình 16 ở dòng 4 cột 4 như hình sau:

www.giaovien.net --//-- www.center4teachers.com Trang 3/12


centea.info@gmail.com
12/13/2009

ðể cho cân ñối, do các hình của CENTEA ñều có cùng 1 kích cỡ là rộng 128 pixel
(px) và cao 90 px nên CENTEA sẽ thiết lập các ô ở dòng 1 cách lề trên 110 px, các ô ở
dòng 2 cách lề trên 200 px, các ô ở dòng 3 cách lề trên 290px, các ô ở dòng 4 cách lề trên
380 px. Tương tự, các ô ở cột 1 cách lề trái 50px, cột 2 cách lề trái 178 px, cột 3 cách lề
trái 306px và cột 4 cách lề trái 434 px.
Ngoài ra, quý Thầy Cô cần quy ñịnh trước những cặp ở 2 ô nào sẽ giống hình nền.
Ở ñây, CENTEA lựa chọn là 1 – 15 , 2 – 8, 3 – 9, 4 – 16, 5 – 13, 6 – 11, 7 – 12, 10 – 14.
Cách làm như sau:
Bước 2.1: Trên thanh công cụ Control Toolbox, click chọn nút Image (Picture) –
nút ở cuối cùng bên trái của thanh công cụ. Sau khi click chọn, con trỏ chuột sẽ hiện dấu
+, thầy cô di chuyển ñến vùng cần tạo, nhấn chuột
trái và tạo 1 khung hình. ðây là khung hình số 1.
ðể khung hình này nằm ở dòng 1, cột 1 với các
thông số vừa nêu, ta sẽ khai báo thuộc tính
Properties của hình 1 như sau:
Click phải vào ô hình, chọn Properties:
Chọn tab Alphabetic.
Name: ñặt như mặc ñịnh Image1
Enabled: True (ô hình ñược kích hoạt)
Height: 90 (chiều cao của hình)
Left: 50 (do ở cột 1 nên lề trái là 50 px)

www.giaovien.net --//-- www.center4teachers.com Trang 4/12


centea.info@gmail.com
12/13/2009

Picture: Thầy Cô click vào góc phải của ô trên . Khi ñó chương trình sẽ hiện ra hộp
thoại, Thầy Cô chọn hình ñầu tiên cho ô số 1
Picture Alignment: 2-fmPictureAligment Center (hình ñược canh giữa ô)
Picture SizeMode: chọn chế ñộ 0
Top: 110 (do ở dòng 1 nên lề trên là 110 px)
Visible: True (hình ñược hiển thị)
Width: 128 (ñộ rộng của hình).
Bước 2.2: Sau khi có ô hình số 1, Thầy Cô trở lại màn hình soạn thảo của PP.
Copy ô số 1 và dán vào vị trí thích hợp, khi ñó ta có ô số thứ 2, và khai báo các thuộc tính
cho ô thứ 2 tương tự như ô 1 là:
Height: 90 (chiều cao của hình)
Left: 178 (do ở cột 2 nên lề trái là 178 px vì bằng 50px + 128px)
Picture: Thầy Cô click vào góc phải của ô trên . Khi ñó chương trình sẽ hiện
ra hộp thoại, Thầy Cô chọn hình cho ô số 2, theo quy ước phía trên: 1 – 15 , 2 – 8,
3 – 9, 4 – 16, 5 – 13, 6 – 11, 7 – 12, 10 – 14
Top: 110 (do ở dòng 1 nên lề trên là 110 px)
Visible: True (hình ñược hiển thị)
Width: 128 (ñộ rộng của hình)
Tương tự như thế cho ô số thứ 3 và thứ 4.
Bước 2.3: Khi Thầy Cô ñã có 4 ô hình số 1, 2, 3, 4. Thầy Cô chọn và copy cả 4 ô
rồi dán vào vị trí thích hợp. Khi ñó Thầy Cô sẽ có các ô hình số 5, 6, 7, 8. Và khai báo
tương tự như trên. Tuy nhiên, do 4 ô này nằm ở dòng 2, nên mục Top có giá trị 200
(110px + chiều cao của hình ở dòng 1 là 90px)
Bước 2.4: Tương tự, Thầy Cô chọn và copy cả 8 ô hình vừa chọn và dán vào 1 vị
trí thích hợp. Ta sẽ có 8 ô hình còn lại. Thầy Cô khai báo tương tự như ở bước 2.2 và 2.3.
Tuy nhiên, mục Top của các ô ở dòng 3 có giá trị 290, và mục Top của các ô ở dòng 4 có
giá trị 380.
Bước 2.5: kiểm tra là hình ảnh của 16 ô hình vừa tạo và bảo ñảm mỗi hình chỉ xuất
hiện 2 lần ñể có ñúng 8 cặp.
Bước 3: Tạo các nhãn che các ô hình lại

www.giaovien.net --//-- www.center4teachers.com Trang 5/12


centea.info@gmail.com
12/13/2009

Ta tạo bước này, ñể che 16 ô hình vừa tạo ở phía trên, mục ñích ñể người chơi
không nhìn thấy ñược hình nền. Chỉ khi click vào ô bất kỳ thì nhãn sẽ mất ñể hiện hình bị
che ở dưới.
Bước 3.1: Tạo nhãn ñầu tiên có kích cỡ và vị trí y như hình 1. Thầy Cô click vào
nút có hình chữ A trên thanh công cụ Control Toolbox (nằm ở cột bên phải). Sau khi
click chọn, con trỏ chuột sẽ hiện dấu +, thầy cô di chuyển ñến vùng cần tạo, nhấn chuột
trái và tạo 1 khung cho nhãn. ðây là nhãn số 1. ðể nhãn này che khuất khung hình nằm ở
dòng 1, cột 1, ta sẽ khai báo thuộc tính Properties của nhãn này với các thông số trùng với
ô hình thứ 1 như sau:
Name: ñể như mặc ñịnh là Label 1
Autosize: False (không tự ñộng ñiều chỉnh
kích thước)
Back Color: cần chọn màu nền, mục ñích ñể
che ô hình thứ 1.
Back Style: 1-fmBackStyleOpaque (chọn chế
ñộ này ñể không nhìn thấy những gì phía dưới
nhãn.
Caption: 1 (ñể hiện số 1 ngay trên nhãn ñể
người chơi gọi ô số cho dễ)
Height: 90 (cùng chiều cao với ô hình)
Left: 50 (cách lề trái 50 như ô hình số 1)
TextAlign: 2 – fmTextAlignCenter
Top: 110
Visible: True ( ñể nhãn ở chế ñộ hiện nhằm
che ô hình số 1)
Width: 128 WordWrap: True
Sau khi khai báo các thuộc tính cho nhãn số 1, Thầy Cô sẽ có hình sau:

www.giaovien.net --//-- www.center4teachers.com Trang 6/12


centea.info@gmail.com
12/13/2009

Bước 3.2: làm tương tự như bước 2.2 ñể tạo nhãn thứ 2. Nghĩa là:
Copy nhãn số 1 và dán vào vị trí thích hợp, khi ñó ta có nhãn số thứ 2, và khai báo
các thuộc tính cho nhãn thứ 2 tương tự như nhãn 1 là:
Name: ñể như mặc ñịnh là Label 1
Autosize: False (không tự ñộng ñiều chỉnh kích thước)
Back Color: cần chọn màu nền, mục ñích ñể che ô hình thứ 1.
Back Style: 1-fmBackStyleOpaque (chọn chế ñộ này ñể không nhìn thấy
những gì phía dưới nhãn.
Caption 2 (ñể hiện số 2 ngay trên nhãn ñể người chơi gọi ô số cho dễ)
Height: 90 (chiều cao của hình)
Left: 178 (do ở cột 2 nên lề trái là 178 px)
Top: 110 (do ở dòng 1 nên lề trên là 110 px)
Visible: True (nhãn ñược hiển thị)
Width: 128 (ñộ rộng của hình)
Tương tự như thế cho ô số thứ 3 và thứ 4.
Bước 3.3 và 3.4: làm hoàn toàn tương tự bước 2.3 và 2.4. Sau khi hoàn thành,
Thầy Cô sẽ có hình như sau:

www.giaovien.net --//-- www.center4teachers.com Trang 7/12


centea.info@gmail.com
12/13/2009

Bước 4: Tạo nút lệnh Reset ñể trả về nguyên trạng ban ñầu sau khi chơi xong. ðiều này
nhằm làm cho lần trình diễn kế tiếp không bị lộ.
Thầy Cô nhấn vào nút lệnh Command Button (nút thứ 3 ở cột bên trái), và tạo ở vị
trí thích hợp, trong Properties của nút lệnh này ñổi tên (Name) là Reset và mục Caption
cũng là: Reset.

Bước 5: viết các lệnh cho sự kiện các ô ñược click chọn
Ý tưởng của CENTEA ở ñây như sau: khi người chơi click vào ô số 1, thì nhãn
số 1 sẽ mất ñi và hiện hình nền của ô số 1, ñồng thời kiểm tra ñây là lần chọn thứ
nhất hay thứ 2, nếu thứ 1 thì ñược chọn tiếp 1 ô khác, nếu là lần thứ 2 thì sẽ kiểm tra
xem hai hình nền có giống nhau không. Nếu giống thì ñể lại 2 ô hình, nếu sai thì hiện
lại 2 nhãn ñể che 2 ô hình ñó lại.
Do chương trình không biết ñược ln nào là ln 1, ln nào là ln 2, nên
CENTEA ñưa vào bin n ñ ghi nh n STT c
a ln ch n ñó, khi ñó nu n l thì là ln
1, n ch n là ln 2, vì vậy CENTEA ñưa thêm bin m. Ngoài ra, ñể kim tra ln 1, ln 2
là các ô hình nào, CENTEA ñưa thêm 2 bin l và p vào.
Cách làm như sau:
Bước 5.1: Click phải vào nhãn số 1, chọn View Code, khung soạn lệnh hiện ra như
sau:
Private Sub Label1_Click()

End Sub
Ta di chuyển lên dòng phía trên dòng Private Sub, ta gõ dòng lệnh sau:
Public n As Integer, l As Integer, m As Integer, p As Integer (mục ñích
khai báo các biến trong toàn bộ chương trình). Mặc ñịnh n , l , m , p bằng 0
Bước 5.2: tạo các lệnh cho sự kiện ô số 1 ñược chọn như ý tưởng trên của
CENTEA. Ta nhập các lệnh sau vào dòng giữa 2 dòng Private Sub Label1_click() và End
Sub

www.giaovien.net --//-- www.center4teachers.com Trang 8/12


centea.info@gmail.com
12/13/2009

nhãn số 1 sẽ không hiện


hình số 1 sẽ hiện
ghi nhận STT của lần click vào ô số 1
Ghi nhận lần ñó là lần chẵn hay lẻ
Nếu là lẻ thì ghi nhận ô chọn lần 1 là ô số 1

Nếu là chẵn thì ghi nhận ô chọn lần 2 là ô số 1. Nếu chọn lần 2 thì thực
hiện kiểm tra sự giống nhau với hình chọn ở lần 1.

Kết thúc lệnh If


Kết thúc sự kiện
Ở ñây do các khi click bất kỳ 1 nhãn nào cũng thực hiện thao tác kiểm tra trên, nên
ñể ñơn giản, CENTEA sẽ tạo 1 thủ tục con có tên là kiemtra, và mỗi lần muốn kiểm tra ta
sẽ gọi thủ tục ñó.
Ngoài ra, vì tốc ñộ xử lý của máy tính quá nhanh, nên khi gọi thủ tục kiemtra, chúng
ta sẽ không theo dõi ñược hình chọn ở lần 2 là hình gì nên CENTEA tạo thêm 1 chương
trình con là Pause(n) nhằm ngưng chương trình trong khoảng n giây ñể chúng ta có thể
nhìn thấy ñược hình 2 khi quá trình kiểm tra diễn ra.

Bước 5.3: Tạo chương trình con Pause. Ở khung soạn thảo lệnh, ta nhận ñoạn
lệnh sau:

Bước 5.4: Tạo thủ tục con kiemtra. Ở khung soạn lệnh ta tiếp tục nhập các dòng
lệnh như sau:

www.giaovien.net --//-- www.center4teachers.com Trang 9/12


centea.info@gmail.com
12/13/2009

Nếu các cặp hình trùng nhau. Ví dụ: lần 1 là hình số 1, lần 2 là hình số 15 hoặc lần
1 là hình 15 còn lần 2 là hình số 1, thì giữ nguyên 2 hình và trả hai giá trị l, p về 0.

Nếu sai thì kiểm tra lần 1 hình nào ñược chọn và lần 2 hình nào ñược chọn, ñể ẩn
hai hình ñó ñi, và hiện lại 2 nhãn ñược ứng của 2 ô số ñó. Do ñó, chúng ta tạo thêm 2 thủ
tục con là kiemtra1 và kiemtra2 ñể thực hiện yêu cầu trên

Bước 5.5: Tạo thủ tục con kiemtra1 và kiem tra 2

www.giaovien.net --//-- www.center4teachers.com Trang 10/12


centea.info@gmail.com
12/13/2009

Nếu l (lần 1) là 1 thì nhãn 1 sẽ hiện và hình 1 sẽ ẩn. tương tự như vậy cho ñến giá trị l
bằng 16. Và tương tự, nếu p (lần 2) là 1 thì nhãn 1 sẽ hiện và hình 1 sẽ ẩn, tương tự cho ñến
giá trị p bằng 16.

Bước 5.6: tạo các sự kiện cho các ô còn lại ñược chọn. Bước này làm hoàn
toàn tương tự như bước 5.2

Bước 6: Tạo lệnh cho nút lệnh Reset


ðể ñảm bảo lần trình diễn kế tiếp, các hình nền không bị lộ, trước khi thoát khỏi
chương trình, ta nên thực hiện lệnh Reset ñể hiện các nhãn từ 1 ñến 16 và ẩn ñi các hình
từ 1 ñến 16 và trả các giá trị n, m, l, p về giá trị mặc ñịnh

www.giaovien.net --//-- www.center4teachers.com Trang 11/12


centea.info@gmail.com
12/13/2009

Sau khi hoàn thành bước 6, Quý Thầy Cô ñã có thể trình diễn sản phẩm của mình 1
cách suôn sẻ. ðể thuận tiện, cho quý Thầy Cô, các ñoạn lệnh của chương trình ñã ñược
CENTEA lưu vào file code.txt. Sau khi thc hin xong ti bưc 4, Thầy Cô có thể sao
chép và dán ñoạn lệnh trong file code.txt vào khung soạn thảo lệnh của VBA là hoàn tất
chương trình.

Như vậy, CENTEA vừa giới thiệu xong cách tạo trò chơi ñoán hình Trúc Xanh. Hy
vọng sẽ giúp ích cho các Thầy Cô trong quá trình giảng dạy. Ở ñây, phiên bản ñầu tiên
này còn mở, nói chung còn có thể cải tiến nhiều: ví dụ như tạo ô hình 5x5, 6x6 hoặc tạo
chế ñộ thể hiện hình 1 cách ngẫu nhiên thay vì cố ñịnh 1 cách thủ công như ở phiên bản
này. CENTEA hy vọng các cải tiến trên sẽ ñược ra mắt trong các phiên bản kế tiếp.

Thực hiện: Vũ Nhân – www.giaovien.net

www.giaovien.net --//-- www.center4teachers.com Trang 12/12


centea.info@gmail.com

You might also like