Excel 2010 で ChartWizard メソッドを使用したマクロを実行してレーダー チャートを作成すると強制終了する場合がある

現象

Microsoft Excel 2010 で、パラメーター Source および Gallery が同じ ChartWizard メソッドで構成されているマクロを実行してレーダー チャートを作成すると、以下のエラー メッセージが表示され、Excel 2010 が強制終了します。

問題が発生したため、Microsoft Excel を終了します。

また、グラフの参照範囲がピボットテーブルであり、ピボットテーブル内のセルを選択したままで、サンプル コードのマクロを実行してレーダー チャートを作成した場合は、Excel 2010 は強制終了しませんが、レーダーチャートが作成されずに棒グラフが作成されます。

パラメーター Source および Gallery が同じ ChartWizard メソッドで構成されているサンプル コード :
Sub Macro1()
Range("A1:C6").Value = 1

ActiveSheet.ChartObjects.Add(0, 120, 300, 300).Select

With ActiveChart
.ChartWizard _
Source:=ActiveSheet.Range("A1:C6"), _
Gallery:=xlRadar, Format:=1, PlotBy:=xlColumns, _
CategoryLabels:=1, SeriesLabels:=1
End With

End Sub

原因

この現象は、レーダー チャートで使用するパラメーター Source および Gallery が ChartWizard メソッドで構成されている場合、Excel 2010 の動作に不具合があるために発生します。

回避策

この現象を回避するには、パラメーター Source と Gallery を別々に設定するように ChartWizard メソッドを構成してください。

パラメーター Source と Gallery を別々に設定したサンプル コード :
Sub WorkaroundMacro()

Range("A1:C6").Value = 1

ActiveSheet.ChartObjects.Add(0, 120, 300, 300).Select

ActiveChart.ChartType = xlRadar
ActiveChart.SetSourceData Source:=ActiveSheet.Range("A1:C6")

With ActiveChart
.ChartWizard _
Gallery:=xlRadar, Format:=1, PlotBy:=xlColumns, _
CategoryLabels:=1, SeriesLabels:=1
End With

End Sub

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細

問題の再現手順 1

  1. Excel 2010 を起動し、A1 から C6 に 1 を入力します。
  2. Visual Basic Editor を起動して、以下のようなパラメーター Source および Gallery が同じ ChartWizard メソッドで構成されたコードを入力し、実行します。この再現手順では、A1:C6 に入力されている値 1 を基にグラフを作成するコードの構成となります。実際に参照するデータ範囲によって、ActiveSheet.Range の値は変更されます。
    Sub Macro1()

    ActiveSheet.ChartObjects.Add(0, 120, 300, 300).Select

    With ActiveChart
    .ChartWizard _
    Source:=ActiveSheet.Range("A1:C6"), _
    Gallery:=xlRadar, Format:=1, PlotBy:=xlColumns, _
    CategoryLabels:=1, SeriesLabels:=1
    End With

    End Sub

結果

以下のエラー メッセージが表示され、Excel 2010 が強制終了します。

問題が発生したため、Microsoft Excel を終了します。

問題の再現手順 2

  1. Excel 2010 を起動し、ピボット テーブルを作成します。この再現手順では、A1:C6 にピボット テーブルを作成したとします。実際にピボットテーブルを作成するセルの範囲によって、ActiveSheet.Range の値は変更されます。
  2. Visual Basic Editor を起動して、以下のようなパラメーター Source および Gallery が同じ ChartWizard メソッドで構成されたコードを入力します。
    Sub Macro1()

    ActiveSheet.ChartObjects.Add(0, 120, 300, 300).Select

    With ActiveChart
    .ChartWizard _
    Source:=ActiveSheet.Range("A1:C6"), _
    Gallery:=xlRadar, Format:=1, PlotBy:=xlColumns, _
    CategoryLabels:=1, SeriesLabels:=1
    End With

    End Sub
  3. 参照範囲となるピボット テーブル内の任意のセルをクリックした状態で、手順 2 のコードを実行しレーダー チャートを作成します。

結果

レーダー チャートが作成されず、棒グラフが作成されます。
プロパティ

文書番号:2416648 - 最終更新日: 2016/10/04 - リビジョン: 1

フィードバック