Usuário com melhor resposta
Macro no word 2013 sobre nitidez das imagens

Pergunta
-
Boa tarde
Fiz uma macro no Word 2013 que controla para todas as imagens o brilho e o contraste para os valores que desejo automaticamente.
Mas também quero controlar a nitidez e não faço qualquer ideia qual a sua sintaxe.
O estranho é não haver qualquer informação em lado nenhum. Se alguém conseguir ajudar-me. Obrigado.
A minha macro é esta:
Sub Macro1()
Dim myShape As Shape
For i = 1 To ActiveDocument.InlineShapes.CountActiveDocument.InlineShapes(1).Select
Set myShape = Selection.InlineShapes(1).ConvertToShape
With myShape
.PictureFormat.IncrementBrightness -0.1 ' 0.1 é 20%
.PictureFormat.IncrementContrast 0.2'. nitidez????
End With
Next iEnd Sub
Respostas
-
Calma aí, antes de soltar os cães, experimente o código abaixo:
Sub Macro1() Dim myShape As Shape Dim i As Long For i = 1 To ActiveDocument.InlineShapes.Count ActiveDocument.InlineShapes(1).Select Set myShape = Selection.InlineShapes(1).ConvertToShape With myShape .PictureFormat.IncrementBrightness -0.1 ' 0.1 é 20% .PictureFormat.IncrementContrast 0.2 'Se quiser resetar a nitidez, use o código abaixo: 'While .Count > 0 ' .Fill.PictureEffects.Delete 1 'Wend 'Nitidez: -0.5 significa 'borrar' 50%, 0.7 significa aumentar a nitidez em 70%, etc.
.Fill.PictureEffects.Insert(msoEffectSharpenSoften).EffectParameters(1).Value = 0.4 End With Next i End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 17 de julho de 2014 01:59
- Não Marcado como Resposta Joao Miguel48 quinta-feira, 17 de julho de 2014 08:25
- Marcado como Resposta Joao Miguel48 quinta-feira, 17 de julho de 2014 08:25
Todas as Respostas
-
-
-
-
Creio que tal não foi feito. É típico.
Ou seja, a equipe da Microsoft que faz o VBA ou Office não se deu ao trabalho de fazer tal instrução.
O que não deve ser muito difícil pois o Word já tem tudo prontinho para aparecer tal instrução no VBA do Office.
Possivelmente, existe outra forma de ajustar a nitidez através de correções da cor e outras coisas.
Mas para isso é necessário saber muito sobre processamento de imagens, tendo uma teoria com melhor forma de o fazer. Só que a Microsoft já fez quase tudo.
A frustração é que podia ser simples e não o é graças a Microsoft.
É típico.
- Editado Joao Miguel48 terça-feira, 15 de julho de 2014 14:21
-
Calma aí, antes de soltar os cães, experimente o código abaixo:
Sub Macro1() Dim myShape As Shape Dim i As Long For i = 1 To ActiveDocument.InlineShapes.Count ActiveDocument.InlineShapes(1).Select Set myShape = Selection.InlineShapes(1).ConvertToShape With myShape .PictureFormat.IncrementBrightness -0.1 ' 0.1 é 20% .PictureFormat.IncrementContrast 0.2 'Se quiser resetar a nitidez, use o código abaixo: 'While .Count > 0 ' .Fill.PictureEffects.Delete 1 'Wend 'Nitidez: -0.5 significa 'borrar' 50%, 0.7 significa aumentar a nitidez em 70%, etc.
.Fill.PictureEffects.Insert(msoEffectSharpenSoften).EffectParameters(1).Value = 0.4 End With Next i End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 17 de julho de 2014 01:59
- Não Marcado como Resposta Joao Miguel48 quinta-feira, 17 de julho de 2014 08:25
- Marcado como Resposta Joao Miguel48 quinta-feira, 17 de julho de 2014 08:25
-
Muito obrigado.
Funciona perfeitamente.
Tem que ser feito logicamente em duas macros.
uma com a nitidez.
E outra com o reset da nitidez mas esta ultima com apenas a instrução:
.Fill.PictureEffects.Delete 1
pois já estava dentro de um ciclo tipo With
E eu, normalmente, tenho que soltar os cães porque a informação na Microsoft é, no mínimo, muito muito confusa, mal arrumada, para não dizer mesmo a loucura total.
- Editado Joao Miguel48 quarta-feira, 16 de julho de 2014 18:25
-
Nem me diga! Eu fico cada vez mais decepcionado com o trabalho que a Microsoft vem fazendo com o VBA.
- Não atualiza o VBA desde 1999;
- A ajuda do VBA piora a cada edição do Office. Em 2007, cortaram vários exemplos e reduziram o texto de explicação de várias propriedades, métodos, instruções e funções. Em 2010, veio o lance online, que, por sorte, é possível desabilitar. A Microsoft se superou no Office 2013, causando insatisfação geral: a ajuda de um tópico agora demora 10 segundos para aparecer ao usuário, uma vez que está disponível apenas online* e abre um browser com numa URL de ajuda da Microsoft sobre o tópico. Pô, e se você não possuir acesso à internet no momento?;
- Não modernizou a interface do VBE (sem Faixa de Opções, ferramentas primitivas para escrever código);
- Bugs "milenares" que não são corrigidos;
- A cada nova versão, mais e mais métodos do modelo de objeto das aplicações são descontinuados;
- Criar interface para executar macros no Outlook usando o VBA está praticamente impossível no Office 2013;
- Falta de atenção para bibliotecas como TreeView, ListView, Calendar porque a Microsoft não teve o bom senso de criá-las para Office 64 bits;
- Bagunça geral nas constantes de compilação VBA7 e WIN64, principalmente ao se declarar chamadas API. Sobre chamadas API. A declaração incorreta dessas chamadas pode gerar crashes na aplicação Office.
- O VBA para Mac é de chorar. Isso não me afeta porque odeio Macs, mas ruim para a Microsoft porque afasta os Macfags.
- Falta multithread e robustez maior na segurança de macros. Herança de classes, alguns eventos importantes das aplicações, métodos decentes para automatizar o PowerPivot/View/Maps/Query, um tratamento de exceção decente, uma pilha de chamadas menos quebradiça, um coletor de lixo que não deixe vazar tanta memória, falta suporte à VBA no Web Apps e muito mais.
Eu poderia ficar chorando aqui por horas. Tudo bem, mas o VBA ainda é a melhor opção existente para automatizar documentos Office: http://www.ambienteoffice.com.br/officevba/visual_basic_for_applications_(vba)/
---
*Na verdade, a Microsoft disponibilizou uma ajuda offline de VBA para o Office 2013, mas é uma porcaria porque ela é "à parte", isto é, não é integrada ao VBE.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br