Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    Tự tạo "trình duyệt" Internet với VBA

      Tony Stark

      Giới tính : Nam

      Tuổi : 31

      Đến từ : Cần thơ

      Ngày Tham gia : 10/01/2012

      Tổng số bài gửi : 750

      #1

       Sat Mar 03, 2012 11:01 am

      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:

      Tự tạo "trình duyệt" Internet với VBA Internetexplorer--02

      Trong cửa sổ VBA Editor, nhấn Tools > References:

      Tự tạo "trình duyệt" Internet với VBA Internetexplorer--03

      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:

      Tự tạo "trình duyệt" Internet với VBA Internetexplorer--04

      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:

      Tự tạo "trình duyệt" Internet với VBA Internetexplorer--05

      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" & _
      "

      " & _
      "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:

      Tự tạo "trình duyệt" Internet với VBA Internetexplorer--06

      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!

      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:

      Tự tạo "trình duyệt" Internet với VBA Internetexplorer--07

      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!