Solved

Insert Cross Reference by vba and add  \* Charformat  to it

Posted on 2010-09-18
3
1,823 Views
Last Modified: 2012-05-10
Hi experts

I'm inserting cross-references into a document from a userform, eg of the insert method below.
 Selection.InsertCrossReference ReferenceType:=strLabel, _
        ReferenceKind:=wdOnlyLabelAndNumber, ReferenceItem:=n

When it puts in a Table Caption for instance it inserts the formatting of the caption which is bolded. I've tried a few ways of getting around this (like applying unbold) but on update it reverts back to bold even with unbold character style applied. Then I stumbled across something tonight which I can add into the cross reference field that has been created. And that is \* Charformat . But I can't work out how to get it to automatically come in like this. At the moment I have to right-click on the cross-reference and then click Edit Field > Field Codes > Options > Field Specific Switches > then I paste \* Charformat  down in the field code text box. It is working when I do it this way but I need to set that step by code.

Experts how can I do this through VBA code as this is a very long-winded step?
0
Comment
Question by:Fi69
  • 2
3 Comments
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 33707687
The method does not return the field, nor does the selction contin it, so we have to look backwards for the field and edit it.


Sub InsertXRef()

Dim fld As Field

Dim rng As Range

Selection.InsertCrossReference ReferenceType:="Figure", _

        ReferenceKind:=wdOnlyLabelAndNumber, ReferenceItem:="1"

        Selection.MoveStart wdCharacter, -3

Set rng = Selection.Range

Do Until rng.Fields.Count = 1

    rng.MoveStart wdCharacter, -1

Loop

Set fld = rng.Fields(1)

fld.Code.Text = fld.Code.Text & " \* Charformat"

End Sub

Open in new window

0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 33707695
Why are typos invisible before submission, and obvious afterwards?

"selction contin it," should be "selection contain it,"
0
 

Author Comment

by:Fi69
ID: 33709500
I know exactly what you mean about the typos!

That code works brilliantly. I just had to add fld.update at the end so that it appeared correctly in my document.

Thank you so much Graham!
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Suggested Solutions

This article describes how to use the Send to Mail Recipient command. The instructions apply generally to Office 2007 and later versions, but Microsoft® Word 2013 was used for the specific steps and figures.  What is Send to Mail Recipient? Send…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Learn how to create and modify your own paragraph styles in Microsoft Word. This can be helpful when wanting to make consistently referenced styles throughout a document or template.
This Micro Tutorial well show you how to find and replace special characters in Microsoft Word. This is similar to carriage returns to convert columns of values from Microsoft Excel into comma separated lists.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now