Hola a todos!:
Como respuesta a una consulta, hoy os mostraré un método distinto para realizar una captura de pantalla de la hoja en la que nos encontramos.
Este método no tiene nada que ver con la funcionalidad de CAPTURA DE PANTALLA que nos encontramos en nuestra cinta de opciones de Excel. Este método utiliza la combinación de teclas para crear capturar la pantalla en la que nos encontramos.
El código es el siguiente:
Option Explicit
Sub CAPTURA_PANT()
Dim Shape As Excel.shapes
Dim shapes As Variant
'Por cada forma en la hoja activa
Application.ScreenUpdating = False
For Each shapes In ActiveSheet.shapes
' Eliminamos forma
With shapes
If .Type = 13 Then
.Delete
End If
End With
Next
With ActiveSheet
'Capturamos pantalla
.Range("A1").Select
Application.SendKeys "(%{1068})"
DoEvents
' Pegamos pantalla
.Paste
End sub
En este ejemplo, las primeras líneas de código sirven para borrar aquellas capturas que hayamos hecho anteriormente (si no lo necesitáis, lo comentáis o lo borráis). Con el resto de código realizamos la captura de pantalla y la pegamos en la misma hoja.
Es posible que necesitéis editar la forma o imagen capturada, esto lo podéis hacer añadiendo al código estas líneas:
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.IncrementLeft 21
Selection.ShapeRange.IncrementTop 220
Selection.ShapeRange.ScaleWidth 0.98, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.72, msoFalse, msoScaleFromTopLeft
Y las que necesitéis para escalar la imagen, aquí os dejo documentación por si lo necesitáis: Objeto Shape Métodos
Este método de trabajo es especialmente útil si se necesita realizar una captura de pantalla de un proceso que estamos cargando en nuestra hoja (videos, imágenes, etc) y necesitamos en un momento dado, realizar una captura.
Existen otras técnicas, por ejemplo serían:
- .AddPicture
- .Pictures.Insert
Sin embargo, éstas se refieren a shapes o imágenes previamente embebidas en nuestra hoja. Con el método anterior capturamos todo lo que aparece en la hoja y lo pegamos de nuevo.
Y eso es todo, espero que os haya resultado de interés.
Saludos.
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies
Fantástico trabajo, Segu.
Te planteo una duda ¿si lo que quiero es hacer una captura de pantalla de una web determinada? en el código pondría una variable con la web deseada y quisiera que al ejecutar el código abra esa url, realice una captura y la pegue.
Gracias
Algo así:
Sub ejemplo()
Url = "https://www.excelsignum.com"
ActiveWorkbook.FollowHyperlink Url, NewWindow:=False
Application.Wait (Now + TimeValue("00:00:06"))
DoEvents
Application.SendKeys "({1068})", True
DoEvents
ActiveSheet.Paste
End Sub
Buenos dias, Segu.
muchas gracias por tu respuesta, me va a ser de mucha utilidad.
un saludo y felicidades nuevamente por tu gran trabajo.
Buenas,
Y si necesito pegar esta captura en outlook?
Un saludo
Buenos dias,
como pego esa imgen en el cuerpor de un mensaje que estoy preparando en otra macro?
esto puede ayudarte: https://excelsignum.com/2018/01/28/enviar-firma-con-imagen-y-texto-desde-outlook-usando-excel-y-vba/