Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 889535
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T13:35:00+00:00 2026-05-15T13:35:00+00:00

I have an Excel workbook that is used as a starting point to generate

  • 0

I have an Excel workbook that is used as a starting point to generate a user-fillable form in our internal system. As an aide to the users creating these workbook, I’m trying to add a preview function, that takes that spreadsheet, does some VBA magic to generate an HTML file, and then display that in their browser.

I have the basic structure done, using MSXML to write out XHTML, so far, so good. Now, I’m hitting an issue with embedding the style sheet.

The style sheet is contained in a string in the VBA code, and I’m trying to add it into a <style> tag in the header, which is straightforward. Where I’m having the issue is I’m using CSS selectors in the stylesheet, with > causing me issues, since MSXML wants to encode that as a XML escape sequence, breaking the CSS. I’ve tried adding the stylesheet within a CDATA block, but then the browser just ignores it.

tl;dr: How can I embed a stylesheet containing > into an HTML file generated with MSXML?

EDIT: Here’s a block of code that reproduces this behavior. Put it into a Sub in Excel or a VBA-using program of your choice, run it, and view the source:

Dim doc As DOMDocument
Dim htmlRoot As IXMLDOMElement
Dim bodyRoot As IXMLDOMElement
Dim headRoot As IXMLDOMElement
Dim style As IXMLDOMElement

Set doc = New DOMDocument
Set htmlRoot = doc.createElement("html")
Set bodyRoot = doc.createElement("body")
Set headRoot = doc.createElement("head")

Set style = doc.createElement("style")
style.appendChild doc.createTextNode(".section>.title{font-weight: bold;}")
style.setAttribute "type", "text/css"

headRoot.appendChild style

htmlRoot.appendChild headRoot
htmlRoot.appendChild bodyRoot

doc.appendChild htmlRoot

Dim fs As FileSystemObject
Dim sh
Dim tempFolder As String
Set fs = New FileSystemObject
Set sh = CreateObject("WScript.Shell")
tempFolder = fs.GetSpecialFolder(TemporaryFolder)

Dim fileName As String
fileName = tempFolder + "\preview.html"
doc.Save fileName
sh.Run fileName
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T13:35:00+00:00Added an answer on May 15, 2026 at 1:35 pm

    Perhaps instead of trying to store CSS characters which will be interpreted as XML markup, you could produce the XHTML using your existing method, but instead of inserting the CSS using MSXML, insert a placeholder, and replace it after you have finished building the XHTML. Something like this:

    style.appendChild doc.createTextNode("{css}")
    
    ' some more XHTML building here.
    
    Dim html As String
    Dim css As String
    
    css = ".section>.title{font-weight: bold;}"
    html = Replace(doc.Text, "{css}", css)
    
    ' Save the html here...
    

    This way, you can embed whatever you want in the XHTL, without having to worry about MSXML trying to escape it for you.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have an excel workbook that is used to track tasks by project. Each
I have an Excel 2003 workbook that contains a macro to copy certain of
I have a program that spits out an Excel workbook in Excel 2003 XML
I have some data that's currently stored in an Excel workbook. It makes sense
I have an Excel 2007 workbook that contains an ODBC data connection (to FoxPro,
I have a macro in my excel workbook that updates a specific record in
I have an Excel 2007 workbook that contains tables of data that I'm importing
I have an Excel workbook, which using VBA code that opens another workbook, copies
I have an embedded PowerPoint presentation in an Excel workbook. How can I edit
I have around 25 worksheets in my workbook (Excel spreadsheet). Is there a way

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.