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

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

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

Responder1

Eu criei uma macro VBA. Abra seu editor VBA com ALT+ F11e cole o código abaixo emfolha1. Execute a macro com ALT+F8

O que a macro faz

  1. Peça ao usuário o caminho para a imagem que deseja inserir (pode ser jpg, bmp ou png)

  2. Carregue essa imagem como umWIA.imageFile. Mais tarde usamos objImage.Heighte objImage.Widthpara obter as dimensões reais da imagem.

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

  3. Insere um comentário em branco na célula atualmente selecionada se nenhum comentário antigo já existir lá

  4. Defina a imagem escolhida como imagem de fundo para o formato do comentário

  5. Redimensione as dimensões da forma do comentário para que a imagem se encaixe 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

informação relacionada