Visual Basic for Applications:
การวิเคราะห์ HTML

วิธีทำ:

ใน VBA คุณสามารถแยกข้อมูล HTML โดยใช้ Microsoft HTML Object Library เพิ่มการอ้างอิงไปยังไลบรารีนี้ในตัวแก้ไข VBA ของคุณโดยไปที่ Tools > References และเลือก Microsoft HTML Object Library การทำเช่นนี้จะให้คุณสามารถเข้าถึงคลาสสำหรับการนำทางและการจัดการเอกสาร HTML

นี่คือตัวอย่างง่ายๆ ที่แสดงวิธีการโหลดเอกสาร HTML จากไฟล์และสกัดลิงค์ทั้งหมด (การป้ายย่อ):

Sub ParseHTML()
    Dim htmlDoc As MSHTML.HTMLDocument
    Dim htmlElement As MSHTML.IHTMLElement
    Dim htmlElements As MSHTML.IHTMLElementCollection
    Dim htmlFile As String
    Dim fileContent As String
    
    ' โหลดเนื้อหา HTML จากไฟล์
    htmlFile = "C:\path\to\your\file.html"
    Open htmlFile For Input As #1
    fileContent = Input$(LOF(1), 1)
    Close #1
    
    ' ต้นแบบเอกสาร HTML
    Set htmlDoc = New MSHTML.HTMLDocument
    htmlDoc.body.innerHTML = fileContent
    
    ' ได้รับการป้ายย่อทั้งหมด
    Set htmlElements = htmlDoc.getElementsByTagName("a")

    ' วนลูปผ่านองค์ประกอบป้ายย่อทั้งหมดและพิมพ์แอตทริบิวต์ href
    For Each htmlElement In htmlElements
        Debug.Print htmlElement.getAttribute("href")
    Next htmlElement
End Sub

สคริปต์นี้อ่านเนื้อหาไฟล์ HTML, โหลดลงในออบเจกต์ HTMLDocument, เรียกดูองค์ประกอบป้ายย่อทั้งหมด (<a> tags) และจากนั้นวนลูปผ่านพวกมัน พิมพ์แอตทริบิวต์ href ของแต่ละตัวลงในหน้าต่าง Immediate

ลึกซึ้ง:

ในอดีต การแยกข้อมูล HTML ใน VBA อาจจะดูยุ่งยากเนื่องจากขาดการสนับสนุนโดยตรงสำหรับเทคโนโลยีการเก็บข้อมูลเว็บและการจัดการเอกสารสมัยใหม่ Microsoft HTML Object Library แม้จะมีศักยภาพ เป็นปัจจุบันอาจจะไม่จัดการกับมาตรฐานเว็บสมัยใหม่ได้อย่างราบรื่นเท่ากับเทคโนโลยีใหม่ๆ

สำหรับงานแยกข้อมูล HTML และการเก็บข้อมูลเว็บที่ซับซ้อน โดยทั่วไปจะแนะนำเครื่องมือและภาษาอื่นเช่น Python พร้อมกับไลบรารี เช่น Beautiful Soup หรือ Scrapy เครื่องมือสมัยใหม่เหล่านี้มอบความยืดหยุ่นมากขึ้น ประสิทธิภาพที่ดีกว่า และเข้ากับมาตรฐานเว็บปัจจุบันได้ดีกว่า อย่างไรก็ตาม เมื่อทำงานภายในระบบนิเวศของ Microsoft Office การใช้ VBA กับ Microsoft HTML Object Library ยังคงเป็นทักษะที่มีค่า ช่วยปลดล็อคการจัดการเนื้อหา HTML โดยตรงในวิธีที่ผสานเข้ากับแอปพลิเคชั่นเช่น Excel และ Access ได้อย่างไร้รอยต่อ ให้วิธีการที่ตรงไปตรงมาสำหรับการทำงานที่เกี่ยวข้องกับการจัดการเอกสาร HTML พื้นฐานโดยไม่จำเป็นต้องออกนอกสภาพแวดล้อม VBA ที่คุ้นเคย