0

立体縦棒グラフを回転させようとしています。これまでのところ、次のものがあります。

ActiveChart.Name = "44 Chart 7"

With ActiveChart
    .SetSourceData Source:=pzx.Range("L126:M135")
    .HasTitle = False
    .HasTitle = True
    .Shapes("44 Chart 7").ThreeD.RotationX = 0
    .ChartTitle.Text = "Classification Actions"
    .ChartArea.Font.Color = RGB(0, 0, 140)
    .ChartTitle.Font.Name = "Arial"
    .ChartTitle.Font.Size = 10
    .Legend.Font.Size = 8
    .Legend.Font.Name = "Arial"
    .ChartStyle = 11
    .ChartArea.Format.Line.Visible = msoFalse
   End With

2 つの質問があります -

1) グラフに自分で積極的に名前を付けない場合、どのようにグラフの名前が付けられるかを決定するものは何ですか? 2) このコードが機能しない理由を知っていますか?

ここに私が受け取ったエラーがあります -

実行時エラー 7 メモリ不足

本当にありがとう!

4

1 に答える 1

0

オブジェクトの命名には、従わなければならない命名規則があります。チャートの場合: チャートがワークシート上にある場合、プロパティはチャートのコンテナーであるオブジェクトにName適用されます。ChartObject

With Chart
   .Parent.Name = "myChartName"
End With

また

`Sheets(1).ChartObjects(3).Name = "Name of my Chart"`

また

`Sheets(1).Charts("My old Chart Name").Name = "Name of my Chart"`

チャートの場所がわかっている場合は、シート参照を使用してチャートをポイントすると、 を使用するより安全になりActiveChartます。チャートに積極的に名前を付けない場合は、チャートのデフォルトの元の名前を使用して参照する必要があります。またはそのインデックス。

最後にこのコードを試してください。

Option Explicit

Sub createMyCharts
Dim mySheet As Worksheet
Dim mychtObject As ChartObject
Dim myChart As Chart

'-- put anything else you need to delcare and set

Set mySheet = Worksheets(1) '-- set according to your sheet

'-- delete any old leftovers to clean up
For Each mychtObject In mySheet.ChartObjects
  mychtObject.Delete
Next

'-- create new chart
Set myChart = mySheet.ChartObjects.Add(Left:=30, Width:=500, Top:=30, Height:=200).Chart

With myChart
  .ChartType = Excel.XlChartType.xl3DColumn '-- the full chart Type
  .SetSourceData(mySheet.Range("L126", "M135"), Excel.XlRowCol.xlColumns)
  .Rotation = 30
End With

'-- do anything else you need to do

サブ終了

MSDN チャートの回転への参照

試した後、ご不明な点がございましたら、コメントしていただけると助かります。:)

于 2012-12-12T06:46:14.600 に答える