Private Sub ComboBox1_DropButtonClick()
If ComboBox1.ListCount > 0 Then
ActiveSheet.ComboBox1.Clear
End If
For N = 1 To ActiveWorkbook.Sheets.Count - 1
ComboBox1.AddItem ActiveWorkbook.Sheets(N).Name
Next N
End Sub
私はVBAを初めて使用するので、ご容赦ください。そもそもこれが最善の方法ではないかもしれません。
コードは、ワークブックの各シートの名前(最後のシートを除く)を取得し、それらをコンボボックスリストに追加しています。最初は、ドロップダウンをクリックするたびに、すべてのシート名が再度追加され、クリックするたびにリストが増え続けていました。私の救済策は、クリックするたびに最初にコンボボックスをクリアして、再入力することでした。
ただし、clearオプションを使用すると、選択時に値が表示されません。clearオプションを使用しない場合は、正常に表示されます。他のすべては引き続き機能しますが、ユーザーが混乱しないように、選択した値を表示するために必要です。
私が必要なことを達成するためのより良い方法はありますか?
編集:重要な場合、これはユーザーフォームではなく、ワークシートに直接配置されたアクティブなxコンボボックスです。