ドロップダウンメニューを使用して、ドロップダウンリストの横のセルを変更します。

ドロップダウンメニューを使用して、ドロップダウンリストの横のセルを変更します。

私は VBA の初心者ですが、次のようなことを実行するプログラムを作成することに興味があります。ドロップダウン メニューから項目を選択すると、選択したドロップダウン リストの横にあるセルに特定のテキストが貼り付けられます。

例えば、ドロップダウンリストの列AにCOMMENT MOVEが含まれています。

「コメント」を選択した場合は、列 B に「コメントを入力」と入力します。「移動」を選択した場合は、列 B に「移動タイプを入力」と入力し、列 C に「移動速度を入力」と入力します。

ドロップダウン メニュー項目の選択に基づいてセルや他のセルでこのデータを使用しているため、ドロップダウン メニューを選択したときにのみこれらを変更したいと思います。

答え1

私の理解が正しければ、これは VBA または関数のいずれかを使用して実行できます。私の例では、A1と のA4両方に「COMMENT」と「MOVE」を含むリストがあります。

ここに画像の説明を入力してください

私はB1機能を持っています=IF(A1="MOVE","ENTER MOVE TYPE",IF(A1="COMMENT","ENTER COMMENT"," "))

そしてC1関数では=IF(A1="MOVE","ENTER MOVE SPEED","")

リストについては、A4ワークシートで VBA を使用しています (シートを右クリックして [コードの表示] を選択)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range(Target.Address), Range("A4")) Is Nothing And Target.Count = 1 Then
    If Target.Value2 = "MOVE" Then
        Target.Offset(, 1).Value = "ENTER MOVE TYPE"
        Target.Offset(, 2).Value = "ENTER MOVE SPEED"
    ElseIf Target.Value2 = "COMMENT" Then
        Target.Offset(, 1).Value = "ENTER COMMENT"
        Target.Offset(, 2).Value = ""
    Else
        Target.Offset(, 1).Value = ""
        Target.Offset(, 2).Value = ""
    End If
End If
End Sub

私はと の助けを借りてテキストの相対位置を使用しているのでB、リストの場所に応じて変更する必要があるコードが少なくなります。C.Offset

関連情報