Sólo tienes que poner una referencia a "Microsoft XML" en tu programa. Creas una instancia de un objeto DOMDocument, Y cargas el documento. Para tener acceso a las etiquetas que te interesan utilizas los métodos definidos en el éstandar DOM. Por ejemplo:
Código:
Option Explicit
Dim DOMDoc As MSXML2.DOMDocument
Private Sub Form_Load()
Dim nodo As MSXML2.IXMLDOMNode
Dim nodos As MSXML2.IXMLDOMNodeList
Set DOMDoc = New MSXML2.DOMDocument
DOMDoc.Load app.Path & "\XMLDoc.xml"
'Estructura del XML
'<familia>
' <nombre id="ROOT">Productos</n>
' <familia>
' <nombre id="DI">Diodos</nombre>
' <producto id="DI-RE">Rectificadores</productos>
' <producto id="DI-ZE">Zener</productos>
' </familia>
' .....
'</familia>
'Para obtener el contenido de un nodo
'siguiendo la estructura del documento
Set nodo = DOMDoc.firstChild.firstChild
Debug.Print nodo.Attributes.getNamedItem("id").nodeValue
'Imprime "ROOT"
Debug.Print nodo.firstChild.nodeValue
'Imprime "Productos"
'Obtener una lista de nodos por el nombre de etiqueta
Set nodos = DOMDoc.getElementsByTagName("familia")
For Each nodo In nodos
'Imprime el nombre de cada familia en la lista
Debug.Print nodo.firstChild.firstChild.nodeValue
Next nodo
End Sub
En cuanto al desempeño con archivos grandes, sólo he usado código como este con archivos de no mas de 1MB, y funciona bien. La ventaja es que puede acceder de un modo intuitivo a todas las etiquetas de tu documento.
Saludos.