|
▼Tsuyo さん:
こんばんは
>返事が遅くなってすみません。
>>Excel2002(Excel2000でも確認)で前回の投稿どおりの手順で行うと
>>記述したとおりにエラーが発生し、記述したとおりにリストがクリアされますけどね!!
>
>Excelは2007です。
>Worksheets("sheet1").ComboBox1.Clear
>では消えませんでしたが(エラーは出ません)
>Worksheets("sheet1").ComboBox1.value = ""
>を実行したら消えました。
>という意味で前回は書きました。
何となくわかったような気もしますし、そうでもないような・・・。
Combobox1.Value=""
と
Combobox1.Clearは、違いますよ!!
ただ、Excel2007は持っていないので確認ができません。
前回投稿した
Sub main()
Dim cmb As OLEObject
With Range("d3:f3")
Set cmb = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=.Left, Top:=.Top, _
Width:=.Width, Height:=.Height * 2)
End With
MsgBox "ready"
ActiveSheet.Range("a1:a5").Value = [{"a";"b";"c";"d";"e"}]
With cmb
.ListFillRange = ActiveSheet.Name & "!a1:a5"
.Object.DropDown
MsgBox "セルA1:A5の内容をコンボボックスに設定しました"
On Error Resume Next
.Object.Clear
If Err.Number <> 0 Then
MsgBox "clearメソッドを実行したところ・・ " & vbCrLf & Err.Description
End If
.Object.ListIndex = 3
MsgBox "dを選択しました"
.Object.Value = ""
.Object.DropDown
MsgBox "Value=""""の実行で dは消去されてもリストは消えません"
.ListFillRange = ""
.Object.DropDown
MsgBox " .ListFillRange = """"の実行で リストが消去されました"
.Delete
End With
End Sub
このコードの結果がExcel2007では私が記述した内容と違うなら、
私はこのご質問から手を引かなければなりません。
だって、確認できないのですから・・・。
再度お聞きします。上記のコードは、どのようにメッセージが表示されますか?
|
|