2017-08-21 1 views
0

Excelでツールを作成しようとしています。私の最初の問題は、ワークシートにラベルやテキストボックスを確実にインスタンス化できないことです。私は現在以下のコードを持っています。vbaを使用してワークシートでActiveXコントロールをインスタンス化する

Sub Test2() 
Dim Schedule As Worksheet 
Set Schedule = Worksheets("Schedule") 

'Creates the row number 
Schedule.OLEObjects.Add ClassType:="Forms.Label.1" 
With Worksheets("Schedule").Label1 
.Caption = 1 
.width = 18 
.Height = 18 
.Top = 0 
.Left = 0 
.SpecialEffect = 1 
.BackColor = &H8000000F 
.TextAlign = 2 
End With 

End Sub 

と自分で

Sub Test3() 
Dim Schedule As Worksheet 
Set Schedule = Worksheets("Schedule") 

Schedule.OLEObjects.Add ClassType:="Forms.TextBox.1" 

With Worksheets("Schedule").TextBox1 
.Text = "Task Name" 
.width = 200 
.Height = 18 
.Top = 0 
.Left = 18 
.SpecialEffect = 0 
.BackColor = &H80000005 
.TextAlign = 1 
.BorderStyle = 1 
End With 

End Sub 

これらの作業の両方をしていますが、その後、他のエラーが発生したものを実行したときに

「実行時エラー 『438』:オブジェクトこのプロパティまたはメソッドをサポートしていません "。

アドバイスはありますか?

また、無制限の金額が作成された場合、これらのラベルとテキストボックスを保存してアクセスするにはどうすればよいですか?

プロパティのいくつかについては
+0

エラーが発生した行はありますか。 –

答えて

0

、あなたはOleoObjectオブジェクトのオブジェクトのプロパティを参照する必要があります...

Sub Test2() 

    'Creates the row number 
    With Worksheets("Schedule").OLEObjects.Add(ClassType:="Forms.Label.1") 
     .Left = 0 
     .Top = 0 
     .Width = 18 
     .Height = 18 
     With .Object 
      .Caption = 1 
      .SpecialEffect = 1 
      .BackColor = &H8000000F 
      .TextAlign = 2 
     End With 
    End With 

End Sub 

Sub Test3() 

    With Worksheets("Schedule").OLEObjects.Add(ClassType:="Forms.TextBox.1") 
     .Left = 18 
     .Top = 0 
     .Width = 200 
     .Height = 18 
     With .Object 
      .Text = "Task Name" 
      .SpecialEffect = 0 
      .BackColor = &H80000005 
      .TextAlign = 1 
      .BorderStyle = 1 
     End With 
    End With 

End Sub 

・ホープ、このことができます!

関連する問題