Pergunte aqui
1

Macro com String em uma célula.

perguntadas 2017-11-24 21:37:08 +0200

updated 2018-01-04 01:05:58 +0200

Tenho uma macro que usa uma String para localizar uma imagem em um diretório, mas o endereço (a imagem) é uma variável e esta em uma célula.

'==========================================================================
Sub ColarImagem() '========================================================
'==========================================================================
Dim oDoc As Object
Dim oPaginaAtiva As Object
Dim oImagem As Object
Dim sCaminho As String
Dim oTam As New com.sun.star.awt.Size

    'O caminho completo da imagem.
    sCaminho = ConvertToURL("file:///C:/Users/Gustavo/Pictures/1.png")  '<== esta informação.
        . .......

Qual a maneira da Macro pegar o caminho em uma célula ? , por exemplo em C23 e esta nomeada: caminhoo2

Ola @Grafeno, infelizmente não deu certo. Erro em oPlan

'==========================================================================
Sub ColarImagem() '========================================================
'==========================================================================
'Fonte: Aprendiendo OOo Basic de Mauricio Baeza Servin ====================
'==========================================================================
Dim oDoc As Object
Dim oPaginaAtiva As Object
Dim oImagen As Object
Dim sCaminho As String
Dim oTam As New com.sun.star.awt.Size
Dim oPlan As Object 'inclui
Dim oCel As Object  'inclui
    'La ruta de la imagen
    oPlan = oDoc.Sheets.getByName( "Consulta" ) **'<==== Erro vide abaixo ====<**
   oCel = oPlan.getCellRangeByName ( "C23") 'Esta nomeada: caminhoo2
'   sCaminho = ConvertToURL("file:///C:/Users/Gustavo/Pictures/3010002.png")
    SCaminho = ConvertToURL( oCel.String )
    oDoc = ThisComponent
    'Pagina de dibujo de la hoja activa
    oPaginaAtiva = oDoc.getCurrentController.getActiveSheet.getDrawPage()   
    'Para crear y manipular imagenes
    oImagen = oDoc.createInstance( "com.sun.star.drawing.GraphicObjectShape" )  
    'Establecemos la ruta de la imagen
    oImagen.GraphicURL = sCaminho
    'La agregamos a la página de dibujo, por ende, al conjunto de formas
    oPaginaAtiva.add( oImagen )
    'Establecemos el tamaño de la imagen, siempre establece un tamaño, si no
    'se insertará con un tamaño mínimo casi invisible
    'la unidad es centésimas de milímetro
    oTam.Width = 8800
    oTam.Height = 6800
    oImagen.setSize( oTam )
    '---
    'Establecemos la celda de anclaje, al modificar esta se modifica la posición
    oCelda = ThisComponent.getCurrentController.getActiveSheet.getCellByPosition( 23,2 )
    oImagen.Anchor = oCelda 
    '----
End Sub

Erro em tempo de execução do BASIC. Variável de objeto não definida.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

1

@Gilberto Schiavinatto, pegue a linha oDoc = ThisComponent e a mova para cima, para antes de oPlan = .... O erro aconteceu certamente porque neste ponto a variável oDoc estava vazia.

imagem do gravatar de GrafenoGrafeno ( 2017-11-25 20:21:30 +0200 )editar

Ok @Grafeno, obrigado.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-11-25 21:46:21 +0200 )editar

1 Resposta

1

respondidas 2017-11-25 17:44:45 +0200

imagem do gravatar de Grafeno

Boa tarde,


Tente o trecho a seguir:

   oDoc = ThisComponent
   oPlan = oDoc.Sheets.getByName( "Planilha1" )  
   oCel = oPlan.getCellRangeByName( "A1" ) 'Célula com caminho'

   'O caminho completo da imagem.'
   sCaminho = ConvertToURL( oCel.String )


Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

Ola @Grafeno, vide complemento na pergunta.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-11-25 20:13:14 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2017-11-24 21:37:08 +0200

Lidas: 125 vezes

Última atualização: Nov 25 '17