Se fizeres um “Select”, presumo que copias sempre a mesma posição… está correcto?
Depois que estiver na área de transferência, o que vai fazer?
Posteriormente vou colar no Skype. (Se fizer ctrl c + ctrlv ) no Skype ele cola como texto. Por isso preciso que seja como imagem.
Tem que copiar e depois colar como imagem. Se simplesmente copiar e colar ele cola como texto.
Se esta usando Win,
1 - deixe a área completa na tela
2 - tecle Windows+Shft+S
3 - selecione a área.
Desta maneira a imagem da tela, esta na área de transferência.
Não atende a minha necessidade pois pega a tela toda. Preciso mesmo apenas do intervalo. Mesmo assim obrigado pelo empenho.
Vou usar Linux Ubuntu
Try this code:
Sub copy_like_image()
doc = ThisComponent
sheet = doc.CurrentController.ActiveSheet
'Or get range by name
'sheet = doc.Sheets.getByName("Sheet1")
range = sheet.getCellRangeByName("A1:C5")
'Or
'range = doc.CurrentController.Selection
'Comment this line if you used Selection
doc.CurrentController.select(range)
'Copy current selection
Call execute_dispatch(doc, "Copy")
'Paste like image
Dim args(0) As New com.sun.star.beans.PropertyValue
args(0).Name = "SelectedFormat"
args(0).Value = 141
Call execute_dispatch(doc, "ClipboardFormatItems", args)
'Cut current image
Call execute_dispatch(doc, "Cut")
End Sub
Sub execute_dispatch(doc, url, Optional args())
If IsMissing(args) Then
args = Array()
End If
frame = doc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(frame, ".uno:" + url, "", 0, args)
End Sub
Ele deve estar em capital: "A1:U45"
isso este é o intervalo que eu preciso para compartilhar no skype (como imagem)
já te dei a resposta.
Obrigado. Deu certinho quando substitui range por rng. Muito obrigado.
A macro funciona, não há erros, tente alterar todas as ocorrências do range com rng, talvez tenha algo que entre em conflito, por exemplo uma macro com esse nome ou outra coisa, ou reescreva essa linha manualmente e não com o copiar e colar.
Na mosca! Substitui range por rng e funcionou. Muito obrigado.
Talvez você tenha a compatibilidade VBA ativada.
RANGE é uma palavra reservada em VBA
Eu recomendo sempre reescrever as macros no LO Basic.
Certo!! Tenha uma boa noite.
Estou feliz pela resolução do seu problema, mas o crédito pela solução vai para quem escreveu a macro @elmau
Sim claro. Ja o agradeci logo acima.