Página 1 de 1
Ampliar Uma Imagem
Enviado: 21 Nov 2017 às 10:23
por crcjcruz
Bom dia a todos.
Tenho uma planilha bem simples para pesquisa se salas comerciais, dentro dessa planilha tenho quatro imagens e gostaria de quando clicar em uma dessas quatro imagem ela me apresenta em tamanho maior, ou seja ela se amplia, e ao clicar novamente ela retorna ao seu tamanho normal. Alguém pode me ajudar ?
Segue anexo exemplo.
Re: Ampliar Uma Imagem
Enviado: 21 Nov 2017 às 10:53
por alexandrevba
Bom dia!!
Eu não baixei seu modelo.
===================[Opção 1]=========================
Código: Selecionar todosOption Explicit
'Autor: Domenic Domenic (MrExcel MVP)
'Fonte: https://www.mrexcel.com/forum/excel-questions/611678-macro-zoom-picture.html
Private Sub Picture_Click()
Static Dict As Dictionary
Static MyPics() As Variant
Static Cnt As Long
Static c As Long
Dim SHP As Shape
Cnt = Cnt + 1
If Cnt = 1 Then
Set Dict = CreateObject("Scripting.Dictionary")
End If
Set SHP = Me.Shapes(Application.Caller)
If Not Dict.Exists(SHP.Name) Then
c = c + 1
Dict.Add SHP.Name, c
ReDim Preserve MyPics(1 To 2, 1 To c)
MyPics(1, c) = SHP.Name
MyPics(2, c) = True
End If
If MyPics(2, Dict.Item(SHP.Name)) = True Then
MyPics(2, Dict.Item(SHP.Name)) = False
SHP.ScaleHeight 1.5, msoTrue 'aumentar a altura para 50%
SHP.ScaleWidth 1.5, msoTrue 'aumentar a largura para 50%
Else
MyPics(2, Dict.Item(SHP.Name)) = True
SHP.ScaleHeight 1, msoTrue 'escala para altura original
SHP.ScaleWidth 1, msoTrue 'escala para largura original
End If
End Sub
Código: Selecionar todosSub AssignMacro()
'Click com o direito do mouse e seleciona a opção Atribuir Macro
Dim SHP As Shape
For Each SHP In Plan1.Shapes 'Altere o nome da guia caso necessário
If SHP.Type = 13 Then 'imagem
SHP.OnAction = "Plan1.Picture_Click"
End If
Next SHP
End Sub
Código: Selecionar todosSub ResetToOriginalSize()
'Coloque esse código dentro de um Módulo comum
Dim SHP As Shape
For Each SHP In Plan1.Shapes
If SHP.Type = 13 Then 'imagem
SHP.ScaleHeight 1, msoTrue 'scale to original height
SHP.ScaleWidth 1, msoTrue 'scale to original width
End If
Next SHP
End Sub
Código: Selecionar todosPrivate Sub Workbook_Open()
'Coloque esse código dentro do módulo de EstaPasta_de_trabalho
Call ResetToOriginalSize
End Sub
===================[Opção 2]=========================
Veja:
https://answers.microsoft.com/en-us/off ... 018acf6810
https://www.extendoffice.com/documents/ ... image.html
Att
Ampliar Uma Imagem
Enviado: 22 Nov 2017 às 06:58
por crcjcruz
alexandrevba, bom dia.
Primeiramente obrigado pelo seu retorno, mas infelizmente não sou tão bom em VBA, mas tentei colocar o seus códigos, mas não funcionou, acho que estou fazendo alguma coisa errada, tentei gravar na macro mas me dá bastante erros.
Re: Ampliar Uma Imagem
Enviado: 22 Nov 2017 às 07:24
por crcjcruz
babdallas, bom dia.
Obrigado pelo seu retorno. Baixei seu exemplo, mas não funcionou, acho que está faltando algo, por favor pode verificar e me retornar
Re: Ampliar Uma Imagem
Enviado: 22 Nov 2017 às 07:30
por babdallas
Desculpe, anexei o arquivo errado. Veja se funciona agora.
Re: Ampliar Uma Imagem
Enviado: 22 Nov 2017 às 09:08
por crcjcruz
babdallas, bom dia.
Ok funcionou direitinho, como vi eu tenho que fazer imagem por imagem, como vou ter várias imagem tem como fazer um código para todas, desculpe estar tomando seu tempo, mas se for possível seria melhor, mas se não for tudo bem, fico com essa mesmo.
Re: Ampliar Uma Imagem
Enviado: 22 Nov 2017 às 09:30
por babdallas
Simplifiquei o que está ao alcance do meu conhecimento. Mas tem que atribuir a macro em cada imagem.
Re: Ampliar Uma Imagem
Enviado: 22 Nov 2017 às 09:53
por crcjcruz
OK funcionou corretamente, muito obrigado pela sua ajuda, valeu mesmo. Não sou bom em VBA, mas se precisar de algo estou a disposição.