24 septiembre, 2023

CAPTURAR PANTALLA DE UNA HOJA DE EXCEL CON VBA

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.

Donate Button with Credit Cards

¡¡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

Comparte este post

6 comentarios en «CAPTURAR PANTALLA DE UNA HOJA DE EXCEL CON VBA»

  1. 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

  2. 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

    1. Buenos dias, Segu.

      muchas gracias por tu respuesta, me va a ser de mucha utilidad.

      un saludo y felicidades nuevamente por tu gran trabajo.

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies