VBA: extraer email de una cadena de texto
08/06/2023VBA: Verificar tarjeta de crédito
12/06/2023
'Código para incluir en un formulario que contenga el objeto InkPicture
'Formulario con dos botones: Grabar y borrar
Option Compare Database
Option Explicit
Private Sub btnBorrar_Click()
Me.ImgFirma.Ink.DeleteStrokes
Me.ImgFirma.Requery
Me.ImgMirror.Picture = ""
End Sub
Private Sub btnGuardar_Click()
'-----------------------------------------------------------------------------------------------------------------------------------------------
' Fuente : https://access-global.net/vba-captura-de-firma/
' Destello formativo 337
'-----------------------------------------------------------------------------------------------------------------------------------------------
' Autor : desconocido
' Adaptado : Luis Viadel | luisviadel@access-global.net
' Creado : marzo 2010
' Propósito : obtener una imagen creada a mano alzada. Por ejemplo, una firma.
'-----------------------------------------------------------------------------------------------------------------------------------------------
' Referencias : https://learn.microsoft.com/en-us/windows/win32/tablet/inkpicture-control-reference
' https://learn.microsoft.com/en-us/windows/win32/tablet/inkpicture-control
' https://access-global.net/vba-freefile-function/
'-----------------------------------------------------------------------------------------------------------------------------------------------
Dim filename As String
Dim filenum As Long
Dim contador As Long
Dim bytArray() As Byte
filename = Application.CurrentProject.Path & "firma.GIF"
filenum = FreeFile()
bytArray = Me.ImgFirma.Ink.Save(IPF_GIF, IPCM_Default)
Open filename For Binary Access Write As filenum
For contador = 0 To UBound(bytArray)
Put #filenum, , bytArray(contador)
Next
Close #filenum
Me.ImgMirror.Picture = filename
End Sub
7 Comments
Acabo de descubriros, y a pesar de llevar años de desarrollo en VBA (nivel pseudo profesional), estoy alucinando con el nivel del material que se ofrece.
Enhorabuena.
He estado viendo este destello de captura de tinta y lo he implementado en una de mis aplicaciones. Todo perfecto.
Estaba pensando en si sería posible, alguna modificación en el código para incorporar en la firma que se guarda (ImgMirror) alguna herramienta de validación (una marca de agua con la fecha del sistema, o algún código generado por algoritmo) que permita dar una mayor validez a la firma generada.
He estado mirando en la documentación que facilitáis del objeto InkPicture pero no encuentro nada similiar.
Creo que con algo así se ampliaría la funcionalidad de este código.
¿Se os ocurre algo para esto?
Gracias y enhorabuena por el trabajo y el material
Hola Manuel, gracias por tu comentario. Perdona el retraso en la contestación per aún no estamos al 100% después del verano.
Respecto a lo que dices, sí que es posible. Hay una Dll gratuita que te permite hacer eso de una forma muy sencilla, así como cambiar tamaños, mezclar imágenes y muchas cosas más.
https://imagemagick.org/
Pronto haremos un destello sobre esto.
Un saludo.
Genial Luís!!!
He estado mirando la dll y efectivamente creo que se pueden hacer cosas interesantes con ellas a través de comandos de consola desde VBA.
Quedo a la espera del destello que seguro que me sorprende como hasta ahora.
Un saludo.
¿Es posible asignarle un fondo y exportarlo como imagen?
Hola Abelino, perdona el retraso en la contestación. EL fondo siempre es blanco, cambiarlo por código supongo que se podría hacer, pero tendría que probarlo.
Enhorabuena por vuestro trabajo. Necesito ayuda. He conseguido poner una imagen de fondo y pintar sobre ella. Lo que no consigo es guardar la imagen (fondo + pintura).
Gracias Evaristo y perdona el retraso. ¿Has probado utilizar Imagemagick?