Word VBA "Saveas" without hidden text? -
is there way programmatically saveas microsoft word .docm without including hidden text?
i'm having users click button few other things , opens save dialog save .docm file .html file, using in word vb editor:
with dialogs(wddialogfilesaveas) .format = wdformathtml .show end
it saves appears on page saves paragraphs hidden. (they're hidden in web display of html page, hidden content still in .html, marked mso-hideall
tags.) save content not hidden, if possible, it's not in html file @ all.
i don't see provides here, i'm wondering if might know of way using vb.
i've been working on deleting hidden text using vba, it's tricky because have show first, select it, delete it, , parts hidden different each time depending on user selects in word .docm document.
update:
here's complete code have now:
public stractiveoption string private sub optionconcept_click() stractiveoption = "optionconcept" bookmarks("concepttext").range.font.hidden = false bookmarks("tasktext").range.font.hidden = true bookmarks("reftext").range.font.hidden = true end sub private sub optiontask_click() stractiveoption = "optiontask" bookmarks("tasktext").range.font.hidden = false bookmarks("concepttext").range.font.hidden = true bookmarks("reftext").range.font.hidden = true end sub private sub optionreference_click() stractiveoption = "optionreference" bookmarks("reftext").range.font.hidden = false bookmarks("concepttext").range.font.hidden = true bookmarks("tasktext").range.font.hidden = true end sub private sub formatsave_click() 'concept content = 3 'task steps = 4 'referencedata = 5 select case stractiveoption case "optionconcept" activedocument.contentcontrols(4).delete activedocument.contentcontrols(5).delete case "optiontask" activedocument.contentcontrols(3).delete activedocument.contentcontrols(5).delete case "optionreference" activedocument.contentcontrols(3).delete activedocument.contentcontrols(4).delete case else msgbox "invalid option" end select dialogs(wddialogfilesaveas) .format = wdformathtml .show end end sub
what does: there 3 option buttons on page, , content controls hidden or unhidden depending on 1 user selects. code in private sub formatsave_click()
reads 1 selected , tries delete appropriate hidden text.
problems:
everything in first subs works perfectly, down private sub formatsave_click()
. after that, seems not able see hidden contentcontrols in order delete them. tried adding after 'private sub formatsave_click()'
activewindow.view.showhiddentext = true
but doesn't seem work.
also lot easier select content controls tag instead of index. tried this, without success:
activedocument.selectcontentcontrolsbytag("tasksteps").delete
"tasksteps" being tag name control (4).
update ii
(suggestion stuartd)
this isn't working delete hidden text, maybe don't have formatted correctly?
private sub formatsave_click() selection.find.clearformatting selection.find.font.hidden = true selection.find.replacement.clearformatting selection.find .text = "" .replacement.text = "" .forward = true .wrap = wdfindcontinue .format = true end selection.find.execute replace:=wdreplaceall end sub
solution:
okay got original code work. happening:
vb deleted contentcontrols(4)
i next told delete contentcontrols(5)
except now, (4) deleted, contentcontrols(5) contentcontrols(4).
so changed numbering shown below, , works, , deletes correct ones:
private sub formatsave_click() 'concept content = 3 'task steps = 4 'referencedata = 5 activedocument.activewindow.view.showhiddentext = true select case stractiveoption case "optionconcept" activedocument.contentcontrols(4).delete activedocument.contentcontrols(4).delete case "optiontask" activedocument.contentcontrols(3).delete activedocument.contentcontrols(4).delete case "optionreference" activedocument.contentcontrols(3).delete activedocument.contentcontrols(3).delete case else msgbox "invalid option" end select end sub
i looked @ debug telling me, stopping on second deletion in each series, , realized going on.
thanks suggestions.
Comments
Post a Comment