Your html code should look like:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> </head> <body> </body> </html>
To insert title, meta and link as children of head using innerHTML you can use:
Sub innerHTMLChildren123()
Dim strHTMLTitle As String
Dim strHTMLMeta As String
Dim strHTMLLink As String
Dim objHead As IHTMLElement
Set objHead = ActiveDocument.all.tags("head").Item(0)
strHTMLLink = _
vbCrLf & _
vbTab & _
"<link>"
strHTMLMeta = _
vbCrLf & _
vbTab & _
"<meta>"
strHTMLTitle = _
vbCrLf & _
vbTab & _
"<title>" & _
vbCrLf & _
vbTab & _
"</title>"
objHead.innerHTML = strHTMLTitle
objHead.innerHTML = _
objHead.innerHTML & _
strHTMLMeta
objHead.innerHTML = _
objHead.innerHTML & _
strHTMLLink
End Sub
After
objHead.innerHTML = strHTMLTitle
The HTML will be:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> </title> </head> <body> </body> </html>
After
objHead.innerHTML = _ objHead.innerHTML & _ strHTMLMeta
The HTML will be:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> </title> <meta> </head> <body> </body> </html>
After
objHead.innerHTML = _ objHead.innerHTML & _ strHTMLLink
Your HTML code will be:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> </title> <meta> <link> </head> <body> </body> </html>
Other methods to accomplish the same thing:
innerHTML, all 3 children at once
innerHTML, Child3, Child2, Child1
innerHTML, Child1, Child3, Child2 using innerHTML
innerHTML, Child1, Child2, Child3 using outerHTML
insertAdjacentHTML "beforeBegin, strHTML
insertAdjacentHTML "afterBegin, strHTML
insertAdjacentHTML "beforeEnd, strHTML
insertAdjacentHTML "afterEnd, strHTML