O MS Project Macro não será executado, exceto no menu "visualizar macros"

2

Então eu tenho uma macro que não tem erros. Se eu for ao visual básico e apertar F5 ou F8, ele será executado. Se eu for ao menu Exibir macros e escolher, ele será executado.

No entanto, se eu definir um atalho de teclado, colocá-lo na barra de ferramentas de acesso rápido ou adicioná-lo à faixa de opções, nenhum deles fará nada.

Este é o MS Project 2010 Professional. .

Informações adicionais: criei uma nova macro do zero e ela tem exatamente o mesmo sintoma. Parece ser um problema com o programa, não com a própria macro.

    
por Greg Viers 26.01.2018 / 15:58

3 respostas

0

Isso se tornou um problema com a configuração do meu perfil do Windows com a rede corporativa aqui. Dentro do projeto, há duas cópias do meu modelo global mostrando, uma era "Global.MPT" e a outra era "Global (+ empresa não armazenada em cache). Mover minhas macros para a segunda solução resolveu esse problema.

    
por 23.07.2018 / 18:01
0

Exporte seu módulo, abra-o no Notepad ou no Notepad ++. Role até a definição para o procedimento de macro; deve haver uma instrução Attribute ou duas nas primeiras linhas do corpo da sua macro:

Public Sub DoSomething()
Attribute DoSomething.VB_Description = "Does something"
Attribute DoSomething.VB_ProcData.VB_Invoke_Func = "A\n14"
    MsgBox "Hello"
End Sub

Aqui \n14 significa a combinação de teclas Ctrl + Shift , portanto, essa macro DoSomething é atribuída a Ctrl + Shift + A .

Se o atributo VB_ProcData não estiver lá, adicione-o. Observe que a sintaxe dos atributos de membro exige que o nome do membro qualifique o atributo (ou seja, o nome do procedimento é DoSomething , portanto, a instrução de atributo é DoSomething.VB_ProcData... ).

Em seguida, salve o arquivo, volte ao seu projeto VBA, remova o módulo e importe o arquivo modificado.

    
por 26.01.2018 / 17:02
-1

Eu encontrei este problema ao adicionar uma macro a um link rápido no MSP Pro 2016.

A macro foi gravada em vez de codificada diretamente e a criação de uma nova macro (por exemplo, o exemplo DoSomething() na resposta de Mathieu) funcionou.

Copiando o código de macro no Bloco de Notas, excluindo a macro original e criando uma nova versão colando ou digitando o texto em funcionamento.

Sub Baselining()

    baselineSave All:=True, Copy:=0, Into:=0
    baselineSave All:=True, Copy:=0, Into:=14

End Sub
    
por 23.07.2018 / 07:53