This article was previously published under Q168749
The MSChart control does not expose a method that enables you to print the chart directly. However, you can use the PrintForm method to print the entire form containing the MSChart control. This article describes a method for printing only the chart.
You can print the chart of an MSChart control by copying the contents of the control using the EditCopy method, retrieveing the chart from the Clipboard, and then printing the picture via the PaintPicture method of the Printer object:
Start a new Standard EXE project. Form1 is created by default.
Click Components on the Project menu. Check "Microsoft Chart Control" and click OK.
Draw an MSChart control and a CommandButton on Form1.
Add the following code to the Click event of Command1 on Form1:
MSChart1.EditCopy DoEvents ' may be needed for large datasets Printer.Print " " Picture1.PaintPicture Clipboard.GetData(), 0, 0 Printer.EndDoc
Run the application. Click the CommandButton to print the chart to your default printer.
NOTE: The EditCopy method copies both the data and the picture of the chart to the clipboard. Then, when you use a Paste command to retrieve the contents of the clipboard, the receiving application determines whether the picture or the data is pasted. In this example, PaintPicture requests the clipboard data and receives a picture of the chart rather than the chart's data. You could also specify this with Clipboard.GetData(vbCFBitmap).