.
Visual Basic for Application, VBA abreviado, é uma forma de Visual Basic 6 integrado aos programas do Microsoft Office. Por meio da codificação, o VBA permite automatizar tarefas em programas do Office, incluindo o Excel. Em alguns casos, você pode até adicionar novos recursos ao Excel usando o VBA.
Embora você precise trabalhar com código para usar o VBA, isso não significa que o VBA seja composto apenas de letras e números. Com o VBA no Excel, você pode criar uma macro que permite inserir imagens em uma célula ou em um intervalo de células. Continue lendo para saber tudo sobre isso!
Como inserir uma imagem em uma célula usando VBA no Excel
Para criar uma macro para inserir imagens em células do Excel usando VBA, você não precisa de nenhum conhecimento avançado de Visual Basic. Tudo o que você precisa fazer é habilitar as ferramentas do desenvolvedor, criar a macro e colar o código correto.
No entanto, se você estiver interessado em aprender VBA e escrever seu próprio código algum dia, detalhamos o código VBA na terceira seção. Claro, você também pode inserir imagens no Excel sem usar o VBA. Mas este artigo é sobre como fazê-lo através do VBA. Vamos ao que interessa!
1. Habilitando as Ferramentas do Desenvolvedor
Para usar o VBA no Excel, você precisa habilitar as ferramentas do desenvolvedor no Excel. Isso habilitará a guia Desenvolvedor na faixa de opções, que está desabilitada por padrão.
- Abra o Excel.
- Vou ao Arquivo cardápio.
- Clique em Opções na parte inferior da tela. Isso abrirá a janela Opções do Excel.
- Em Opções do Excel, vá para o Personalizar fita aba.
- Debaixo Abas principaisVerifica Desenvolvedor.
Agora as ferramentas de desenvolvedor, incluindo acesso ao VBA, estão habilitadas para você. Você não precisa fazer isso toda vez que quiser usar o VBA no Excel. As ferramentas do desenvolvedor permanecerão ativadas até que você as desative.
2. Criando a Macro e Inserindo o Código
Agora é hora de começar a criar a macro. Como alternativa, você também pode criar um botão usando o VBA para essa tarefa, mas vamos ficar com as macros.
- No Excel, acesse o Desenvolvedor aba.
- No Código seção, selecione Macros.
- Na nova janela, insira um nome para sua macro em Nome da macro. Nós vamos usar inserirFotoMacro.
- Clique Crio.
Depois de clicar em Criar, a janela do VBA será aberta e exibirá o código da sua macro. Neste momento, o código consistirá em duas linhas: A Sub para iniciar a macro, e um Finalizar Sub para acabar com isso.
Vamos adicionar algum código a esta macro. Adicione o seguinte 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
Seu código final deve ser algo como o abaixo:
Você não precisa se preocupar em salvar seu progresso. Cada alteração que você faz no VBA é salva instantaneamente.
Agora é hora de ver o código funcionando.
- Feche a janela VBA.
- Vou ao Desenvolvedor guia no Excel.
- Selecionar Macros de Código seção.
- Realce a macro que você acabou de criar.
- Clique Corre.
Agora, um prompt será aberto solicitando que você localize o arquivo de imagem que deseja inserir. Selecione sua imagem e clique em Abrir. Agora você deve ver sua foto na célula A1!
Observe que a imagem inserida é reduzida para caber na célula A1. Você pode alterar isso e também alterar o código para inserir a imagem em outras células ou até mesmo em um intervalo de células. Na próxima seção, vamos detalhar o código e explicar os parâmetros em ação.
3. Decompondo o Código
Para fazer esse código VBA funcionar da maneira que você deseja, você precisa entendê-lo. Depois de fazer isso, você pode alterar o código para inserir fotos em qualquer célula em qualquer tamanho. Vamos percorrer o código pouco a pouco para torná-lo mais fácil de entender.
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
Uma vez que o código é iniciado, usamos o Escurecer instrução para determinar o tipo da variável. Temos duas variáveis aqui: photoNameAndPath e foto em si. Nós determinamos o primeiro como um Variante e este último como foto.
A partir daí, a variável photoNameAndPath é executada e abre um aplicativo para obter o paradeiro do arquivo de imagem. Isso é feito através Application.GetOpenFileName. o Título O parâmetro é opcional e o conteúdo nele é exibido como o nome da janela.
Usando Se photoNameAndPath = False, saia do sub, especificamos que, se for fornecido um endereço inválido ou em branco, o processo deve ser encerrado. No entanto, se um arquivo adequado for alimentado, então Definir foto = ActiveSheet.Pictures.Insert(photoNameAndPath) indica que a imagem deve ser definida como a variável de foto que definimos anteriormente e deve ser inserida na planilha ativa.
Finalmente usando Com foto e as cinco linhas que a seguem, elaboramos o posicionamento da imagem. .Deixei e .Topo indicar os locais de partida, enquanto .Largura e .Altura indicar os locais finais. Se você deseja inserir a imagem em outras células ou em um intervalo, essas são as linhas que você deve alterar.
.Canal indica se a imagem deve ser dimensionada com as células ou inserida de forma livre. Configurando para 1 irá dimensioná-lo com as células.
Em última análise, usamos Terminar com e depois Finalizar Sub para fechar a macro. Observe que você pode alterar a photoNameAndPath e foto variáveis para qualquer outro nome que você quiser. Apenas lembre-se de manter os nomes consistentes em todo o código.
Faça mais no Excel com VBA
O Excel é realmente uma ferramenta maravilhosa para organizar e analisar dados, mas isso não significa que o Excel seja inepto quando se trata de gráficos. Embora fotos e bitmaps não sejam o ponto forte do Excel, o Excel ainda é perfeitamente capaz de lidar com eles.
Embora você possa inserir imagens no Excel usando a interface como faria em outros aplicativos do Office, também pode fazê-lo usando o VBA. Com o VBA, você pode automatizar essa tarefa e até acoplá-la a outras tarefas para serem executadas simultaneamente. As possibilidades com VBA no Excel são infinitas.
.