Microsoft KB Archive/186219

= XL97: Excel Quits Unexpectedly Running Macro That Creates Chart =

Article ID: 186219

Article Last Modified on 10/10/2006

-

APPLIES TO


 * Microsoft Excel 97 Standard Edition

-



This article was previously published under Q186219





SYMPTOMS
If you use a Microsoft Visual Basic for Applications macro to create a chart, you may receive one of the following errors:

In Windows 95
This program has performed an illegal operation and will be shut down. If the problem persists, contact the program vendor.

If you click Details, you receive an error message similar to the following:

EXCEL caused an invalid page fault in module Excel.exe at 0137:30118912.

In Windows NT
An application error has occurred and an application log is being generated.

EXCEL.exe

Exception: access violation(0xc0000005), Address: 0x30125a30

After displaying the error messages, Microsoft Excel 97 for Windows quits.



CAUSE
You may encounter the problem described in the "Symptoms" section, if both of the following conditions are true:


 * You are using the xlLocationAsObject constant for the Where argument of the Location method. -and-


 * You are using an invalid string for the Name argument of the Location method.



WORKAROUND
To prevent this problem with your macro, use a valid worksheet name for the Name argument of the Location method.



STATUS
Microsoft has confirmed this to be a problem in Microsoft Excel 97 for Windows. This problem no longer occurs in Microsoft Excel 2000.



MORE INFORMATION
The following steps demonstrate how this problem occurs.

 Save and close all open workbooks, and then open a new workbook. Enter the following in Sheet1:

A1: 1

A2: 2

A3: 3

 Press ALT+F11 to start the Visual Basic Editor. On the Insert menu, click Module.  Enter the following code in the module: Sub AddChart Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData _ Source:=Sheets("Sheet1").Range("A1:A3"),PlotBy:=xlColumns

'At this point, the active sheet is a Chart sheet with a column chart 'and ActiveSheet.Name will return "Chart1" as a string value.

ActiveChart.Location _ where:=xlLocationAsObject, Name:=ActiveSheet.Name End Sub </li> On the File menu, click "Close and Return to Microsoft Excel."</li> On the File menu, click Save.</li> Press ALT+F8, select AddChart in the list of macros, and then click Run. NOTE: Microsoft Excel will unexpectedly quit.</li></ol>

To prevent this from occurring, follow these steps:

<ol> Restart Microsoft Excel.</li> Open the workbook you created in the previous list of steps.</li> Press ALT+F11 to start the Visual Basic Editor.</li>  Modify the AddChart macro, so that it is similar to the following macro: Sub AddChart Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData _ Source:=Sheets("Sheet1").Range("A1:A3"),PlotBy:=xlColumns

'At this point, the active sheet is a Chart sheet with a column chart 'and ActiveSheet.Name will return "Chart1" as a string value.

ActiveChart.Location _ where:=xlLocationAsObject, Name:=ActiveSheet.Name End Sub </li></ol>

<div class="references_section">