You are on page 1of 7

12/13/2009

HƯỚNG DẪN

DÙNG VBA TẠO TRÒ CHƠI TRÚC XANH


TRONG POWERPOINT (phần 2)

- CENTEA -

Sau khi CENTEA giới thiệu ñến quý Thầy Cô bài Hng dn to trò chơi Trúc
Xanh trên Power Point, nhiều Thầy Cô ñã ñề nghị CENTEA hướng dẫn bổ sung
cách ñể khi cứ 2 hình ñược mở giống nhau thì nó tự biến mất chỉ ñể lại khoảng
trống có lộ ra hình nền ở bên dưới. Vì vậy, CENTEA xin giới thiệu với quý Thầy Cô
bài hướng dẫn bổ sung tính năng này.

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


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

Ý tng thc hin chơng trình:


- Do trò chơi của chúng ta có 16 ô với cùng kích thước là 128 x 90 ñược xếp
thành 4 hàng, 4 cột nên chúng ta cần chuẩn bị 1 hình nền có kích cỡ 512 x 360 và
chúng ta sẽ cắt hình nền kích cỡ 514 x 360 thành 16 hình có kích cỡ 128 x 90.
- Trong PP, quý Thầy Cô tạo 16 khung hình y hệt 16 khung hình ñã có. Tên các
khung hình sẽ lần lượt là Image17, Image18,..., Image 32.
- Trong phần khai báo thuộc tính của từng ô hình vừa tạo, quý Thầy Cô chọn
hình thích hợp cho nó (tương tự như bài hướng dẫn trước ñã nêu).
- Phần soạn thảo lệnh, khi kiểm tra 2 ô hình giống nhau thì cho 2 ô hình ñó ẩn ñi
(Visible = False) và cho 2 hình nền tương ứng với 2 hình ñó hiện ra (Visible = True)
- Như vậy, ta ñã giải quyết ñược vấn ñề.

Cụ thể, cách giải quyết như sau:


Bc 1: chuẩn bị hình nền và cắt thành 16 hình nhỏ.
ðể có hình nền ñúng kích cỡ yêu cầu, Quý Thầy Cô có thể dùng phần mềm
miễn phí VSO Image Resizer ñể ñiều chỉnh kích thước của hình. Quý Thầy Cô có
thể tải file cài ñặt chương trình tại ñịa chỉ:
http://www.vso-software.fr/products/image_resizer/
Sau khi cài ñặt, chương trình sẽ ñược tích hợp sẵn trên menu chuột phải, ñể
thay ñổi kích thước của hình nào, ta chỉ việc click phải vào hình ñó, chọn VSO
Image Resizer và nhập kích cỡ mới của hình vào ô Resolution (ô ñầu tiên là ñộ
rộng, ô kế là chiều cao). Nếu ñiều chỉnh cả chiều rộng và chiều cao, Quý Thầy Cô
cần bỏ chọn mục Keep aspect ratio of original
ðể cắt hình nền thành 16 hình nhỏ, Quý Thầy Cô có thể làm thủ công. Tuy
nhiên, cách làm này sẽ phải tốn rất nhiều công sức. Do ñó, CENTEA ñề nghị Thầy
Cô dùng phần mềm Split and Tile Image Splitter (bản dùng thử), do ñây là phần
mềm thương mại và chưa có phần mềm miễn phí nào có chức năng tương tự.
Thầy Cô có thể tải phần mềm ñó tại:

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


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

http://www.softdd.com/splitting-images/splitting-pictures.html
Phần mềm này rất dễ dùng, Thầy cô chỉ cần chạy chương trình, chọn hình cần
cắt và chọn chế ñộ cắt tự ñộng theo số hàng, số cột hoặc theo kích cỡ của từng
hình. Ở ñây, CENTEA chọn chế ñộ cắt hình theo 4 hàng và 4 cột. Sau ñó lưu tất cả
các hình ñó lại.
- Bc 2: Trong PP, Quý Thầy Cô tạo 16 khung hình y hệt 16 khung hình ñã
có. Cách làm như sau:
o Do ban ñầu, chỉ hiển thị các nhãn, còn các hình ñã ñặt chế ñộ ẩn. Do
ñó, chúng ta cần vào khung thuộc tính Properties của các hình ñã có,
khai báo lại thuộc tính Visible là True.
o Trở lại PP, Thầy Cô click chọn cả 16 nhãn hiển thị các ô số từ 1 ñến 16
và di chuyển sang chỗ khác.
o Sau ñó, Click chọn cả 16 khung hình rồi sao chép và dán 16 hình ñó
chồng lên 16 khung hình ñã có trước ñó. Ta sẽ ñược 16 khung hình
mới có tên lần lượt là Image17, Image18,..., Image 32. CENTEA ñã ñặt
tên các khung hình mới là Image17,..., Image20, Image21, ...,
Image24, Image31, ..., Image34, Image41, ..., Image 44 theo vị trí dòng
cột ñể dễ quản lý.
o Di chuyển 16 nhãn về vị trí cũ.
- Bc 3: khai báo thuộc tính cho 16 khung hình vừa tạo trên.
o Vào phần khai báo thuộc tính của 16 hình mới tạo, lần lượt chọn các
hình tương ứng cho mỗi khung hình ở thuộc tính Picture. Thuộc tính
Visible chọn False.
- Bc 4: Viết mã lệnh: trong phần soạn thảo lệnh ta chỉ chỉnh sửa thủ tục
kiemtra mà thôi. Ý tưởng là, nếu 2 hình giống nhau thì ẩn 2 hình ñó ñi
(Visible = False) và hiện 2 hình nền ở vị trí tương ứng (Visible = True). Cụ thể
ñoạn lệnh như sau (có thể dùng file code_1.txt ñi kèm bài hướng dẫn này):

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


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

Private Sub kiemtra()


If m = 0 Then
If (l = 1 And p = 15) Or (l = 15 And p = 1) Then
Image1.Visible = False
Image15.Visible = False
Image17.Visible = True
Image43.Visible = True
l=0
p=0
ElseIf (l = 2 And p = 8) Or (l = 8 And p = 2) Then
Image2.Visible = False
Image8.Visible = False
Image18.Visible = True
Image24.Visible = True
l=0
p=0
ElseIf (l = 3 And p = 9) Or (l = 9 And p = 3) Then
Image3.Visible = False
Image9.Visible = False
Image19.Visible = True
Image31.Visible = True
l=0
p=0
ElseIf (l = 4 And p = 16) Or (l = 16 And p = 4) Then
Image4.Visible = False
Image16.Visible = False
Image20.Visible = True
Image44.Visible = True

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


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

l=0
p=0
ElseIf (l = 5 And p = 13) Or (l = 13 And p = 5) Then
Image5.Visible = False
Image13.Visible = False
Image21.Visible = True
Image41.Visible = True
l=0
p=0
ElseIf (l = 6 And p = 11) Or (l = 11 And p = 6) Then
Image6.Visible = False
Image11.Visible = False
Image22.Visible = True
Image33.Visible = True
l=0
p=0
ElseIf (l = 7 And p = 12) Or (l = 12 And p = 7) Then
Image7.Visible = False
Image12.Visible = False
Image23.Visible = True
Image34.Visible = True
l=0
p=0
ElseIf (l = 10 And p = 14) Or (l = 14 And p = 10) Then
Image10.Visible = False
Image14.Visible = False
Image32.Visible = True
Image42.Visible = True

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


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

l=0
p=0
Else
kiemtra1
kiemtra2
End If
End If
Pause (2)
End Sub

Nếu Thầy Cô muốn sau khi ñã hiển thị tất cả các hình nền thì chương trình sẽ
ghép 16 hình ñó thành hình nền gốc thì chúng ta làm như sau:

- Thầy Cô tạo 1 khung hình có kích cỡ 514 x 360, và liên kết hình nền vào trong
thuộc tính Picture của hình.
- Sau ñó bổ sung ñoạn lệnh sau trc dòng End Sub của ñoạn lệnh trên (có
thể dùng file code_2.txt ñi kèm bài hướng dẫn này)

If (Image17.Visible = True) And (Image18.Visible = True) And (Image19.Visible =


True) And (Image20.Visible = True) And (Image21.Visible = True) And
(Image22.Visible = True) And (Image23.Visible = True) And (Image24.Visible =
True) And (Image31.Visible = True) And (Image32.Visible = True) And
(Image33.Visible = True) And (Image34.Visible = True) And (Image41.Visible =
True) And (Image42.Visible = True) And (Image43.Visible = True) And
(Image44.Visible = True) Then
Image25.Visible = True
Image17.Visible = False
Image18.Visible = False

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


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

Image19.Visible = False
Image20.Visible = False
Image21.Visible = False
Image22.Visible = False
Image23.Visible = False
Image24.Visible = False
Image31.Visible = False
Image32.Visible = False
Image33.Visible = False
Image34.Visible = False
Image41.Visible = False
Image42.Visible = False
Image43.Visible = False
Image44.Visible = False
End If
End Sub

Thông qua bài hướng dẫn này, chúng ta ñã sử dụng một thủ thuật nhỏ của
thuộc tính Visible ñể khi 2 hình giống nhau sẽ hiển thị phần hình nền tương ứng
với vị trí của 2 hình ñó ñúng như yêu cầu của quý Thầy Cô.
CENTEA sẵn sàng ñón nhận các ý kiến ñóng góp và các thắc mắc của quý Thầy
Cô về các vấn ñề sử dụng VBA trong PowerPoint.

Thực hiện: Vũ Hoàng – giaovien.net


P.S: trong chương trình, CENTEA có bổ sung thêm tính năng cho nút lệnh
Exit, khi nhấn nút lệnh này, các thiết lập sẽ trở về giá trị mặc ñịnh ban ñầu và
thoát khỏi màn hình trình diễn.

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


centea.info@gmail.com

You might also like