|
ビール腹子 さん、こんばんわ。
> With ActiveChart
.SetSourceData Source:=Sheets("Sheet1").Range(Cells(RowPos, 20), Cells(RowPos + i, 20 + m))
.ChartType = xlSurface ’----ここでエラーが出ますミ(ノ;_ _)ノ =3
> .Location Where:=xlLocationAsObject, Name:="Sheet1"
> .HasTitle = True
> .ChartTitle.Text = Cells(RowPos - 4, 1).Value
> .HasLegend = False
> End With
等高線のグラフは作成元のデータを指定しないと、普通に手動で作成してもエラーになります(2つ以上のデータ系列が必要)。
↓動作確認様に必要な部分だけ取り出してあります。
Private Sub commandbutton1_click()
Dim chtobj As ChartObject
Dim Sht1 As Worksheet
Set Sht1 = ActiveSheet ' = Sheet1?
'適当に数値を入れました
RowPos = 10: m = 3: i = 3
With Sht1
Set chtobj = .ChartObjects.Add(.Cells(RowPos, 7).Left, .Cells(RowPos, 7).Top, 200, 100)
End With
With chtobj.Chart
.SetSourceData Source:=Sht1.Range(Sht1.Cells(RowPos, 20), Sht1.Cells(RowPos + i, 20 + m))
.ChartType = xlSurface '----ここでエラーが出ますミ(ノ;_ _)ノ =3
.HasTitle = True
.ChartTitle.Text = Sht1.Cells(RowPos - 4, 1).Value
.HasLegend = False
End With
Set Sht1 = Nothing
End Sub
順番変えたら動きました。
あと、ActiveSheetを使用(Rangeとかの前を省略するのもActiveSheet)していますが、Sheet1がActiveSheetでない可能性がないとはいえないので、エラー回避のためにSetして参照するようにしてあります。
|
|