Quản
Trị Mạng - Trên thực tế, về mặt kỹ thuật thì với các hàm điều khiển,
thiết lập được nhúng trong chương trình sử dụng VBA, chúng ta có thể
nhập dữ liệu input và xử lý thông tin dưới dạng trang web qua ứng dụng
tự tạo. Trong bài viết dưới đây, chúng tôi sẽ hướng dẫn các bạn cách sử dụng Word, Access hoặc Excel để đọc văn bản, tài liệu HTML qua website, sau đó hiển thị thông tin qua cửa sổ trình duyệt mới.
Kích hoạt Microsoft Internet Controls:
Việc trước tiên cần làm tại đây là kích hoạt tùy chọn Microsoft Internet Controls của hệ thống. Trong Excel, các bạn chọn menu Developer > Design Mode và nhấn nút View Code. Tuy nhiên, đối với nhiều phiên bản Excel thì cách bố trí menu đó cũng khác nhau:
Trong cửa sổ VBA Editor, nhấn Tools > References:
Tại màn hình References, kéo chuột xuống phía dưới và chọn Microsoft Internet Controls. Đánh dấu check vào ô và nhấn OK:
Và với mã VBA, chúng ta có thể tạo được các đối tượng để lấy thông
tin về Internet, tự tạo văn bản HTML để người dùng xem bằng bất kỳ trình
duyệt nào.
Input và Output HTML:
Yêu cần cần hoàn tất tại bước này là hiển thị các thông tin sau khi
xử lý dưới dạng văn bản HTML. Và tại đây, chúng ta sẽ tìm hiểu cách thức
làm thế nào để trích xuất dữ liệu từ file Excel ra định dạng HTML hoàn
chỉnh:
Dưới menu Developer, các bạn nhấn Design Mode và chọn nút Insert,
sau đó đặt vào vị trí bất kỳ nào đó trên văn bản. Hãy đảm bảo rằng trên
file Excel đó đã có sẵn dữ liệu, nhấn vào nút đó và chọn View Code. Nhập đoạn mã dưới đây vào:
Sub Button1_Click()
Dim objIE As Object
Dim HTML As String
'----------The HTML CODE GOES FROM HERE AND DOWN----------
HTML = "HTML Report Page " & _
"" & _
"The Following Are Results From Your Daily Calculation" & _
"
Đoạn mã trên sẽ có chức năng hiển thị văn bản HTML mà chúng ta khởi
tạo trong phần String. Và như vậy, các bạn có thể nhúng bất kỳ dữ liệu
nào từ bản tính Excel vào chuỗi dữ liệu HTML. Dưới đây là kết quả của
trang báo cáo:
Khi phần kết quả được hiển thị qua dạng HTML đã hoạt động, bước tiếp
theo cần hoàn tất là tạo cơ chế hoạt động cho đoạn mã VBA sao cho giống
với 1 trình duyệt để đọc mã HTML từ nhiều website khác, xác định dữ liệu
và hiển thị trở lại thành trang HTML cho người dùng:
Sub Button1_Click()
Dim objIE As Object
Dim HTML As String
On Error GoTo error_handler
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Navigate "http://www.google.com"
Do While .Busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
.Visible = True
HTML = objIE.Document.Body.innerHTML
.Document.Write "My Own Google Results!
End With
Set objIE = Nothing
Exit Sub
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
objIE.Quit
Set objIE = Nothing
End Sub
Những gì chúng ta đã thực hiện ở đây là sử dụng Internet Explorer
để đọc mã HTML từ Google dưới dạng text qua hàm tương ứng trong VBA.
Nếu thay HTML output ở phần khai báo biến trên đầu bằng hàm chuyển đổi
HTML to VBA HTML thì kết quả sẽ trông giống như sau:
Trên đây là ví dụ cơ bản về những gì VBA có thể làm được khi xử lý dữ
liệu HTML, nếu thay thế với một vài chức năng tương ứng khác, chúng ta
có thể thực hiện được hàm tìm kiếm thông tin trong một dòng nhất định
nào đó, địa chỉ email, số điện thoại, mở đường dẫn bằng tab mới... Chúc
các bạn thành công!
Trị Mạng - Trên thực tế, về mặt kỹ thuật thì với các hàm điều khiển,
thiết lập được nhúng trong chương trình sử dụng VBA, chúng ta có thể
nhập dữ liệu input và xử lý thông tin dưới dạng trang web qua ứng dụng
tự tạo. Trong bài viết dưới đây, chúng tôi sẽ hướng dẫn các bạn cách sử dụng Word, Access hoặc Excel để đọc văn bản, tài liệu HTML qua website, sau đó hiển thị thông tin qua cửa sổ trình duyệt mới.
Kích hoạt Microsoft Internet Controls:
Việc trước tiên cần làm tại đây là kích hoạt tùy chọn Microsoft Internet Controls của hệ thống. Trong Excel, các bạn chọn menu Developer > Design Mode và nhấn nút View Code. Tuy nhiên, đối với nhiều phiên bản Excel thì cách bố trí menu đó cũng khác nhau:
Trong cửa sổ VBA Editor, nhấn Tools > References:
Tại màn hình References, kéo chuột xuống phía dưới và chọn Microsoft Internet Controls. Đánh dấu check vào ô và nhấn OK:
Và với mã VBA, chúng ta có thể tạo được các đối tượng để lấy thông
tin về Internet, tự tạo văn bản HTML để người dùng xem bằng bất kỳ trình
duyệt nào.
Input và Output HTML:
Yêu cần cần hoàn tất tại bước này là hiển thị các thông tin sau khi
xử lý dưới dạng văn bản HTML. Và tại đây, chúng ta sẽ tìm hiểu cách thức
làm thế nào để trích xuất dữ liệu từ file Excel ra định dạng HTML hoàn
chỉnh:
Dưới menu Developer, các bạn nhấn Design Mode và chọn nút Insert,
sau đó đặt vào vị trí bất kỳ nào đó trên văn bản. Hãy đảm bảo rằng trên
file Excel đó đã có sẵn dữ liệu, nhấn vào nút đó và chọn View Code. Nhập đoạn mã dưới đây vào:
Sub Button1_Click()
Dim objIE As Object
Dim HTML As String
'----------The HTML CODE GOES FROM HERE AND DOWN----------
HTML = "
"" & _
"The Following Are Results From Your Daily Calculation" & _
"
" & _
"Daily Production: " & Sheet1.Cells(1, 1) & "
" & _
"Daily Scrap: " & Sheet1.Cells(1, 2) & "
"
'----------The HTML CODE GOES HERE AND ABOVE---------
On Error GoTo error_handler
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Navigate "about:blank"
Do While .Busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
.Visible = True
.Document.Write HTML
End With
Set objIE = Nothing
Exit Sub
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
objIE.Quit
Set objIE = Nothing
End Sub
Đoạn mã trên sẽ có chức năng hiển thị văn bản HTML mà chúng ta khởi
tạo trong phần String. Và như vậy, các bạn có thể nhúng bất kỳ dữ liệu
nào từ bản tính Excel vào chuỗi dữ liệu HTML. Dưới đây là kết quả của
trang báo cáo:
Khi phần kết quả được hiển thị qua dạng HTML đã hoạt động, bước tiếp
theo cần hoàn tất là tạo cơ chế hoạt động cho đoạn mã VBA sao cho giống
với 1 trình duyệt để đọc mã HTML từ nhiều website khác, xác định dữ liệu
và hiển thị trở lại thành trang HTML cho người dùng:
Sub Button1_Click()
Dim objIE As Object
Dim HTML As String
On Error GoTo error_handler
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Navigate "http://www.google.com"
Do While .Busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
.Visible = True
HTML = objIE.Document.Body.innerHTML
.Document.Write "
This is an Edited Version of the Google Page!
" & HTML & ""End With
Set objIE = Nothing
Exit Sub
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
objIE.Quit
Set objIE = Nothing
End Sub
Những gì chúng ta đã thực hiện ở đây là sử dụng Internet Explorer
để đọc mã HTML từ Google dưới dạng text qua hàm tương ứng trong VBA.
Nếu thay HTML output ở phần khai báo biến trên đầu bằng hàm chuyển đổi
HTML to VBA HTML thì kết quả sẽ trông giống như sau:
Trên đây là ví dụ cơ bản về những gì VBA có thể làm được khi xử lý dữ
liệu HTML, nếu thay thế với một vài chức năng tương ứng khác, chúng ta
có thể thực hiện được hàm tìm kiếm thông tin trong một dòng nhất định
nào đó, địa chỉ email, số điện thoại, mở đường dẫn bằng tab mới... Chúc
các bạn thành công!