Textbox on chart doesn't print in Office 2003, but does in 2007

J

Jeff Donkersgoed

I have some charts that I create through C# code on a "template" worksheet
and then copy it over to a new worksheet using the following code. When
looking at the chart.Shapes, I can see the three Textbox objects that I want
and these are the only shapes available. I can see them on the screen in
both Excel 2003 and 2007 correctly. When I print in 2003 though, the
textboxes don't appear like they do for 2007. Can anyone shed some light on
why this might be happening?

// Copy the images and charts (note index starts at 1)
for (int z = 1; z <= wsTemplate.Shapes.Count; z++)
{
((Excel.Shape)wsTemplate.Shapes.Item(z)).Copy();
wsClientPatient.get_Range("A1", "A1").Activate();
((Excel.Worksheet)app.ActiveSheet).Paste(Missing.Value, Missing.Value);
}

for (int chartNum = 1; chartNum <= 2; chartNum++)
{
chart = ((Excel.ChartObject)wsClientPatient.ChartObjects(chartNum)).Chart;
chart.ChartArea.Top = (chartNum == 1) ? 868 : 1047;
chart.ChartArea.Left = 25;

// Temporary test
for (int z = 1; z <= chart.Shapes.Count; z++)
{
object y = chart.Shapes.Item(z);
Microsoft.Office.Core.MsoShapeType yy = chart.Shapes.Item(z).Type;
}
}
 
J

Jeff Donkersgoed

I think I'm getting a bit closer...in Excel 2003, I discovered that the
"Print object" checkbox wasn't checked on my textboxes. Checking it allowed
them to show up in the print preview. Does anyone know how to set this in
code? I tried below, but the property was already set to true, so I don't
think it's the right spot. I can't find a similar checkbox in Excel 2007 to
verify.

for (int z = 1; z <= chart.Shapes.Count; z++)
{
chart.Shapes.Item(z).ControlFormat.PrintObject = true;
}
 

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