Você pode inserir imagens facilmente em planilhas do Excel e editá-las com código de macro. Veja como inserir uma imagem em uma célula usando VBA no Excel .
Visual Basic for Applications, abreviado como VBA, é uma forma de Visual Basic 6 integrada aos programas do Microsoft Office. Por meio da codificação, o VBA permite automatizar tarefas em aplicativos do Office, incluindo o Excel. Em alguns casos, você pode até adicionar novos recursos ao Excel usando VBA.
Mesmo que você precise trabalhar com código para usar o VBA, isso não significa que o VBA esteja cheio de letras e números. Com o VBA no Excel, você pode criar uma macro que permite inserir uma imagem em uma célula ou intervalo de células. Aqui está o que você precisa saber sobre como inserir imagens em células no Excel usando VBA.
Como inserir imagens em células usando VBA no Excel
Para criar uma macro que insere uma imagem em uma célula do Excel usando VBA, você realmente não precisa de nenhum conhecimento avançado de Visual Basic. Tudo que você precisa fazer é ativar as ferramentas do desenvolvedor, criar uma macro e colar o código apropriado. Claro, você também pode inserir imagens no Excel sem usar VBA. No entanto, neste artigo, focaremos no VBA.
1. Ative as ferramentas do desenvolvedor
Para usar VBA no Excel, você precisa habilitar as ferramentas do desenvolvedor. Esta ação habilitará a guia Desenvolvedor na faixa de opções, que está desabilitada por padrão.
- Abra o Excel .
- Vá para o menu Arquivo .
- Clique em Opções na parte inferior da tela. A janela Opções do Excel aparecerá.
- Nas Opções do Excel, vá para a guia Personalizar faixa de opções .
- Nas guias principais , marque Desenvolvedor .
Agora as ferramentas do desenvolvedor, incluindo acesso VBA, estão habilitadas. Você não precisa fazer isso sempre que quiser usar o VBA no Excel. As ferramentas do desenvolvedor estarão sempre ativadas até que você as desative.
2. Crie macros e insira código
- No Excel, vá para a guia Desenvolvedor .
- Na seção Código, selecione Macros .
- Na nova janela, insira o nome da macro em Nome da macro . O artigo usará insertPhotoMacro .
- Clique em Criar .
Após clicar em Criar, a janela do VBA será aberta e exibirá o código da sua macro. Atualmente, o código será composto por 2 linhas: uma Sub para iniciar a macro e uma End Sub para finalizá-la.
Adicione um pouco de código a esta macro. Adicione a seguinte linha de código entre as duas linhas:
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
O código final ficará assim:
Você não precisa se preocupar em salvar esse processo. Quaisquer alterações feitas no VBA são salvas imediatamente.
Agora é hora de ver o código em ação:
- Feche a janela do VBA.
- Vá para a guia Desenvolvedor no Excel.
- Selecione Macros na seção Código.
- Destaque a macro que você acabou de criar.
- Clique em Executar .
Agora será aberta uma mensagem solicitando que você localize o arquivo de imagem que deseja inserir. Selecione a foto e clique em Abrir. Agora você verá a imagem na célula A1.
Observe que o Excel reduzirá a imagem para que caiba na célula A1. Você pode alterá-lo e alterar o código para inserir imagens em outras células, até mesmo em um intervalo de células. Na próxima seção, separaremos o código e explicaremos os parâmetros.
3. Dividir código
Para que o código VBA funcione da maneira desejada, você precisa entendê-lo. Ao fazer isso, você pode alterar o código para inserir imagens em qualquer célula de qualquer tamanho.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
Quando o código começa, a instrução Dim é usada para determinar o tipo de variável. Temos dois tipos de variáveis: photoNameAndPath e photo . Primeiro a variável e depois a imagem.
A partir daí, a variável photoNameAndPath é executada e abrirá um aplicativo para obter a localização do arquivo da foto. Isso é feito por meio de Application.GetOpenFileName . O parâmetro Título é opcional. O conteúdo dentro dele é exibido como o nome da janela.
Usando If photoNameAndPath = False Then Exit Sub , se um endereço inválido ou vazio for fornecido, o processo será encerrado. No entanto, se um arquivo adequado for fornecido, Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath) indica que a imagem deve ser definida como uma variável conforme definido originalmente. Ele será inserido na planilha ativa.
Por fim, use Com foto e as 5 linhas depois dela para determinar a localização da foto. .Left e .Top referem-se à posição inicial, enquanto .Width e .Height referem-se à posição final. Se você pretende inserir imagens em outra célula ou intervalo, estas são as linhas que você deve alterar.
.Placement indica que a imagem deve ser redimensionada para caber na célula ou inserida de forma livre. Configurá-lo como 1 irá redimensioná-lo de acordo com a célula.
Finalmente, o código acima usa End With e End Sub para fechar a macro. Agora você pode alterar as variáveis photoNameAndPath e photo para qualquer outro nome que desejar. Apenas lembre-se de manter os nomes consistentes em todo o código.
Acima está como usar o VBA para inserir imagens em células do Excel . Espero que o artigo seja útil para você.