Utilizar KeyUp e KeyDown ao invés de Change

Olá pessoal, eu tenho um cenário assim:

Sub ToggleButton1_Change
Tag = Screen.Item(“ComboBox1”).Value

Select Case Tag
Case “SD_1”
Application.GetObject(“Driver1.GreenPlug.SD_1”).Value = Value
Case “SD_2”
Application.GetObject(“Driver1.GreenPlug.SD_2”).Value = Value
Case “SD_3”
Application.GetObject(“Driver1.GreenPlug.SD_3”).Value = Value
Case “SD_4”

Gostaria de trocar o evento Change, para pode ter 2 scripts, 1 quando a tecla descer e outro quando a mesma subir, entao fiz isto.

Sub ToggleButton1_KeyDown(KeyCode, Shift)
Tag = Screen.Item(“ComboBox1”).Value

Select Case Tag
Case “SD_1”
Application.GetObject(“Driver1.GreenPlug.SD_1”).WriteEx (“ToggleButton1”).Value
Case “SD_2”
Application.GetObject(“Driver1.GreenPlug.SD_2”).Value = Value
Case “SD_3”
Application.GetObject(“Driver1.GreenPlug.SD_3”).Value = Value
Case “SD_4”

Não consegui fazer funcionar com Value = Value e nem com WriteEx.

Agradeço a ajuda desde já.

@Lucas_Goncalves, neste caso tem que fazer uma condicional para qual tecla está tentando usar para o evento ocorrer. Exemplo:

  • KeyUp:

      Sub TelaInicial_KeyUp(KeyCode, Shift)
      'KeyCode = 13 é a tecla ENTER
      If KeyCode = 13 Then
      	Item("ToggleButton4").Value = False
      End If	
      End Sub 
    
  • KeyDown:

      Sub TelaInicial_KeyDown(KeyCode, Shift)
      'KeyCode = 13 é a tecla ENTER
      If KeyCode = 13 Then
      	Item("ToggleButton4").Value = True
      End If
      End Sub
    

Mais detalhes neste KB.

Sds.