Gráfico com imagem no Excel – Gráfico de tiro ao alvo VBA

Gráfico com imagem no Excel – Gráfico de tiro ao alvo VBA

Neste artigo você aprenderá várias técnicas para trabalhar com gráfico com imagem no Excel criando um gráfico de tiro ao alvo.

O Excel é uma caixinha de surpresas, uma ferramenta limitada apenas pela criatividade.

Na aula deste artigo você verá como criar o gráfico abaixo, que além do aspecto visual também tem som. Cada tiro que é dado é acompanhado do som.

Gráfico de Tiro ao Alvo 4

Sim, este acima é um gráfico e foi criado em Excel, e tem som.

Criar Gráfico com Imagem no Excel

No nosso exemplo didático iremos criar o gráfico de tiro ao alvo da imagem acima.

O Excel permite que  usemos imagens em qualquer tipo de gráfico, mas neste exemplo usaremos um gráfico de dispersão, ou seja, gráfico de pontos com eixo X e Y para definir o ponto.

A primeira parte é montar a nossa base de dados que é a seguinte:

Gráfico de tiro ao alvo Excel 1

Veja que precisamos de duas colunas, eixo X e Y, não necessariamente precisam ter estes nomes.

Estes valores serão utilizado para definir a posição dos tiros no gráfico que estamos plotando.

Selecione então os dados do gráfico e pressione ALT+F1

Gráfico de tiro ao alvo Excel 2

Será criado então um gráfico conforme os pontos acima. Caso não apareça desta forma mude clicando com o botão direito e selecionando o gráfico de dispersão.

Em seguida clique com botão direito e no Intervalo de dados do gráfico altere conforme a seleção abaixo. Assim os pontos ficarão corretos nos eixos X e Y.

Gráfico de tiro ao alvo Excel 3

Copie a imagem seguinte para o seu Excel e cole.

Gráfico com imagens no Excel Tiro ao alvo 2

Em seguida copie a imagem do alvo e cole selecionando a parte de fundo do gráfico.

Desta forma o gráfico ficará automaticamente ajustado com a imagem de fundo.

Gráfico de tiro ao alvo Excel 4

Ajuste a imagem de fundo ajustando e arrastando os cantos superior, inferior e laterais, depois clique com o botão direito e fixe os valores do eixo x e y, tanto maior quanto menor valor.

No nosso exemplo fizemos com 0 à 10 no eixo X e 0 À 10 no eixo Y.

Em seguida coloque um dos valores para 5 e 5, e ajuste para que fique no centro do alvo.

O gráfico deverá ficar assim:

Gráfico de tiro ao alvo Excel 5

Agora copie a imagem dos tiros abaixo e cole no seu Excel.

Gráfico com imagens no Excel Tiro ao alvo 1

Clique na imagem e na guia Formato de Imagem. Selecione a opção Cortar e ajuste para selecionar apenas um dos tiros.

Gráfico de tiro ao alvo Excel 6

Em seguida reduza o tiro para ficar com o tamanho desejado e copie.

Cole sobre um dos pontos azuis que estão constando no gráfico. Eles serão substituídos pela imagem do tiro.Gráfico de tiro ao alvo Excel 7

Colocando som no Excel com VBA

No nosso exemplo criamos ainda uma automação para que o Excel toque o som de um tiro a cada valor no gráfico.

Colocamos uma iteração para que sejam gerados valores aleatórios de 1 à 10 no eixo X e Y com a execução do som WAV no Excel à cada novo valor.

O código abaixo é o que realiza a população dos valores e a execução do som a cada iteração.

'Função de execução do som
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
           Alias "PlaySoundA" (ByVal lpszName As String, _
           ByVal hModule As Long, ByVal dwFlags As Long) As Long
 
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
 
'Procedimento para tocar som no Excel veja que o som deve estar na mesma pasta neste exemplo
'Mas pode alterar mudando o wavfile e colocando o caminho completo
Sub PlayWAV()
    WAVFile = "tiro3.wav"
    WAVFile = ThisWorkbook.Path & "\" & WAVFile
    Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
End Sub

'Gera os valores e toca o som a cada novo valor do gráfico
Public Sub lsTiros()
    Planilha1.Range("F5:G11").ClearContents

    For i = 5 To 11
        DoEvents
        PlayWAV
        DoEvents
        Planilha1.Cells(i, 6).Value = WorksheetFunction.RandBetween(1, 10)
        Planilha1.Cells(i, 7).Value = WorksheetFunction.RandBetween(1, 10)
        DoEvents
        Application.Wait (DateTime.Now + TimeSerial(0, 0, 2))
        DoEvents
    Next i
End Sub

Download da Planilha de Gráfico com Som

Para realizar o download da planilha de exemplo deste artigo basta preencher o formulário abaixo, nós usamos para enviar newsletter semanais com novidades do site.

Baixe a planilha