storing cell content in a string

R

Rob

Hi all!

I try to store a cell content (text, tab, tab leader #4) in a text
string for later use.

strCellText = ActiveDocument.Tables(1).Rows(1).Cells(1).Range.Text
discards the tab including the leader.

strCelltext contains text and vbCr 's only.

How does one grab the cell content including tabs and all?

TIA - Rob
 
J

Jay Freedman

Hi all!

I try to store a cell content (text, tab, tab leader #4) in a text
string for later use.

strCellText = ActiveDocument.Tables(1).Rows(1).Cells(1).Range.Text
discards the tab including the leader.

strCelltext contains text and vbCr 's only.

How does one grab the cell content including tabs and all?

TIA - Rob

Hi Rob,

If you use the Asc() function to examine the values of the characters
in strCellText, you should find that there is a 9 that represents the
tab, and a 13 and a 7 that together represent the end-of-cell marker.

However, it isn't possible to capture the leader in a string variable.
For one thing, it isn't a property of the tab (which is a simple
character, vbTab, with the ASCII value 9) -- it's a property of the
*tab stop* in the current paragraph.

If you run this code, you'll see what the setting is for the first
tabstop in the first paragraph in the cell:

Dim oCell As Cell
Dim ldr As WdTabLeader
Set oCell = ActiveDocument.Tables(1).Cell(1, 1)
ldr = oCell.Range.Paragraphs(1).TabStops(1).Leader
MsgBox ldr

The numbers shown are 1 less than the ones in the Format > Tabs
dialog, with spaces (None) being 0, dots being 1, dashes being 2, and
underline being 3. (There are also two kinds you can set from a macro
that aren't available in the dialog.)

You would have to store the leader value in a separate variable (and
the same goes for the tabstop's position).

A better idea, if you have control of how the document is initially
created, is to use a specific paragraph style that has the tabstop
position and leader defined in it. Get the name of the style of the
paragraph when you store its text in the string, and reapply that
style when you use the string later.
 
E

Ed

Please excuse me for jumping in like this . . .
If you get the document and have no control over the initial creation, can
you capture the settings for that paragraph and define a new style to then
apply elsewhere?

Ed
 
J

Jay Freedman

Hi Ed,

Yes, you could do something like this:

Dim oCell As Cell
Dim oPara As Paragraph
Dim CellStyle As Style

Set oCell = ActiveDocument.Tables(1).Cell(1, 1)
Set oPara = oCell.Range.Paragraphs(1)

With oPara
Set CellStyle = ActiveDocument.Styles.Add( _
Name:=.Style & "+Tab", _
Type:=wdStyleTypeParagraph)
CellStyle.BaseStyle = ActiveDocument.Styles(.Style)

CellStyle.ParagraphFormat.TabStops = .TabStops
End With

ActiveDocument.Tables(1).Cell(2, 2).Range _
.Paragraphs(1).Style = CellStyle
 
E

Ed

Thanks, Jay. I appreciate the boost.

Ed

Jay Freedman said:
Hi Ed,

Yes, you could do something like this:

Dim oCell As Cell
Dim oPara As Paragraph
Dim CellStyle As Style

Set oCell = ActiveDocument.Tables(1).Cell(1, 1)
Set oPara = oCell.Range.Paragraphs(1)

With oPara
Set CellStyle = ActiveDocument.Styles.Add( _
Name:=.Style & "+Tab", _
Type:=wdStyleTypeParagraph)
CellStyle.BaseStyle = ActiveDocument.Styles(.Style)

CellStyle.ParagraphFormat.TabStops = .TabStops
End With

ActiveDocument.Tables(1).Cell(2, 2).Range _
.Paragraphs(1).Style = CellStyle
 
R

Rob

Jay Freedman wrote:

....
A better idea, if you have control of how the document is initially
created, is to use a specific paragraph style that has the tabstop
position and leader defined in it. Get the name of the style of the
paragraph when you store its text in the string, and reapply that
style when you use the string later.

You're right, this *is* a better idea.

Tanks - Rob
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top