あるシートの空白セルをダブルクリックすると、コンボボックスが表示されます。
そのコンボボックスに値を指定したら、ダブルクリックした空白セルに値が表示
されるようにします。
まず、コンボボックスを配置したフォームを用意します。フォームの名前は
「UserForm1」、コンボボックスの名前は「ComboBox1」です。
シートのセルがダブルクリックされた時に発生するイベント
「Worksheet_BeforeDoubleClick」で次の処理を行います。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Value = "" Then
UserForm1.Show
Cancel = True
End If
End Sub
ダブルクリックされたセルが空白だった場合は、フォームを表示します。
「Cancel = True」では、ダブルクリックされたセルが編集モードにならないように
しています。
次に、フォームが表示された時に発生するイベント「UserForm_Initialize」で、
コンボボックスのリストを用意します。リストには単位を表す値を設定します。
Private Sub UserForm_Initialize()
Dim a As Variant
Dim i As Integer
a = Array("mm", "m", "g", "Kg", "ペソ")
For i = 0 To 4
ComboBox1.AddItem a(i)
Next
End Sub
コンボボックスに値が指定された時に発生するイベント「ComboBox1_Change」で、
ダブルクリックされたセルにコンボボックスの値を入力する処理を行い、フォームを
閉じます。
Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1.Value
UserForm1.Hide
End Sub
|