caret position & tables

D

David Thielen

Hi;

A couple of questions when I am accessing Word through the COM API

1. How can I determine if the caret is in a table?
2. How can I determine the row & column of the cell the caret is in?
3. How can I get the text for a cell in a table?
4. How can I insert text at the start of a specific cell in a table?

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm
 
J

Jialiang Ge [MSFT]

Hello Dave,
1. How can I determine if the caret is in a table?
applicationObject.Selection.Range returns the current caret. It has a
method 'InRange' which can help to determine whether the range is in a
table:
for (int i = 1; i <= applicationObject.ActiveDocument.Tables.Count; i++)
{
if
(applicationObject.Selection.Range.InRange(applicationObject.ActiveDocument.
Tables.Range))
{
MessageBox.Show("In Range");
}
}
2. How can I determine the row & column of the cell the caret is in?
To determine the row and column of the cell the caret is in, we could
iterate the cells of a table to find the target cell with the method
'InRange'. For instance,
Word.Table table = applicationObject.ActiveDocument.Tables;
for (int j = 1; j <= table.Rows.Count; j++)
{
for (int k = 1; k <= table.Columns.Count; k++)
{
if (applicationObject.Selection.Range.InRange(table.Cell(j,
k).Range))
{
MessageBox.Show("row: " + j.ToString() + " column: " +
k.ToString());
break;
}
}
}
3. How can I get the text for a cell in a table?
ThisDocument.Tables(tableIndex).Cell(rowIndex, columnIndex).Range.Text
4. How can I insert text at the start of a specific cell in a table?
ThisDocument.Tables(tableIndex).Cell(rowIndex,
columnIndex).Range.InsertBefore "just a try"

Please let me know if you have any other concerns, or need anything else.

Sincerely,
Jialiang Ge ([email protected], remove 'online.')
Microsoft Online Community Support

==================================================
For MSDN subscribers whose posts are left unanswered, please check this
document: http://blogs.msdn.com/msdnts/pages/postingAlias.aspx

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express/Windows Mail, please make sure
you clear the check box "Tools/Options/Read: Get 300 headers at a time" to
see your reply promptly.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
D

David Thielen

thank you, thank you, thank you

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm




Jialiang Ge said:
Hello Dave,
1. How can I determine if the caret is in a table?
applicationObject.Selection.Range returns the current caret. It has a
method 'InRange' which can help to determine whether the range is in a
table:
for (int i = 1; i <= applicationObject.ActiveDocument.Tables.Count; i++)
{
if
(applicationObject.Selection.Range.InRange(applicationObject.ActiveDocument.
Tables.Range))
{
MessageBox.Show("In Range");
}
}
2. How can I determine the row & column of the cell the caret is in?
To determine the row and column of the cell the caret is in, we could
iterate the cells of a table to find the target cell with the method
'InRange'. For instance,
Word.Table table = applicationObject.ActiveDocument.Tables;
for (int j = 1; j <= table.Rows.Count; j++)
{
for (int k = 1; k <= table.Columns.Count; k++)
{
if (applicationObject.Selection.Range.InRange(table.Cell(j,
k).Range))
{
MessageBox.Show("row: " + j.ToString() + " column: " +
k.ToString());
break;
}
}
}
3. How can I get the text for a cell in a table?
ThisDocument.Tables(tableIndex).Cell(rowIndex, columnIndex).Range.Text
4. How can I insert text at the start of a specific cell in a table?
ThisDocument.Tables(tableIndex).Cell(rowIndex,
columnIndex).Range.InsertBefore "just a try"

Please let me know if you have any other concerns, or need anything else.

Sincerely,
Jialiang Ge ([email protected], remove 'online.')
Microsoft Online Community Support

==================================================
For MSDN subscribers whose posts are left unanswered, please check this
document: http://blogs.msdn.com/msdnts/pages/postingAlias.aspx

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express/Windows Mail, please make sure
you clear the check box "Tools/Options/Read: Get 300 headers at a time" to
see your reply promptly.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 

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