Evernote et VBA – Episode 7

Banniere Evernote

Dans l’épisode précédent de notre saga « Evernote et VBA« , nous avons créé des tags (mots-clefs). Dans cette suite, nous allons voir comment lister les tags existant dans Evernote.

Résumé des épisodes précédents

Tout ce qui suit dépend des articles précédents. Pensez à les consulter si vous passez pour la première fois par ici (vous aurez besoin du VBA présenté dans ces articles) :

Lister les tags

Comme il s’agit aujourd’hui d’un test d’affichage, nous n’allons pas faire appel à la classe EvernoteClient des articles précédents. La procédure qui suit est donc indépendante, à reprendre dans un module standard (mais elle fait quand même appel aux constantes EN_UTILISATEUR et EN_MOTDEPASSE définies dans le premier article de la série). Voici le code :

Tester le code

  1. Faites apparaître la fenêtre Exécution (Ctrl + G).
  2. Positionnez votre curseur quelque part entre le Sub et le End Sub du bloc ci-dessus.
  3. Cliquez sur l’icône Exécuter Sub/UserForm.
  4. Vous obtenez quelque chose comme ceci dans la fenêtre Exécution :tags_recherche.png

Première partie du code : GetTagByName()

  • Dans l’API VBA pour Evernote, les tags ne sont pas manipulés directement comme des chaînes de caractères (String), mais comme des objets Tag (plus précisément enapiLib.Tag).
  • La première portion de code définit une variable chaîne strTag, et essaie d’obtenir l’objet Tag correspondant, s’il existe, grâce à la méthode GetTagByName(). On récupère soit un objet Tag existant, soit la valeur Nothing quand le tag n’a pas été trouvé.
  • Notez que la méthode GetTagByName() attend un nom exact, il ne s’agit pas d’un critère partiel. Dans mon cas, je n’ai pas de tag « acc » dans mon Evernote, la recherche échoue. Mais avec un tag « access« , ça fonctionne.
  • Vous noterez aussi que la recherche n’est pas dépendante des majuscules. La recherche sur « access » trouve bien le tag « Access« .

Deuxième partie du code : GetMatchingTags()

  • La deuxième partie du code utilise la méthode GetMatchingTags() pour extraire cette fois une liste de tags correspondant à un critère partiel. Ici : tous les tags démarrant par « a« . Par « critère partiel », on entend : « début de tag » (une recherche sur « cc » ne trouvera pas le tag « Access« , notamment).
  • Le nombre qui suit le critère partiel (dans mon exemple : 100) est le nombre maximum de tags devant être extraits.
  • La méthode GetMatchingTags() renvoie une collection (liste) de tags, ce qui est logique. Il s’agit cette fois de la classe enapiLib.Tags. Une boucle For Each peut être utilisée pour afficher chaque instance de Tag contenue dans la collection.
  • Si vous passez une chaîne vide "" à GetMatchingTags(), vous obtenez la liste de tous vos tags.

Troisième partie du code : propriété Tags

  • Si vous souhaitez obtenir la liste de tous les tags, vous pouvez utiliser la propriété Tags, couplée avec une boucle For Each. Ce sera plus pratique – et sans doute plus performant – que de lister tous les tags par GetMatchingTags().
  • Les tags ne sont pas nécessairement fournis par ordre alphabétique, comme vous le voyez sur la capture d’écran.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *