|
▼Blue さん:
どこのシートにあるのか、そうでうよね。
その宣言をしてませんでした。
しかし、宣言させたもののやはり
「オブジェクトが必要」と怒られます。
Private Sub Workbook_Open()
Dim i As Integer, k As Integer
Dim ws1 As Object, ws2 As Object, ws3 As Object
' シート名でコンボボックスのあるシートを特定
Set ws1 = Worksheets("Sheet1")
ws1.コンボ1.Clear
For i = 1 To 12
コンボ1.AddItem i
Next
Set ws2 = Worksheets("Sheet2")
ws2.コンボ2.Clear
For i = 1 To 12
コンボ2.AddItem i
Next
Set ws3 = Worksheets("Sheet3")
ws3.コンボ3.Clear
For i = 1 To 12
For k = 1 To 5
コンボ3.AddItem i & "月/" & k
Next
Next
End Sub
何故なのでしょう。
>どこのシートにあるコントロールなのか特定してあげないといけません。
>
>シート名がSheet1のシートにあるならば
>
>Worksheets("Sheet1").コンボ
>
>という風にしなければ。
>
>ちなみに
>> Dim i As Integer, k As Integer
>>
>> For i = 1 To 12
>> コンボ1.AddItem i
>> Next
>>
>> For i = 1 To 12
>> コンボ2.AddItem i
>> Next
>>
>> For i = 1 To 12
>> For k = 1 To 5
>> コンボ3.AddItem i & "月/" & k
>> Next
>> Next
>ならば
>
>Dim i As Integer, k As Integer
>Dim ws As Object
>
>Set ws = Worksheets("Sheet1") ' シート名でコンボボックスのあるシートを特定
>
>ws.コンボ1.Clear
>ws.コンボ2.Clear
>ws.コンボ3.Clear
>
>For i = 1 To 12
> ws.コンボ1.AddItem i
> ws.コンボ2.AddItem i
> For k = 1 To 5
> ws.コンボ3.AddItem i & "月/" & k
> Next
>Next
>
>とループをまとめれますね。
|
|