1

ワークシートに配置した 5 つの ActiveX テキストボックスからグラフを作成しようとしています。最初にユーザーが値を入力してから、グラフを生成するボタンを押します。

これは私のアプローチですが、うまくいきません。「オブジェクトが必要です」のようなものがあります

Private Sub CommandButton1_Click()

Dim arKurse(4) As Double

arKurse(0) = Conver.ToDouble(TextBox1.Text)
arKurse(1) = Conver.ToDouble(TextBox2.Text)
arKurse(2) = Conver.ToDouble(TextBox3.Text)
arKurse(3) = Conver.ToDouble(TextBox4.Text)
arKurse(4) = Conver.ToDouble(TextBox5.Text)


Dim oChtObj As ChartObject
Set oChtObj = ActiveSheet.ChartObjects.Add(Left:=445, Width:=385, Top:=10, Height:=245)

With oChtObj.Chart
    .SeriesCollection.NewSeries
    .SeriesCollection.Values = arKurse
    .SeriesCollection.XValues = Array("1", "2", "3", "4", "5")

    .ChartType = xlLine
    .HasLegend = False
    .HasTitle = True
    .ChartTitle.Caption = "Chart"

End With

End Sub
4

1 に答える 1

2

うまくいかないことがいくつかあります

  1. カスタム メソッドを使用する正当な理由がない限り、Conver.ToDouble は CDbl にする必要がありますか?
  2. TextBox.Text は、ユーザーフォームの Textbox.value である必要があり、テキストボックスの場所をその親で修飾するのに最適です。(この場合は Userform1 ですが、テキストボックスがワークシート上にある場合は Sheet1 になる可能性があります)
  3. どのシリーズコレクションを定義する必要がありますか

以下はうまくいけば動作するように更新されています

Option Explicit

Sub SetupUserformToTest()
UserForm1.Show
UserForm1.TextBox1.Value = 1
UserForm1.TextBox2.Value = 2
UserForm1.TextBox3.Value = 3
UserForm1.TextBox4.Value = 4
UserForm1.TextBox5.Value = 1
CommandButton1_Click
End Sub

Private Sub CommandButton1_Click()

Dim arKurse(4) As Double

arKurse(0) = CDbl(UserForm1.TextBox1.Value)
arKurse(1) = CDbl(UserForm1.TextBox2.Value)
arKurse(2) = CDbl(UserForm1.TextBox3.Value)
arKurse(3) = CDbl(UserForm1.TextBox4.Value)
arKurse(4) = CDbl(UserForm1.TextBox5.Value)

Dim oChtObj As ChartObject
Set oChtObj = ActiveSheet.ChartObjects.Add(Left:=445, Width:=385, Top:=10, Height:=245)

With oChtObj.Chart
    .SeriesCollection.NewSeries
    'Assumed series 1
    .SeriesCollection(1).Values = arKurse
    .SeriesCollection(1).XValues = Array("1", "2", "3", "4", "5")

    .ChartType = xlLine
    .HasLegend = False
    .HasTitle = True
    .ChartTitle.Caption = "Chart"
End With

End Sub
于 2012-10-03T12:43:38.993 に答える