Встала такая задача.
Нужно написать макрос к экселевской таблице, чтоб открывал xml и раскладывал содержимое по таблице.
Подскажите, плиз, где почитать по теме?
Пока не понятно: можно ли затянуть xml в какой-нибудь объект навроде XDocument в C#? Или, может быть, можно десериализовать xml в объект класса?
Заранее прошу прощения за бестолковые вопросы. Дела с VBA раньше не имел.
Здравствуйте, Mihas, Вы писали:
M>Нужно написать макрос к экселевской таблице, чтоб открывал xml и раскладывал содержимое по таблице.
M>Подскажите, плиз, где почитать по теме?
Microsoft Core XML Services (MSXML) с SDK
скачиваешь и читаешь ихний help.
M>Пока не понятно: можно ли затянуть xml в какой-нибудь объект навроде XDocument в C#? Или, может быть, можно десериализовать xml в объект класса?
можно, и в оч. похожий на .Net'овский
Dim clsXDoc As Object ' Dim clsXDoc As MSXML2.DOMDocument60
Set clsXDoc = CreateObject("MSXML2.DOMDocument.6.0") ' Set clsXDoc = new MSXML2.DOMDocument60
If clsXDoc.Load("...\Notepad++\config.xml") Then
Dim clsXNode As Object ' Dim clsXNode As MSXML2.IXMLDOMNode
Set clsXNode = clsXDoc.selectSingleNode("//GUIConfig[@name='ToolBar']")
If Not clsXNode Is Nothing Then
MsgBox clsXNode.nodeName & "=" & clsXNode.Text
End If
Else
MsgBox "Err!"
End If
Чтоб вместо CreateObject использовать то, что закоментировано, надо лезть в tools->references и там подключать "Microsoft XML, 6.0". По умолчанию в системе уже есть "Microsoft XML, x.x", но они от версии к версии разные немного, и ранние версии с багами и тормознутее, и по умолчанию help'а нет, но ничё ставить ненадо — так что сам решай.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков