Chào mọi người. Chúng tôi là diễn đàn tuhocvba.net
Hiện nay diễn đàn chưa thể thành lập Box API riêng,
Trong khả năng của mình, chúng tôi sẽ trình bày dưới dạng các topic nhỏ từ các nguồn tham khảo internet, có thể chưa có tính hệ thống, với mong muốn giúp các bạn làm quen dần với API.
Với Excel VBA, chúng ta làm được thật là nhiều việc, quả là tiện lợi phải không các bạn.
Thế nhưng, có những thứ chúng ta thấy rằng, nếu như tính năng này có thể được dùng trên Excel thì tiện biết bao, ví dụ như sử dụng chuột giữa để di chuyển dữ liệu hiển thị trên listbox, hoặc nếu như có thể kết hợp tính năng này vào Excel thì còn tiện hơn nữa ấy nhỉ…
Và để biến những điều đó thành hiện thực, chúng ta hãy làm quen với API.
Windows API là gì?
Đầu tiên, API là các chữ cái đầu của chữ Application Programming Interface. Đây là một thủ đoạn để có thể gọi các chương trình từ bên ngoài. Nó đóng vai trò là cầu nối giữa chương trình chúng ta muốn gọi và chức năng mà chúng ta muốn dùng.
Và tất nhiên, từ Excel VBA, chúng ta cũng có thể làm được điều đó, bằng cách gọi (các chương trình từ bên ngoài) các tính năng của hệ điều hành windows ra phục vụ chúng ta.
Windows API và DLL
Trong khi sử dụng Windows API, chúng ta sẽ nhắc nhiều tới DLL.
Ví dụ: User32.DLL
DLL là các chữ cái viết tắt cảu từ Dynamic Link Library. Nó là một tập hợp các hàm mà các ứng dụng như Excel có thể gọi chúng ra và sử dụng.
Trường hợp chúng ta sử dụng Windows API để gọi các tính năng ngoài phạm vi của Excel, thì:
1. Bằng Windows API, chúng ta sẽ chỉ định gọi hàm bên trong DLL và trao cho nó tham số đầu vào.
2. Bằng Windows API, chúng ta sẽ làm cho hàm được chỉ định bên trong DLL tiến hành xử lý theo ý đồ và mục đích của chúng ta.
3. Thông qua Windows API, kết quả xử lý của hàm trong DLL sẽ được trả về Excel VBA.
Windows API có sẵn với số lượng rất lớn
Các hàm Windows API được công khai có số lượng rất lớn, các trang web của nước ngoài liệt kê rất nhiều, nhưng ở Việt Nam, cho tới nay chỉ có caulacbovb.com là có topic trình bày cụ thể hơn cả. tuhocvba.net tiếp cận từ hướng Excel, nên sẽ có lựa chọn giới thiệu hàm gì mà chúng tôi cho là hữu ích, cách trình bày sẽ tuân thủ theo phương châm của diễn đàn từ trước tới nay, đó là dễ hiểu, và dễ áp dụng. Thành viên của diễn đàn cũng có thể giới thiệu các hàm API mà các bạn tâm đắc nhưng cũng cần tuân thủ cách trình bày dễ hiểu, đưa ra ví dụ áp dụng.
Về thư viện các hàm API được công khai, các bạn có thể tham khảo thêm ở đây:
Thực hành: Sử dụng Windows API để tạo âm thanh cảnh báo giống Windows System
Khai báo về việc sử dụng API bằng từ khóa Declare
Để có thể sử dụng Windows API từ Excel VBA, chúng ta cần phải khai báo, tôi muốn sử dụng chương trình có tên là … và đang nằm ở ….
Và để thực hiện khai báo này, ta phải dùng từ khóa Declare.
Private Declare Function tên_chương_trình_API Lib “Tên_DLL” (tham số) As Kiểu
Đàu tiên, tên chương trình chúng ta muốn dùng để tạo ra âm thanh cảnh báo của windows là MessageBeep.
Và, MessageBeep được cất trong file User32.DLL, chúng ta sử dụng tên file DLL thì giản lược và viết là “User32”.
Hơn nữa, MessageBeep cần có tham số truyền vào, tham số ở đây là số hiệu âm thanh mà bạn muốn dùng (có rất nhiều loại âm thanh cảnh báo, ứng với nó sẽ là các số hiệu khác nhau).
Hàm này có kiểu giá trị trả về là số nguyên integer.
Tóm lại hàm này được khai báo như sau:
Private Declare Function MessageBeep Lib “user32” (ByVal sType As Integer) As Integer
Bây giờ ta sẽ ứng dụng nó trong thực tế như dưới đây:
Điều đương nhiên đó là chúng ta phải biết chính xác tên hàm API. Nếu viết sai thì chương trình sẽ bị lỗi, hãy chú ý.
Nguồn tham khảo:
Hiện nay diễn đàn chưa thể thành lập Box API riêng,
Bạn cần đăng nhập để thấy link
nhưng chưa nhận được sự ủng hộ cổ vũ của mọi người.Trong khả năng của mình, chúng tôi sẽ trình bày dưới dạng các topic nhỏ từ các nguồn tham khảo internet, có thể chưa có tính hệ thống, với mong muốn giúp các bạn làm quen dần với API.
Với Excel VBA, chúng ta làm được thật là nhiều việc, quả là tiện lợi phải không các bạn.
Thế nhưng, có những thứ chúng ta thấy rằng, nếu như tính năng này có thể được dùng trên Excel thì tiện biết bao, ví dụ như sử dụng chuột giữa để di chuyển dữ liệu hiển thị trên listbox, hoặc nếu như có thể kết hợp tính năng này vào Excel thì còn tiện hơn nữa ấy nhỉ…
Và để biến những điều đó thành hiện thực, chúng ta hãy làm quen với API.
Windows API là gì?
Đầu tiên, API là các chữ cái đầu của chữ Application Programming Interface. Đây là một thủ đoạn để có thể gọi các chương trình từ bên ngoài. Nó đóng vai trò là cầu nối giữa chương trình chúng ta muốn gọi và chức năng mà chúng ta muốn dùng.
Và tất nhiên, từ Excel VBA, chúng ta cũng có thể làm được điều đó, bằng cách gọi (các chương trình từ bên ngoài) các tính năng của hệ điều hành windows ra phục vụ chúng ta.
Windows API và DLL
Trong khi sử dụng Windows API, chúng ta sẽ nhắc nhiều tới DLL.
Ví dụ: User32.DLL
DLL là các chữ cái viết tắt cảu từ Dynamic Link Library. Nó là một tập hợp các hàm mà các ứng dụng như Excel có thể gọi chúng ra và sử dụng.
Trường hợp chúng ta sử dụng Windows API để gọi các tính năng ngoài phạm vi của Excel, thì:
1. Bằng Windows API, chúng ta sẽ chỉ định gọi hàm bên trong DLL và trao cho nó tham số đầu vào.
2. Bằng Windows API, chúng ta sẽ làm cho hàm được chỉ định bên trong DLL tiến hành xử lý theo ý đồ và mục đích của chúng ta.
3. Thông qua Windows API, kết quả xử lý của hàm trong DLL sẽ được trả về Excel VBA.
Windows API có sẵn với số lượng rất lớn
Các hàm Windows API được công khai có số lượng rất lớn, các trang web của nước ngoài liệt kê rất nhiều, nhưng ở Việt Nam, cho tới nay chỉ có caulacbovb.com là có topic trình bày cụ thể hơn cả. tuhocvba.net tiếp cận từ hướng Excel, nên sẽ có lựa chọn giới thiệu hàm gì mà chúng tôi cho là hữu ích, cách trình bày sẽ tuân thủ theo phương châm của diễn đàn từ trước tới nay, đó là dễ hiểu, và dễ áp dụng. Thành viên của diễn đàn cũng có thể giới thiệu các hàm API mà các bạn tâm đắc nhưng cũng cần tuân thủ cách trình bày dễ hiểu, đưa ra ví dụ áp dụng.
Về thư viện các hàm API được công khai, các bạn có thể tham khảo thêm ở đây:
Bạn cần đăng nhập để thấy link
Thực hành: Sử dụng Windows API để tạo âm thanh cảnh báo giống Windows System
Khai báo về việc sử dụng API bằng từ khóa Declare
Để có thể sử dụng Windows API từ Excel VBA, chúng ta cần phải khai báo, tôi muốn sử dụng chương trình có tên là … và đang nằm ở ….
Và để thực hiện khai báo này, ta phải dùng từ khóa Declare.
Private Declare Function tên_chương_trình_API Lib “Tên_DLL” (tham số) As Kiểu
Đàu tiên, tên chương trình chúng ta muốn dùng để tạo ra âm thanh cảnh báo của windows là MessageBeep.
Và, MessageBeep được cất trong file User32.DLL, chúng ta sử dụng tên file DLL thì giản lược và viết là “User32”.
Hơn nữa, MessageBeep cần có tham số truyền vào, tham số ở đây là số hiệu âm thanh mà bạn muốn dùng (có rất nhiều loại âm thanh cảnh báo, ứng với nó sẽ là các số hiệu khác nhau).
Hàm này có kiểu giá trị trả về là số nguyên integer.
Tóm lại hàm này được khai báo như sau:
Private Declare Function MessageBeep Lib “user32” (ByVal sType As Integer) As Integer
Bây giờ ta sẽ ứng dụng nó trong thực tế như dưới đây:
Mã:
#If Win64 then
Private Declare PtrSafe Function MessageBeep Lib "user32" (ByVal sType As Integer) As Integer
#Else
Private Declare Function MessageBeep Lib "user32" (ByVal sType As Integer) As Integer
#End if
Sub Sound_Test()
MessageBeep (20)
End Sub
Nguồn tham khảo:
Bạn cần đăng nhập để thấy link