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 

Office 2008 et AppleScript

 
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: Ven 14 Mar 2008 8:59    Sujet du message: Office 2008 et AppleScript Répondre en citant

Nous le savons, Office 2008 pour Mac ne supporte plus le VBA (Visual Basic) qui permettait de gérer, sous les versions précédentes d'Office, les macros notamment utilisées sous Word et Excel. Pour utiliser des macros, il faudra passer par AppleScript. Si la tâche ne sera pas toujours simple, il existe tout de même quelques éléments pour entamer la transition.

En attendant de trouver des aides francophones, voici déjà deux sources d'info glanées : d'abord une série d'articles de MacTech qui jette quelques bases. Et, surtout, sur le site MacTopia de Microsoft, la page Developers permet de télécharger des PDF de référence la transition des macros en AppleScript.

C'est déjà ça, même si tout n'est pas éclairci. Par exemple, j'ai voulu refaire en AppleScript une macro pour Word qui effectue directement (sans passer par les dialogues) un collage sans style du texte contenu dans le Presse-papiers.

En VBA, la macro était simple et ne nécessitait qu'une instruction et un paramètre. Le texte était collé correctement et le curseur était automatiquement placé à la fin du texte collé.

En AppleScript, la programmation est un peu plus tordue mais reste basique une fois qu'on a fouillé dans le Dictionnaire de Word. Mais un paramètre semble manquer : la position du curseur une fois le collage effectué. Par défaut, le curseur reste placé au début du texte collé, alors qu'il est évidemment plus pratique qu'il soit placé à la fin. Et je ne suis pas sûr qu'une instruction permette aujourd'hui de fonctionner autrement.

Ce n'est qu'un exemple. Je pense que d'autres macros seront traduites de façon plus efficaces et fonctionneront aussi bien en AppleScript (ce qui ne retire rien aux critiques envers l'abandon du VBA qui assurait la compatibilité des macros avec Office Windows).

Mais, si certains paramètres ou instructions ont été omis, notamment pour la manipulation du texte, nous pourrions nous retrouver dans une situation où, souhaitant réaliser une petite macro pratique comme dans l'exemple que j'ai choisi, on résolve 95 % de la tâche en restant bloqué sur un petit détail qui a toute son importance (le placement du curseur).

Surtout quand on sait déjà qu'une telle macro pour le collage sans style est déjà un pis aller : Microsoft aurait pu songer à permettre d'attribuer un raccourci personnalisé à la fonction pour que l'utilisateur ne perde pas son temps dans les dialogues.

Mais, bon, l'important reste le fait que les informations concernant la transition vers l'AppleScript commencent à être diffusées, et nous pourrons espérer des évolutions.
_________________
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
xxedl
Tchatcheur actif


Inscrit le: 22 Juil 2007
Messages: 21

MessagePosté le: Ven 14 Mar 2008 15:27    Sujet du message: Répondre en citant

Pour mettre ton curseur tout en bas dans Word par exemple :

tell application "Microsoft Word"
activate
tell application "System Events" to key code 121
end tell

À adapter à ta"macro" Applescript, bien entendu.

Didier
_________________
Didier
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jjardoino
Site Admin


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

MessagePosté le: Ven 14 Mar 2008 19:03    Sujet du message: Répondre en citant

xxedl a écrit:
Pour mettre ton curseur tout en bas dans Word par exemple :

tell application "Microsoft Word"
activate
tell application "System Events" to key code 121
end tell

À adapter à ta"macro" Applescript, bien entendu.

Didier

Merci pour l'info mais, dans mon exemple, ce ne sera pas adapté. On peut être amené à faire un collage sans style n'importe où dans un texte. J'avais même songé à aller au paragraphe suivant puis revenir d'un caractère. Mais cela n'est pas encore suffisant, dans le cas où on colle au milieu d'un paragraphe.
_________________
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
xxedl
Tchatcheur actif


Inscrit le: 22 Juil 2007
Messages: 21

MessagePosté le: Ven 14 Mar 2008 23:36    Sujet du message: Répondre en citant

Citation:
Merci pour l'info mais, dans mon exemple, ce ne sera pas adapté. On peut être amené à faire un collage sans style n'importe où dans un texte. J'avais même songé à aller au paragraphe suivant puis revenir d'un caractère. Mais cela n'est pas encore suffisant, dans le cas où on colle au milieu d'un paragraphe.


Bon, tu m'cherches ou quoi ???
Wink
Alors, voici une autre solution. Désolé, pas le temps de pinailler mais voici l'idée :
- Tu ajoutes une balise à ton texte à coller (un truc style "&$&" par exemple).
- Tu colles ton texte et sa balise.
- Tu recherches cette balise.
- Tu l'effaces.
Et hop, après ça, ton curseur reste à sa place, bien à la fin du texte collé.

Bon, pour faire tout ça, y a cette méthode. Un peu tiré par les cheveux, ok, mais ça marche :

tell application "Microsoft Word"
activate

-- Ici, ta méthode qui colle ton texte et la balise "&$&".

-- On envoie Home, pour être sûr que la recherche va s'effectuer de haut en bas :
tell application "System Events" to key code 116
-- Pomme-F pour appeler le dial de recherche de Word :
tell application "System Events" to keystroke "f" using command down -- Pomme-F
-- On "tape" la balise dans le dial de recherche :
tell application "System Events" to keystroke "&"
tell application "System Events" to keystroke "$"
tell application "System Events" to keystroke "&"
delay 1
-- On valide par return pour lancer la recherche :
tell application "System Events" to keystroke return
delay 1
-- Esc pour quitter le dial de recherche :
tell application "System Events" to key code 53
delay 1
-- Backspace pour effacer la balise :
tell application "System Events" to key code 51

-- Bon, c'est pas très propre mais le curseur est bien à la place voulue.
end tell
_________________
Didier
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jjardoino
Site Admin


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

MessagePosté le: Sam 15 Mar 2008 8:21    Sujet du message: Répondre en citant

xxedl a écrit:
Alors, voici une autre solution. Désolé, pas le temps de pinailler mais voici l'idée :
- Tu ajoutes une balise à ton texte à coller (un truc style "&$&" par exemple).
- Tu colles ton texte et sa balise.
- Tu recherches cette balise.
- Tu l'effaces.
Et hop, après ça, ton curseur reste à sa place, bien à la fin du texte collé.

Merci, je vais y réfléchir.

Quant à la façon de chercher la balise, on peut le faire sans ouvrir le dialogue de recherche et simuler la saisie des caractères.

Mais il me resterait à trouver le moyen d'ajouter une chaîne à la suite du texte contenu dans le Presse-papiers. Il faut que j'y réfléchisse.

Il reste tout de même que la macro, en VBA, se résumait à ceci :

Code:
Sub ColleSansStyle()
    Selection.PasteAndFormat (wdFormatPlainText)
End Sub

Smile
_________________
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
jjardoino
Site Admin


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

MessagePosté le: Sam 15 Mar 2008 9:30    Sujet du message: Répondre en citant

xxedl a écrit:
Alors, voici une autre solution. Désolé, pas le temps de pinailler mais voici l'idée :
- Tu ajoutes une balise à ton texte à coller (un truc style "&$&" par exemple).
- Tu colles ton texte et sa balise.
- Tu recherches cette balise.
- Tu l'effaces.
Et hop, après ça, ton curseur reste à sa place, bien à la fin du texte collé.

La solution, pour l'instant, c'est bien l'ajout de la balise. Mais, plutôt que de l'ajouter dans le Presse-papier avant de coller l'ensemble, je me suis orienté vers l'insertion de la chaîne de balise directement dans le texte, puis le collage du contenu du Presse-papier.

Et j'obtiens, dans l'ordre, le curseur au début suivi par le texte collé et, enfin, la chaîne choisie pour la balise.

Effectivement, il n'est plus très compliqué, ensuite, de rechercher et de supprimer la balise. Ce qui aura pour effet de forcer le placement du curseur à l'emplacement de la balise supprimée, donc à la suite du texte collé.
_________________
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