Necesito para incorporar una imagen a una hoja de cálculo a través de VBA de Excel, de tal manera que cada vez que me trasladan a mi archivo de excel, la imagen se mostrará. ¿Cómo puedo hacer esto?

OriginalEl autor RandomDude | 2011-09-12

2 Comentarios

  1. 13

    Este código se inserta una imagen en la hoja actual y la posición en la celda E10:

    Set oPic = Application.ActiveSheet.Shapes.AddPicture("d:\temp\mypic.jpg", False, True, 1, 1, 1, 1)
    oPic.ScaleHeight 1, True
    oPic.ScaleWidth 1, True
    
    oPic.Top = Range("E10").Top
    oPic.Left = Range("E10").Left
    Gracias, solo me señaló en la dirección correcta!

    OriginalEl autor PaulStock

  2. 0

    ¿Pruebe a utilizar la grabadora de macros?

    Esto es lo que produjo para mí:

    Sub Macro1()
    
      ActiveSheet.Pictures.Insert ("C:\mypicture.jpg")
    
    End Sub

    También las toneladas de información utilizando los términos de búsqueda de google: «Insertar Imagen, el Uso de VBA de Excel». El código a continuación es tomado de ExcelTip todo el crédito al autor original Erlandsen Datos de Consultoría.

    Con la macro a continuación puede insertar imágenes en cualquier rango en una hoja de cálculo y que se mantendrá mientras la propia imagen permanece en su ubicación original.

    De la imagen puede ser centrado horizontalmente y/o verticalmente.

    Sub TestInsertPicture()
        InsertPicture "C:\FolderName\PictureFileName.gif", _
            Range("D10"), True, True
    End Sub
    
    Sub InsertPicture(PictureFileName As String, TargetCell As Range, _
        CenterH As Boolean, CenterV As Boolean)
        ' inserts a picture at the top left position of TargetCell
        ' the picture can be centered horizontally and/or vertically
        Dim p As Object, t As Double, l As Double, w As Double, h As Double
        If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
        If Dir(PictureFileName) = "" Then Exit Sub
        ' import picture
        Set p = ActiveSheet.Pictures.Insert(PictureFileName)
        ' determine positions
        With TargetCell
            t = .Top
            l = .Left
            If CenterH Then
                w = .Offset(0, 1).Left - .Left
                l = l + w / 2 - p.Width / 2
                If l < 1 Then l = 1
            End If
            If CenterV Then
                h = .Offset(1, 0).Top - .Top
                t = t + h / 2 - p.Height / 2
                If t < 1 Then t = 1
            End If
        End With
        ' position picture
        With p
            .Top = t
            .Left = l
        End With
        Set p = Nothing
    End Sub

    Con la macro a continuación puede insertar imágenes y ajuste a cualquier rango en una hoja de cálculo.

    Sub TestInsertPictureInRange()
        InsertPictureInRange "C:\FolderName\PictureFileName.gif", _
            Range("B5:D10")
    End Sub
    
    Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)
        ' inserts a picture and resizes it to fit the TargetCells range
        Dim p As Object, t As Double, l As Double, w As Double, h As Double
        If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
        If Dir(PictureFileName) = "" Then Exit Sub
        ' import picture
        Set p = ActiveSheet.Pictures.Insert(PictureFileName)
        ' determine positions
        With TargetCells
            t = .Top
            l = .Left
            w = .Offset(0, .Columns.Count).Left - .Left
            h = .Offset(.Rows.Count, 0).Top - .Top
        End With
        ' position picture
        With p
            .Top = t
            .Left = l
            .Width = w
            .Height = h
        End With
        Set p = Nothing
    End Sub
    Hemos usado esta misma solución, pero no funciona una vez que la imagen externa es movido o eliminado.
    Entonces, ¿por qué no preguntar en vez de votar!!! Yo habría sido feliz de ayudarle con más código…
    Oh, yo votada abajo debido a que el OP se menciona que las fotos no podía estar vinculado de modo que el archivo de excel puede ser movido de manera considero que esto es una mala respuesta a esta pregunta en particular. Lo sentimos, no hay ánimo de ofender ~ sólo he estado participando en este sitio activamente alrededor de una semana ahora. Tal vez la próxima vez voy a upvote sólo.
    El OP pidió que cuando él se traslada a su archivo de excel que la imagen muestra aún. Si él hubiera dicho que quiere que la imagen permanezca después de que la imagen en sí ha sido borrado, estás en lo correcto el código no va a funcionar, es posible que necesite utilizar una forma. El problema es que el OP no ha hecho ningún comentario o marcado una solución, así que realmente no sabemos. Tal vez usted podría leer cuando a downvote. lo he editado mi post así que usted puede quitar el downvote si usted elija.
    si puedo mover las imágenes esto no funciona, que es un requisito específico de la pregunta. Esta respuesta no es bueno.

    OriginalEl autor Reafidy

Dejar respuesta

Please enter your comment!
Please enter your name here