2017-06-21 16 views
0

私は自分のvbaで生成するグラフの位置を変更しようとしています。現時点では、サイズを変更する場合と変更しない場合がある列からデータを取得するだけです。私は私のコードを特定した 'Chart1'を持っていないことを理解していますが、チャートの別のシートも作成しない場所をどこで宣言するのか分かりません。VBAを使用してグラフの位置を変更します

reportsheet.Select 
ActiveSheet.Range("a4", ActiveSheet.Range("a4").End(xlDown)).Select 
ActiveSheet.Shapes.AddChart.Select 

With ActiveSheet.Shapes("Chart1") 
    .Left = Range("A40").Left 
    .Top = Range("A40").Top 
End With 

答えて

0

アクティブなグラフの名前を変更してからプロパティを割り当てることができます。

は、私はこのようなチャートを作る使用

reportsheet.Select 
    ActiveSheet.Range("A4", ActiveSheet.Range("A4").End(xlDown)).Select 
    ActiveSheet.Shapes.AddChart.Select 

    ActiveChart.Parent.Name = "Chart1" 

    With ActiveSheet.Shapes("Chart1") 
     .Left = Range("A40").Left 
     .Top = Range("A40").Top 
    End With 
+0

この行をVBAに追加すると、指定された名前の項目が見つからないというランタイムエラーが発生しました。 With ActiveSheet.Shapes( "Chart1")をエラー行として強調表示します。 –

+0

一意の名前で試してください – Maddy

0

...これを試してみてください。ベローズを参照してください。

Sub test() 
    Dim Ws As Worksheet 
    Set Ws = ActiveSheet 

    InsertCharts 20, Ws 
    InsertCharts 30, Sheets("Sheet1") 
End Sub 

Sub InsertCharts(n As Integer, Ws As Worksheet) 

    Dim Cht As Shape 
    Dim t As Single, w As Integer, h As Integer, x As Integer 
    Dim i As Integer 

    With Ws 
     If .ChartObjects.Count > 0 Then 
      .ChartObjects.Delete 
     End If 

     x = 0 
     t = .Range("a26").Top 
     w = 217.1338582677 
     h = 203.5275590551 
     For i = 1 To n 

       Set Cht = .Shapes.AddChart(, x, t, w, h) 
      If i Mod 5 = 0 Then 
       t = .Range("a26").Top 
       x = x + w + 20 
      Else 
       t = t + h + 20 
      End If 

     Next i 
    End With 
End Sub 
関連する問題