11/08/2018, 19:21

Đối tượng Application trong Excel VBA

Học java core Đối tượng application trong Excel VBA là đối tượng được sử dụng thường xuyên nhất khi thực hiện bất kỳ tác vụ nào với VBA. Dưới đây là các phương thức và thuộc tính được sử dụng nhiều nhất của đối tượng Application. Để bạn có thể nhanh chóng tìm ra giải pháp, ...

Học java core

Đối tượng application trong Excel VBA là đối tượng được sử dụng thường xuyên nhất khi thực hiện bất kỳ tác vụ nào với VBA.

Dưới đây là các phương thứcthuộc tính được sử dụng nhiều nhất của đối tượng Application. Để bạn có thể nhanh chóng tìm ra giải pháp, cú pháp bất cứ khi nào bạn cần sử dùng nó.

Các phương thức của đối tượng Application

Dưới đây là các phương thức được sử dụng nhiều nhất của đối tượng Application.

Phương thức Mô tả
FindFile Để mở hộp thoại để mở một file.
Goto Để chọn bất kỳ range nào.
Run Để chạy một thủ tục hoặc một hàm
Wait Để tạm ngưng chương trình macro.

Các thuộc tính của đối tượng Application

Dưới đây là các thuộc tính được sử dụng nhiều nhất của đối tượng Application.

Properties Mô tả
DisplayAlerts Để đại diện cho hiển thị cảnh báo.
Path Để có được đường dẫn tuyệt đối của ứng dụng.
ScreenUpdating Để bật/tắt màn hình.

Sử dụng các phương thức của Application

Phương thức FindFile

Phương thức FindFile của Application trong VBA được sử dụng để mở một hộp thoại cho phép người sử dụng mở một workbook hoặc một file. Phương thức này trả về giá trị Boolean là true hoặc false. If giá trị trả về là true thì người dùng đã mở file thành công. Nếu người dùng hủy hộp thoại thì giá trị trả về là false.

Cú pháp:

Application.FindFile

Ví dụ:

Sub Demo_FindFile()
    Application.FindFile
End Sub

Phương thức Goto

Phương thức Goto của Application trong VBA được sử dụng để chọn bất kỳ range trên một worksheet hoặc lựa chọn bất kỳ thủ tục visual basic trong workbook. Nếu workbook là đang không hoạt động, nó sẽ khiến workbook này hoạt động.

Cú pháp:

Application. Goto ([Reference], [Scroll])

Trong đó:
Reference: Nó chỉ định đích đến.
Scroll: Đây là tham số tùy chọn. Nó có giá trị Boolean hoặc True hay False. Nếu giá trị là true thì nó sẽ di chuyển thanh cuộn đến vị trí chỉ đích. Nếu đó là false thì nó sẽ không di chuyển thanh cuộn.

Ví dụ: thủ tục sau sẽ chọn cell “A250” của worksheet có tên “Sheet1”. Thuộc tính Scroll:=True của câu lệnh sau sẽ cuộn tới vị trí cell “A250”.

Sub Demo_Goto() 
    Application.Goto Reference:=Worksheets("Sheet1").Range("A250"), Scroll:=True 
End Sub

Phương thức Run

Phương thức Run của Application trong VBA được sử dụng để run một thủ tục hoặc function được viết trong VBA.

Cú pháp:

Application.Run([Macro], [Arg1], [Arg2],…, [Arg30])

Trong đó:
Macro: Nó chỉ định macro để run.
Arg1 to Arg30: Đây là tham số tùy chọn. Nó được sử dụng để truyền các tham số cho function.

Ví dụ sau run một thủ tục macro có tên “MyMacro” của workbook có tên “Workbook1.xls”.

Sub Demo_Run() 
    Application.Run "'Workbook1.xls'!MyMacro"
End Sub

Phương thức Wait

Phương thức Wait của Application trong VBA được sử dụng để được sử dụng để tạm dừng hoặc dừng macro trong một khoảng thời gian được chỉ định. Nó trả về một giá trị Boolean. Nếu thời gian đã chỉ định đến, nó trả về true nếu không nó sẽ trả về false.

Cú pháp:

Application.Wait(Time)

Trong đó:
Time: Đây là một tham số được yêu cầu. Nó chỉ định thời gian bạn muốn tiếp tục macro.

Ví dụ 1: tạm ngưng macro đến 16h cùng ngày.

Sub Demo_Wait1() 
    Application.Wait "16:00:00"
End Sub

Ví dụ 2: tạm ngưng macro 20 giây.

Sub Demo_Wait2() 
   Application.Wait Now + TimeValue("00:00:20")
End Sub

Sử dụng các thuộc tính của Application

Thuộc tính DisplayAlerts

Thuộc tính DisplayAlerts của Application trong VBA có giá trị Boolean là True hoặc False. Giá trị mặc định là True. Khi giá trị là True nó sẽ hiển thị cảnh báo hoặc thông báo trong khi chạy macro. Nếu giá trị là False nó sẽ không hiển thị bất kỳ thông báo hoặc cảnh báo nào.

Ví dụ 1: không hiển thị bất kỳ cảnh báo nào trong khi đóng workbook đang hoạt động.

Sub Display_Alert_Example1()
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End Sub 

Ví dụ 2: Hiển thị cảnh báo trong khi đóng workbook đang hoạt động.

Sub Display_Alert_Example1()
    Application.DisplayAlerts = True ' tùy chọn vì mặc định là true
    ActiveWorkbook.Close
End Sub 

Thuộc tính Path

Thuộc tính Path của Application trong VBA được sử dụng để lấy giá trị tuyệt đối của ứng dụng.

Ví dụ 1: hiển thị đường dẫn tuyệt đối của thư mục chứa ứng dụng excel.

Sub Path_Example1()
    MsgBox "The application path is:" & Application.Path
End Sub

Kết quả:

The application path is: C:Program FilesMicrosoft OfficeOffice15

Ví dụ 1.1: hiển thị đường dẫn tuyệt đối của thư mục chứa file excel macro (workbook).

Sub Path_Example1()
    MsgBox "The workbook path is:" & Application.ActiveWorkbook.Path
End Sub

Kết quả:

The workbook path is: D:Test

Ví dụ 2: hiên thị đường dẫn tuyệt đối của file excel macro.

Sub Path_Example2()
    MsgBox "Workbook full path is: " & ThisWorkbook.FullName
End Sub 

Kết quả:

Workbook full path is: D:TestMyFile.xlsm

Thuộc tính ScreenUpdating

Thuộc tính ScreenUpdating của Application trong VBA được sử dụng để cập nhật ON/OFF màn hình. Nếu chúng ta thiết lập thuộc tính ScreenUpdating thành True thì nó sẽ mở màn hình cập nhật. Khi chúng ta thiết lập thuộc tính ScreenUpdating của một đối tượng Application thành False thì nó sẽ tắt màn hình cập nhật, điều này có nghĩa là sẽ tăng tốc độ macro. Đó là một trong những kỹ thuật tối ưu hóa.

Ví dụ 1: Trong ví dụ sau, nó sẽ hiển thị số từ 1 đến 100 trong cột đầu tiên của Sheet1. Chúng ta có thể quan sát màn hình đang cập nhật trong khi cập nhật Sheet1.

Sub ScreenUpdating_Example1()
    Dim i As Integer
    For i = 1 To 100
        Sheets("Sheet1").Cells(i, 1) = i
    Next
End Sub

Ví dụ 2: Trong ví dụ sau, nó sẽ hiển thị số từ 1 đến 100 trong cột đầu tiên của Sheet1. Chúng ta không thể quan sát màn hình đang cập nhật trong khi cập nhật Sheet1.

Sub ScreenUpdating_Example1()
    Application.ScreenUpdating = False
    Dim i As Integer
    For i = 1 To 100
        Sheets("Sheet1").Cells(i, 1) = i
    Next
    Application.ScreenUpdating = True
End Sub

Xem thêm tại: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-object-excel

Học java core
0