Các thao tác cơ bản trong Excel

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 151 - 154)

CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCEL

7. Các thao tác cơ bản trong Excel

Phần này sẽ giới thiệu các đoạn mã thực hiện những thao tác cơ bản trong Excel.

7.1. Điều khiển Excel

Các thao tác liên quan đến việc điều khiển chương trình Excel đều được thực hiện thông qua đối tượng Application, đối tượng ở cấp cao nhất trong cây phân cấp đối tượng trong Excel.

7.1.1. Thoát khỏi Excel

Sử dụng phương thức có trong đối tượng Application để thoát khỏi Excel. Thông thường, nếu có workbook nào chưa được lưu, Excel sẽ hiện thị hộp thoại để nhắc người dùng lưu workbook. Tuy nhiên, người lập trình có thể thay đổi cách ứng xử trên bằng một số cách sau:

Lưu tất cả các workbook trước khi thoát

Gán thuộc tínhSaved của workbook trước khi thoát Gán thuộc tínhDisplayAlerts bằng FALSE

Ví dụ sau sẽ lưu tất cả các workbook đang mở trong Excel mà không cần hiển thị thông báo cho người dùng:

Sub QuitSaveAll( ) Dim wb As Workbook

For Each wb In Workbooks wb.Save

Next

Application.Quit End Sub

Ngược lại, đoạn mã sau sẽ thoát khỏi Excel mà không lưu các workbook:

Sub QuitSaveNone() Dim wb As Workbook

For Each wb In Workbooks

' Đánh dấu coi như các workbook đã được lưu

' nhưng thực chất, các workbook vẫn chưa được lưu wb.Saved = True

Next

Application.Quit End Sub

Hoặc có thể sử dụng đoạn mã sau:

http://www.ebook.edu.vn ' Tắt tất cả các thông báo, hộp thoại

Application.DisplayAlerts = False Application.Quit

End Sub

Cách thoát khỏi Excel sử dụng thuộc tínhSavedhoặcDisplayAlerts sẽ có thể làm mất tất cả những thay đổi chưa được lưu. Vì thế cũng có thể sử dụng một cách khác, đó là sử dụng phương thức SaveWorkspaceđể lưu trạng thái làm việc của Excel của trước lúc thoát vào tệp .xlw, và khi mở tệp này, trạng thái làm việc của Excel tại thời điểm đó sẽ được khôi phục lại.

Đoạn mã sau sẽ lưu toàn bộ trạng thái làm việc vào tệp Resume.xlw:

Sub QuitWithResume()

Application.SaveWorkspace "C:\Resume.xlw"

Application.Quit End Sub

7.1.2. Khoá tương tác người dùng

Trong một số trường hợp, để tránh người dùng thoát khỏi Excel khi đang thực hiện một số bước tính toán mất nhiều thời gian, cần phải giới hạn tương tác giữa người dùng và chương trình Excel. Đối tượng Application có một số phương thức/thuộc tính để thực hiện điều này:

Gán thuộc tínhDisplayAlerts bằngFALSEđểNn các hộp thoại Excel khi đang thực thi mã lệnh.

Gán thuộc tínhInteractive bằngFALSE để người dùng hoàn toàn không thể tương tác được với Excel.

Gán thuộc tínhScreenUpdating bằngFALSEđể tắt quá trình cập nhật lại màn hình, làm Nn đi những thay đổi diễn ra trong lúc thực thi mã lệnh.

Những cách trên đều cần phải thực hiện ở đầu đoạn mã lệnh và phải thực hiện lại ở cuối của đoạn mã lệnh để thiết lập lại các giá trị mặc định, nếu không sẽ làm khoá hoàn toàn chương trình Excel.

Ví dụ sau minh hoạ cách tạm thời khoá tương tác người dùng khi thực hiện các đoạn mã lệnh mất nhiều thời gian:

Sub Khoa_nguoi_dung() Dim cel As Range

' Chuyển con trỏ chuột thành biểu tượng chờ.

Application.Cursor = xlWait

' Tắt tương tác người dùng và việc cập nhật màn hình.

Application.Interactive = False Application.ScreenUpdating = False

' Đoạn mã lệnh mô phỏng việc tính toán mất nhiều thời gian.

For Each cel In [a1:iv999]

cel.Select Next

' Khôi phục lại trạng thái ban đầu.

Application.Interactive = True Application.ScreenUpdating = True Application.Cursor = xlDefault [a1].Select

End Sub

Một lợi điểm nữa của việc gán thuộc tính ScreenUpdating bằng FALSE là việc đoạn mã lệnh sẽ thực thi với tốc độ nhanh hơn vì Excel không cần phải cập nhật lại màn hình khi tiến hành chọn

từng ô trong vùng dữ liệu từ A1:IV999. Nhưng cần lưu ý phải khôi phục lại các giá trị mặc định trước khi kết thúc mã lệnh.

GỢI Ý Gán thuộc tính ScreenUpdating bằng FALSE trong khi thực khi các đoạn mã lệnh có liên quan đến việc hiển thị trên màn hình, chằng hạn như đổi màu nền cho vùng dữ liệu… , sẽ làm tăng tốc độ thực thi của mã lệnh

7.1.3. Thao tác với cửa sổ

Đối tượng Application có tập đối tượng Windows cho phép mở, sắp xếp, thay đổi kích thước và đóng các cửa sổ bên trong Excel. Chẳng hạn như đoạn mã sau tạo thêm một cửa sổ mới và sau đó xếp chồng các cửa sổ bên trong workbook hiện hành:

Sub OpenCascadeWindows() ActiveWindow.NewWindow

Application.Windows.Arrange xlArrangeStyleCascade, True End Sub

Người lập trình có thể đóng, thay đổi trạng thái của cửa sổ sử dụng các phương thức và thuộc tính có trong đối tượng Window. Ví dụ sau sẽ đóng cửa sổ đã được tạo ra ở ví dụ trước và khôi phục lại trạng thái của cửa sổ ban đầu trong Excel:

Sub CloseMaximize()

ActiveWindow.Close ‘Đóng cửa sổ hiện hành ActiveWindow.WindowState = xlMaximized

End Sub

Việc đóng cửa sổ cuối cùng của Workbook tương đương với việc đóng workbook đó.

CHÚ Ý Trong cùng một workbook có thể có nhiều cửa sổ con, tất cả các cửa sổ con đó đều có nội dung giống nhau và đều là một thể hiện của workbook. Chi tiết, xem lại mục

Đối tượng Window” trang 125.

Để điều khiển cửa sổ chính của Excel, sử dụng các thuộc tính WindowState và DisplayFullScreencó trong đối tượng Application. Đoạn mã sau sẽ thực hiện thay đổi trạng thái cửa sổ chính của Excel, giữa các thái thái sẽ có một thông báo:

Sub ChangeExcelWindowState()

Application.WindowState = xlMaximized ‘Phóng đại cửa sổ MsgBox "Trang thai phong dai"

Application.WindowState = xlMinimized ‘Thu nhỏ cửa sổ MsgBox "Trang thai thu nho"

Application.WindowState = xlNormal ‘Trạng thái thông thường MsgBox "Trang thai thong thuong"

Application.DisplayFullScreen = True ‘Xem toàn màn hình MsgBox "Trang thai toan man hinh"

Application.DisplayFullScreen = False ‘Trạng thái bình thường MsgBox "Trang thai thong thuong"

End Sub

7.1.4. Khởi động Excel từ chương trình khác

Thông thường, khi sử dụng VBA trong Excel, chương trình Excel đã được khởi động sẵn và người lập trình không cần quan tâm đến các thao tác để khởi động chương trình Excel. Tuy nhiên, vẫn có những lúc cần khởi động chương trình Excel từ chương trình khác, chẳng hạn

http://www.ebook.edu.vn

như khi muốn xuất dữ liệu tính toán sang Excel chẳng hạn. Lúc đó, cần phải lập trình để khởi động Excel, hay nói theo cách đơn giản hơn, là tạo đối tượng Application chứa ứng dụng Excel.

Để thực hiện được việc này, cần phải thực hiện các bước sau:

1. Tham chiếu đến với thư viện mở rộng của chương trình Excel.

2. Viết mã lệnh thực hiện việc khởi động chương trình Excel (tạo đối tượng Application của Excel).

Dưới đây sẽ trình bày cách thức khởi động chương trình Excel từ VBA trong AutoCAD.

Tham chiu th vin m? r#ng ca chng trình Excel

1. Khởi động chương trình AutoCAD Khởi động VBAIDE trong AutoCAD bằng cách nhấn tổ hợp phímALT+F11.

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 151 - 154)

Tải bản đầy đủ (PDF)

(434 trang)