GraffitiX Index du Forum

 
 Sujets suivisSujets suivis   FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Ma première macro pour Word 2008

 
Poster un nouveau sujet   Répondre au sujet    GraffitiX Index du Forum -> Bureautique
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
jjardoino
Site Admin


Inscrit le: 14 Fév 2005
Messages: 3127
Localisation: Paris

MessagePosté le: Sam 15 Mar 2008 11:49    Sujet du message: Ma première macro pour Word 2008 Répondre en citant

Voulant me coucher moins bête, j'ai enfin pu mener à terme la création d'une macro utile pour Word 2008. Il s'agissait d'effectuer un collage spécial sans passer par les dialogues de Word, afin de coller du texte sans style. Déterminer l'emplacement du collage et effectuer celui-ci était simple, mais le résultat n'était pas satisfaisant car le curseur restait placé avant le texte collé alors que, à l'usage, on attend plus souvent qu'il soit placé après.

Pour cela j'ai été aidé par le PDF AppleScript pour Word fourni par Microsoft (voir cet article), mais aussi par une piste proposée par xxedl, un participant aux Forums. Cette piste consistait à placer une balise en fin de texte collé (§*§ par exemple). Après le collage, il suffit donc que le script cherche et supprime cette chaîne ajoutée pour que le curseur se trouve après le texte collé.

Voici les instructions commentées du script :
Code:
tell application "Microsoft Word"
activate

1 - effacement sélection en cours (optionnel)
L'étape est optionnelle mais, si on l'utilise, l'instruction conditionnelle est alors indispensable. Si la commande d'effacement de sélection est effectuée alors que rien n'est sélectionné dans un paragraphe vide, on risque de perdre le style du paragraphe. On teste donc s'il y a bien une sélection.

Code:
if selection type of selection is not selection ip then
delete selection
end if

2 - définition de la zone d'action
Code:
set myRange to collapse range text object of selection direction collapse end

3 - insertion de la balise (le curseur restera à gauche)
Code:
insert text "§*§" at myRange

4 - le collage sans style proprement dit
Code:
paste special myRange data type paste text

5 - recherche et sélection de la balise
Code:
set selFind to find object of selection
set forward of selFind to true
set wrap of selFind to find stop
set content of selFind to "§*§"
execute find selFind

6 - suppression de la chaîne sélectionnée (balise)
Code:
delete selection

maintenant le curseur est à la fin du texte collé et le script est terminé
Code:
end tell

On peut tout aussi bien ne pas utiliser l'étape 1, auquel cas on préserve le texte éventuellement sélectionné au moment du collage. Mais, quand j'utilise le collage sans style, c'est le plus souvent pour remplacer du texte déjà formaté. Si, exceptionnellement, je souhaite ne pas remplacer la sélection, je penserai naturellement à désélectionner avant de coller, tout comme je le ferais avec un Commande V classique...

Votre script peut être accessible à partir du menu Scripts de Mac OS X (installé via l'Utilitaire AppleScript) ou bien dans le menu Scripts d'Office dont le dossier se trouve dans ~/Documents/Données Utilisateurs Microsoft. Dans ce dernier cas, vous pourrez attribuer un raccourci-clavier à votre script.

En effet, les Scripts ne sont pas accessibles par l'option de personnalisation de clavier de Word (alors que les macros l'étaient dans les versions précédentes). Mais, en observant les noms des scripts du sous-dossier Automator, on comprend vite qu'on peut inclure le raccourci dans le nom de fichier du script. Par exemple, scc à la fin du nom donne le raccourci Majuscule Contrôle C ("s" pour majuscule, ou shift en anglais, le premier "c" pour Contrôle et le deuxième "c" pour la lettre "c").
_________________
Jean-Jacques Ardoino
Si vous voulez aider GraffitiX...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    GraffitiX Index du Forum -> Bureautique Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com