web-dev-qa-db-fra.com

"Sous-fonction ou fonction non définie" lors de la tentative d'exécution d'un script VBA dans Outlook

En tant que première étape dans la création d'un script VBA pour redimensionner une image actuellement sélectionnée à 100% x 100%, j'essaie de reproduire l'exemple dans http://msdn.Microsoft.com/en-us/library/ee814736 (v = office.14) .aspx . La macro est très simple:

Sub Test()
   MsgBox ("Hello world")
End Sub

Le script VBA a simplement été créé dans "Projet1" qui s’ouvre par défaut lorsque l’on appuie sur Alt + F11. Cependant, le message d'erreur "Sous-fonction ou fonction non définie" persiste lorsque j'essaie d'exécuter le script VBA (figures 1 et 2).

Comment puis-je rendre le script VBA 'accessible' à Outlook?

Running the "Test" macro in Microsoft Outlook Figure 1 Exécution de la macro "Test" dans Microsoft Outlook

enter image description here Figure 2 Erreur "Sous-fonction ou fonction non définie" avec arborescence du module en arrière-plan

6
Kurt Peek

J'ai résolu le problème en suivant de plus près les instructions sur msdn.Microsoft.com. Là, il est indiqué qu'il faut créer la nouvelle macro en sélectionnant Développeur -> Macros, en tapant un nouveau nom de macro et en cliquant sur "Créer". En créant la macro de cette manière, j'ai pu l'exécuter (voir la boîte de message ci-dessous).

enter image description here

4
Kurt Peek

Cela ne répond probablement pas à votre question, mais j'avais la même question et elle a répondu à la mienne.

J'ai changé Private Function en Public Function et cela a fonctionné.

1
Emwat

Cette erreur «Sub ou Function non définie» viendra chaque fois qu'il y a une erreur de compilation dans le script, veuillez donc vérifier la syntaxe de votre script.

J'imagine que c'est pourquoi, lorsque vous utilisez msqbox au lieu de msgbox, l'erreur est renvoyée.

1
Arpit Jain

J'ai eu une situation similaire avec ce problème. Dans ce cas, cela aurait ressemblé à ceci

Sub Test()
   MsqBox ("Hello world")
End Sub

Le problème était que j’avais beaucoup plus de code et que je ne pouvais pas le reconnaître, il y avait une faute d’orthographe dans "MsqBox" (q au lieu de g) et j’avais donc une erreur, c’était vraiment trompeur, sur cette erreur comme celle-là, peut-être que quelqu'un d'autre remarquera qu'elle a été causée par une faute d'orthographe telle que celle-ci ...

1
Arturas M

Je pense que vous devez mettre à jour vos bibliothèques pour que votre code VBA fonctionne, votre utilisation de MS Outlook

0
user3287522

Je dois ajouter que, si le nom du module et le sous-nom sont les mêmes, vous avez ce problème. Envisagez de changer le nom du module en mod_Test au lieu de "Test", qui est identique à celui du sous-programme. 

0
Kangqiao Zhao