Sử dụng VBA trong PowerPoint - Bài 4

Chia sẻ bởi Nguyễn Xuân Tùng | Ngày 06/11/2018 | 53

Chia sẻ tài liệu: Sử dụng VBA trong PowerPoint - Bài 4 thuộc Tin học 9

Nội dung tài liệu:

BÀI 04.     THỜI GIAN TRONG VBA

Mục tiêu
Sau bài này bạn có thể:
Trình bày được nguyên tắc quản lý thời gian bằng VBA.
Vận dụng tạo đồng hồ, thiết lập thời gian cho bài học.

Giới thiệu
Trong quá trình thiết kế bài học, bài kiểm tra bằng Powerpoint, đôi khi muốn giới hạn thời gian thực hiện cho một hoạt động nào đó, lúc này ta phải tự xây dựng cho mình một đồng hồ thời gian để làm điều này. Mặc định, VBA không cung cấp đối tượng nào để quản lý thời gian. Trong Visual Basic có đối tượng Timer tự động thực hiện sau một khoảng thời gian (interval),  nhưng trong VBA thì không.
Trong khi người dùng đang thực hiện những hoạt động khác, đồng hồ vẫn phải chạy. Vì vậy ý tưởng ở đây là, ta sẽ kích hoạt đồng hồ mỗi giây 1 lần, trong thời gian mỗi giây đó ta trả quyền quản lý về cho hệ thống bằng lệnh DoEvents.

Nguyên tắc quản lý thời gian bằng VBA
Để xây dựng được bài trình chiếu có tính đến yếu tố thời gian dùng VBA cần tuân theo các nguyên tắc sau:
Phải xác định điểm dừng: ví dụ đồng hồ (thời gian làm bài)  sẽ dừng sau 60 phút, 10 phút, 60 giây..vv
Viết sự kiện để bắt đầu tính thời gian: ví dụ phải có nút bắt đầu.
Viết sự kiện để kết thúc việc tính thời gian trước khoảng thời gian quy định: ví dụ người học muốn kết thúc trước khi hết giờ làm bài.
Chọn sự kiện hoặc khoảng thời gian để cập nhật lại đồng hồ: ví dụ cứ sau 1 giây sẽ cập nhật lại đồng hồ.
Không bấm nút ESC để thoát khỏi slide khi đồng hồ đang chạy mà phải gọi sự kiện kết thúc trước khi bấm nút ESC.

Xây dựng đồng hồ
Ta có lệnh DoEvents sẽ trả quyền kiểm soát về cho hệ thống. Khi ta gọi câu lệnh này thì hệ thống có quyền sử dụng CPU cho bất kỳ tiến trình nào khác. Ví dụ khi ta thực hiện một vòng lặp từ 1 đến 1 tỉ sẽ mất 1 một khoảng thời gian. Trong khoảng thời gian đó hầu như ta không còn làm được việc gì khác nữa, vì hệ thống đang thực hiện vòng lặp. Tuy nhiên nếu trong mỗi vòng lặp ta gọi DoEvents thì cứ mỗi vòng lặp hệ thống có một khoản thời gian để thực hiện công việc khác chính vì vậy ta không có cảm giác vòng lặp đang chạy.
Chính đặc điểm này ta có thể sử dụng DoEvents để người dùng có thể làm những hoạt động khác trong khi đồng hồ vẫn đang chạy.
Đoạn code chung để tạo đồng hồ trong VBA
Dim PauseTime, Start, Finish
`Gán thoi gian cho la 1 giay
PauseTime = 1
`Lay thoi diem hien tai
Start = Timer
`Tao vong lap trong khi chua het thoi gian cho
Do While Timer < Start + PauseTime
` Chuyen quyen quan ly cho he thong trong khi lap
    DoEvents
Loop
 Biến nhận khoảng thời gian chờ tính theo giây, biến lấy thời gian hiện tại bằng hàm Timer, Ta thực hiện vòng lặp trong cho đến khi hết thời gian chờ. Trong mỗi lần lặp ta trả quyền kiểm soát cho hệ thống để thực hiện các tác vụ khác.
Ví dụ 4.1: Giả sử thời gian làm mỗi câu ở ví dụ 3.3 là 30 giây, viết thêm chức năng hiển thị đồng hồ, đếm lùi thời gian để người dùng có thể canh thời gian làm bài của mình.

Ý tưởng: Khi người dùng click “Bắt đầu” ta thực hiện việc gán cho Text Box đếm ngược bằng thời gian làm bài (300). Mỗi khi Text Box này thay đổi ta lại cho chờ khoảng 1 giây sau đó trừ giá trị của Text Box này đi 1 cho đến khi giá trị của nó về 0, đồng thời cập nhật lại Label hiển thị đồng hồ. Trong khi chờ ta chuyển quyền quản lý về cho hệ thống.
Hướng dẫn chi tiết:
Bước 1: Sử dụng lại kết quả ở ví dụ 3.3. Tạo thêm Text Box txtSecond để hiển thị số giây đếm ngược, Label lblClock để hiển thị đồng hồ. Thêm Button cmdKetThuc làm nút kết thúc.
Bước 2: Khi người dùng bấm “Bắt đầu” (tương đương với nút làm lại cũ) ta thực hiện gán thời gian làm bài là 30*10 (30 giây mỗi câu, ta có 10 câu). Đồng thời bỏ chọn các Option box như ở ví dụ 3.3
 
Private Sub btnReset_Click()
        Opt1.Value = False
        Opt2.Value = False
        Opt3.Value = False
        Opt4.Value = False
        spn.Value = 1
        lblFB.Caption = ""
        txtSecond.Value = 30 * 10
End Sub
Bước 3: Mỗi khi txtSecond thay đổi ta chờ 1 giây, sau đó cập nhật lại đồng hồ và trừ bớt giá
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Xuân Tùng
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)