1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình hướng dẫn sử dụng Macro trong Microsoft Excel phần 10 docx

5 993 14

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 661,11 KB

Nội dung

Đố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ính DisplayAlerts bằng FALSE để ẩn các hộp thoại Excel khi đang thực thi mã lệnh.. CHƯƠNG IV: L

Trang 1

148

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ính DisplayAlerts bằng FALSE để ẩn các hộp thoại Excel khi đang thực thi

mã lệnh

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

Ø Gán thuộc tính ScreenUpdating bằng FALSE để tắt quá trình cập nhật lại màn hình, làm

ẩn đ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:

Trang 2

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

149

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 127

Để điều khiển cửa sổ chính của Excel, sử dụng các thuộc tính WindowState và DisplayFullScreen có 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 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 chiếu thư viện mở rộng của chương 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ím ALT+F11

Trang 3

150

2 Chọn trình đơn Tools Ö References… để hiển thị hộp thoại References dùng để tham

chiếu đến thư viện mở rộng

3 Trong danh sách các thư viện có sẵn, chọn Microsoft Excel 11.0 Object Library Ö Chọn

OK Như vậy là dự án VBA trong AutoCAD đã có tham chiếu đến thư viện mở rộng của

Excel, nghĩa là người lập trình có thể truy cập đến mô hình đối tượng của Excel ngay từ bên trong VBA của AutoCAD

Hình IV-14: Hộp thoại References trong VBAIDE của AutoCAD

CHÚ Ý Tuỳ từng phiên bản chương trình Excel đang được sử dụng mà tên của thư viện

mở rộng Excel có thể khác nhau

Viết mã lệnh khởi động chương trình Excel 

4 Trong VBAIDE của AutoCAD, chọn trình đơn Insert Ö Module để tạo mới một mô-đun chuẩn

5 Trong cửa sổ mã lệnh của mô-đun chuẩn, nhập đoạn mã lệnh dùng để khởi động chương trình Excel như sau:

Sub ConnectToExcel()

Dim App As Excel.Application

On Error Resume Next

Set App = GetObject(, "Excel.Application")

‘ Kiểm tra xem Excel đã được khởi động chưa

‘ Nếu chưa sẽ tiến hành tạo đối tượng Application

If Err Then

Err.Clear

Set App = CreateObject("Excel.Application")

If Err Then

MsgBox Err.Description

Exit Sub

End If

End If

Trang 4

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

151

‘Hiển thị cửa sổ chính của Excel

App.Visible = True

MsgBox "Now running " + App.Name + _

" version " + App.Version

‘====== Kết thúc việc khởi động chương trình Excel ======

‘Bắt đầu thực hiện các thao tác trong Excel

‘giống như khi thực hiện trong môi trường VBA của Excel

Dim WBook As Workbook, WSheet As Worksheet

Set WBook = App.Workbooks.Add

Set WSheet = WBook.Worksheets(1)

WSheet.Range("A1") = "Vi du ket noi voi Excel"

WBook.SaveAs "C:\Test.xls"

WBook.Close

Set WBook = Nothing

Set WSheet = Nothing

End Sub

6 Thực thi Macro: ConnectToExcel như trên, chương trình Excel sẽ được khởi động Ö Tạo

một Worksheet mới Ö Lưu thành tệp có tên Test.xls nằm trong thư mục gốc của ổ đĩa C:\ Ö Thoát khỏi chương trình Excel

7.2 Làm việc với Workbook

7.2.1 Tạo mới, mở, lưu và đóng workbook

Tạo mới workbook  

Để tạo mới workbook, sử dụng phương thức Add có trong tập đối tượng Workbooks:

Dim wb As Workbook

Set wb = Application.Workbooks.Add

Mở workbook 

Để mở một workbook đã có, sử dụng phương thức Open có trong tập đối tượng Workbooks: Dim wb As Workbook

Set wb = Application.Workbooks.Open("C:\MyBook.xls")

Nếu tham số tên tệp chỉ có tên mà không bao gồm đường dẫn, Excel sẽ tìm tệp đó trong thư mục hiện hành Nếu tệp không tồn tại thì sẽ làm phát sinh lỗi trong Excel

Lưu workbook 

Để lưu workbook, sử dụng phương thức Save và SaveAs có trong đối tượng Workbook Thư mục mặc định để lưu trong Excel có thể được thiết lập thông qua thuộc tính DefaultFilePath của đối tượng Application, thông thường thư mục mặc định là thư mục My Documents Ví dụ sau sẽ lưu workbook mới tạo vào thư mục My Documents với tên là NewWorkbook.xls:

ActiveWorkbook.SaveAs "NewWorkbook"

Phương thức SaveAs thích hợp khi lưu workbook lần đầu tiên, hoặc khi muốn lưu workbook thành một workbook có tên khác Còn phương thức Save sẽ lưu workbook và giữ nguyên tên hiện tại của workbook

Đóng workbook 

Trang 5

152

Để đóng workbook, sử dụng phương thức Close có trong đối tượng workbook Phương thức này không tự động lưu workbook, nhưng khi có sự thay đổi nào đó chưa lưu, Excel sẽ hiển thị hộp thoại SaveChanges trước khi đóng workbook Người lập trình có thể tắt hộp thoại này bằng cách truyền thêm tham số vào cho phương thức thức Close:

ThisWorkbook.Close True

Đoạn mã sẽ lưu tất cả các thay đổi và sau đó đóng workbook hiện hành Để đóng mà không lưu những thay đổi của workbook, sử dụng đoạn mã sau:

ThisWorkbook.Close False

Để đóng tất cả các workbook, sử dụng phương thức Close có trong tập đối tượng Workbooks Tuy nhiên phương thức này không có tham số, vì vậy hộp thoại SaveChanges sẽ xuất hiện khi

có workbook nào đó chưa được lưu

Sub TestCloseAll()

Workbooks.Close

End Sub

7.3 Làm việc với Worksheet

7.3.1 Tạo mới, xoá và đổi tên worksheet

Tạo mới worksheet 

Để tạo mới Worksheet, sử dụng phương thức Add có trong tập đối tượng Worksheets hoặc tập đối tượng Sheets

Sub Tao_moi_worksheet()

Dim ws1 As Worksheet

Dim ws2 As Worksheet

‘Thêm một worksheet vào trước worksheet hiện hành

Set ws1 = Worksheets.Add

‘Thêm một worksheet khác vào sau sheet cuối cùng của workbook

Set ws2 = Sheets.Add(After:=Sheets(Sheets.Count), Type:=xlWorksheet) End Sub

Do tập đối tượng Sheets bao gồm nhiều loại sheet khác nhau nên khi thêm worksheet sử dụng phương thức Add có trong tập đối tượng Sheets, cần phải xác định rõ loại sheet sẽ được thêm vào

Xoá worksheet 

Để xoá worksheet, sử dụng phương thức Delete có trong đối tượng worksheet Ví dụ sau sẽ xoá worksheet có tên là Sheet1

Sub Xoa_worksheet()

Dim mySheet As Worksheet

Set mySheet = Worksheets("Sheet1")

Application.DisplayAlerts = False

mySheet.Delete

Application.DisplayAlerts = True

End Sub

Khi sử dụng phương thức Delete để xoá worksheet, Excel sẽ hiển thị hộp thông báo để xác nhận thao tác xoá worksheet Vì vậy, khi đã chắc chắn xoá worksheet phải tắt hết tất cả các

Ngày đăng: 24/07/2014, 04:20

HÌNH ẢNH LIÊN QUAN

Hình IV-14: Hộp thoại References trong VBAIDE của AutoCAD. - Giáo trình hướng dẫn sử dụng Macro trong Microsoft Excel phần 10 docx
nh IV-14: Hộp thoại References trong VBAIDE của AutoCAD (Trang 3)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w