空白セルをダブルクリックしたらコンボボックスを表示し、選択された値をセルに表示する
 あるシートの空白セルをダブルクリックすると、コンボボックスが表示されます。
 
 そのコンボボックスに値を指定したら、ダブルクリックした空白セルに値が表示
されるようにします。

 まず、コンボボックスを配置したフォームを用意します。フォームの名前は
「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

Excel97/2000



戻る


Excel Word Access VBA! モーグ