| 
    
     |  | ▼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では私が記述した内容と違うなら、
 私はこのご質問から手を引かなければなりません。
 だって、確認できないのですから・・・。
 
 
 再度お聞きします。上記のコードは、どのようにメッセージが表示されますか?
 
 |  |