Logo_Access_global_380x114Favicon_Access_global_180x180Logo_Access_global_380x114Logo_Access_global_380x114
  • Home
  • University
    • Destellos formativos
  • Labs
  • TV
  • Secciones
    • El mundo de Access
    • Explorando VBA
      • Artículos sobre VBA
      • Un trocito de código
    • Entrevistas
      • Profesionales de Access
    • El rincón de Excel
    • Bases de datos
      • MS SQL
      • MySQL
      • postgreSQL
      • SQLite
    • Clases magistrales
    • Utilidades hechas con Access
  • Access en el mundo
  • ¿Quiénes somos?
  • Cómo colaborar
  • Eventos
✕
            No hay resultados Mostrar todos los resultados
            Controladores ODBC para SQLite
            14/11/2021
            ¿Es una opción Microsoft Access para mi negocio?
            26/11/2021
            Mostrar todos

            Instrucción SendKeys (Access VBA)

            Publicado por Rafael Andrada
            Categorías
            • Un trocito de código
            Etiquetas
            • Access
            • VBA
            • Nivel
            • Propósito
            • Código
            • Ver también

            Instrucción SendKeys (mejorada)

            docs.microsoft.com dice: se utiliza la instrucción SendKey para enviar una o más pulsaciones de teclas a la ventana activa como si se escribieran en el teclado

            Nivel

            Principante

            Propósito

            Se utiliza la instrucción SendKey para enviar una o más pulsaciones de teclas a la ventana activa como si se escribieran en el teclado.

            ¡IMPORTANTE!

            Soluciona el problema de utilizar directamente SendKey que modifica el estado de la tecla BloqNum o NumLock (bloqueo numérico) que lo activa o desactiva.

            Código

            Public Sub mcSendKeys(ByVal strKey As String, Optional ByVal blnWait As Boolean)
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/sendkeys/
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : mcSendKeys
            ' Autor original    : De varias ideas y aportaciones de otros colegas de Access User Groups España.
            ' Adaptado por      : Rafael Andrada .:McPegasus:. de BeeSoftware.
            ' Actualizado       : 05/02/2021
            ' Propósito         : Se utiliza la instrucción SendKey para enviar una o más pulsaciones de teclas a la ventana activa como si se escribieran en el teclado. ¡IMPORTANTE! Soluciona el problema de utilizar directamente SendKey que modifica el estado de la tecla BloqNum o NumLock (bloqueo numérico) que lo activa o desactiva.
            ' Argumento/s       : La sintaxis del procedimiento o función consta de/los siguiente/s argumento/s:
            ' Argumento/s       : La sintaxis del procedimiento o función consta de/los siguiente/s argumento/s:
            '                     Parte                 Modo           Descripción
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            '                     strKey            Obligatorio     El valor String especifica las pulsaciones de teclas que enviar.
            '                     blnWait           Opcional        El valor Boolean especifica el modo de espera. Si es False (predeterminado), se devuelve el control al procedimiento inmediatamente después de enviar las teclas. Si es True, las pulsaciones de teclas se deben procesar antes de que se devuelva el control al procedimiento.
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Más información   : https://docs.microsoft.com/es-es/office/vba/language/reference/user-interface-help/sendkeys-statement?f1url=%3FappId%3DDev11IDEF1%26l%3Des-ES%26k%3Dk(vblr6.chm1009015);k(TargetFrameworkMoniker-Office.Version%3Dv16)%26rd%3Dtrue
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            'Test:              : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test. Copiar el bloque siguiente al
            '                    portapapeles y pega en el editor de VBA. Descomentar la línea que nos interese y pulsar F5 para ver su funcionamiento.
            '
            'Sub TITULO_test()
            '    Call mcSendKeys("F4", False)            'Si se ejecuta desde el editor de VBA, se abre la ventana Propiedades.
            '    Call mcSendKeys("+F2", False)           'Si se coloca en el evento DblClick de un control de un cuado de texto se abre el Zoom.
            '
            'End Sub
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            'End Function
              
            '    Dim WshShell                                    As IWshShell3
                Dim WshShell                                    As Object
                 
                Dim dblWait                                     As Double
                Dim strWork                                     As String
                 
                 
                Set WshShell = CreateObject("WScript.Shell")
                 
                strWork = Left(strKey, 1)
                 
                'En ocasiones no se muestra la acción, sobre todo en +{F2}, ya que se realiza demasiado pronto. Por este motivo obligamos a una breve espera.
                dblWait = Timer
                Do While Timer - dblWait < 0.1
                    DoEvents
                
                Loop
                
                Select Case strWork
                    Case "+", "^", "%"
                        strKey = Mid(strKey, 2)
                        WshShell.SendKeys strWork & "{" & strKey & "}", blnWait
                    
                    Case Else
                        WshShell.SendKeys "{" & strKey & "}", blnWait
                 
                End Select
                 
                Set WshShell = Nothing
            
            End Sub

            Ver también

            • Ampliar información en learn.microsoft.com
            • Ir a repositorio en GitHub
            Compartir
            0
            Rafael Andrada
            Rafael Andrada

            Entradas relacionadas

            19/03/2023

            Función que convierte cualquier carácter a texto puramente ASCII (Access VBA)


            Leer más
            24/03/2022

            Obtener la fecha del primer día de la semana o último día de la semana en Access VBA


            Leer más
            11/03/2022

            Actualizar una conexión ODBC en tiempo de ejecución


            Leer más

            Comments are closed.

            ETIQUETAS

            Access API BD Botones ComboBox Consultas CountOfLines CStr Diseño DoCmd Excel Exportar Fecha FileSystemObject Filtros For Each...Next Formulario Formularios Funciones Funciones de dominio GetFolder GetWindowRect Google maps Informes InStr Kill Left Listbox Mid Módulos Node ProcCountLines Procedimientos ProcOfLine References Replace Ribbon RunCommand Seguridad Split SysCmd Tablas TreeView VBA VBIDE

            ÚLTIMAS ENTRADAS

            • 0
              Tratamiento de errores: compilación condicional
              30/03/2023
            • 0
              Tratamiento de errores: errores personalizados
              29/03/2023

            ¿QUIERES PUBLICITAR TU EMPRESA AQUÍ?

            SUSCRÍBETE A NUESTRO
            NEWSLETTER

            Recibirás información puntual sobre el mundo de Access y VBA

            ¡Próximamente!

            Promovemos el uso de Access y de la programación en VBA en todo el mundo

            Centro de conocimiento


            Toda la sabiduría de los mejores programadores de Access y VBA a tu alcance.

            Legal

            Política de privacidad

            Condiciones de uso

            Condiciones del redactor

            ®Access Global 2021 | All right reserved
                      No hay resultados Mostrar todos los resultados