Redefina automaticamente as dimensões da caixa de comentários para corresponder à imagem de plano de fundo no Excel

0

No Excel, digamos que eu escolha uma imagem, test.jpeg por exemplo, como plano de fundo de um comentário. Eu quero que a caixa de comentários tenha as dimensões de test.jpeg. Como planejo ter centenas desses comentários, minha pergunta é: existe uma maneira de automatizar isso?

    
por Guest 14.05.2015 / 04:49

1 resposta

2

Eu modifiquei uma macro VBA. Abra seu editor de VBA com ALT + F11 e cole o código abaixo em sheet1 . Execute a macro com ALT + F8

O que a macro faz

  1. Peça ao usuário um caminho para uma foto que ele deseja inserir (pode ser jpg, bmp ou png)
  2. Carregue essa imagem como WIA.imageFile . Mais tarde, usamos objImage.Height e objImage.Width para obter as dimensões reais da imagem.

    Esse método foi o mais curto que encontrei para obter dimensões em pixels (outros métodos do VBA podem fornecer twips Eles são uma invenção horrível)

  3. Insira um comentário em branco na célula atualmente selecionada, se já não houver nenhum comentário antigo
  4. Defina a imagem escolhida como imagem de fundo para o formato do comentário
  5. Redimensione as dimensões do formato do comentário para que a imagem se ajuste perfeitamente
Sub InsertComment()

    Dim strImagePath As Variant
    Dim objImage As Object

    strImagePath = Application.GetOpenFilename("Picture, *.jpg; *.png; *.bmp")
    If strImagePath = False Then Exit Sub

    Set objImage = CreateObject("WIA.ImageFile")
    objImage.LoadFile strImagePath

    With ActiveCell
        If .Comment Is Nothing Then .AddComment ("")
        .Comment.Shape.Fill.UserPicture strImagePath
        .Comment.Shape.Height = objImage.Height * 0.75
        .Comment.Shape.Width = objImage.Width * 0.75
    End With

End Sub
    
por 14.05.2015 / 12:25