2016-04-28 6 views
1

私は数日間にわたってどこでも見てきましたが、誰も私の問題を抱えているようです。私は別のワークシートの情報を使って埋め込みチャートを作成しようとしています(サイズ変更など)VBA - シェイプ - .name - ランタイムエラー '7':メモリ不足

.nameからチャートの名前を変更しようとするたびに、上記のランタイムエラーが発生します。 このエラーを回避するために、変数.LineSubjectを.Shapes(LineSubject)列で使用しようとしましたが、シェイプの名前が見つからないというエラーが表示されました。 私はまた、人々が.Parent.Nameを使用していることを発見しました。私は名前を変更することができますが、これは.Shapes(NAME)スペースにそれを入力することはできません。

Set wLineGraphs = ActiveWorkbook.Sheets("Graphs") 
wLineGraphs.Activate 

ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select 
Set LineChart = ActiveChart 
    With LineChart 
     .ChartType = xlLineMarkers 
     .SetSourceData Source:=wGraphd.Range("A96:K99") 
     .ApplyLayout (3) 
     .ChartTitle.Text = HistRange 
     .Name = GraphNumber <-- Error Here 
     '.Parent.Name = GraphNumber 
    'Parent.Name spits out "Chart 2" 
     'LineSubject = .Name 
    '.Name spits out "Graph Chart 2" 
     '.Shapes("Chart 2").Top = wLineGraphs.Cells(360, 2).Top 
     '.Shapes(LineSubject).Left = wLineGraphs.Cells(360, 2).Left 
    End With 

私が探しています最終的な結果は、.Shapesのチャート(INSERTNAME)の名前を使用できるようにすることですので、私は自由にチャートを操作することができています。

ありがとうございました。 p.s私はExcel 2016を使用していますが、これもExcel 2010で試してみましたが、同じエラーが発生しました。

答えて

0

あなたはChartの代わりにShapeオブジェクトに.Nameプロパティを設定する必要があります。

With ActiveSheet.Shapes.AddChart(332, xlLineMarkers) 
    .Name = "name" 
    With .Chart 
     .ChartType = xlLineMarkers 
     .ApplyLayout 3 
     .SetSourceData Source:=ActiveSheet.Range("A96:K99") 
     .ChartTitle.text = "title" 
    End With 

End With 
+0

はどうもありがとうございます!それが私の問題を解決しました! <3 –

+0

それがうまくいったら、答えに合格とフラグを立てるべきでしょうか? –