Vous avez travaillé à plusieurs
reprises avec des fichiers de type TXT. Vous avez même créé
un petit éditeur dans la partie Débutant de cette formation.
Un dictionnaire pourrait sans doute être utile à certains
d'entre vous. Encore une fois, vous ne créerez rien (pourquoi
le faire puisque ça existe déjà): vous allez utiliser celui
de M. Gates (version 97 et 2000). Il existe cependant une
condition sine qua non à cet exercice: posséder le logiciel
Word.
-
Créez une nouveau
programme que vous nommez Ex_14xx.vbp. Nommez la feuille
F_Dictionnaire et réglez la propriété CAPTION à
Correction avec le dictionnaire Word.
-
Allez au menu Projet,
option Références. Cochez Microsoft Word 9.0
Object Library. Cliquez sur OK. Cette étape est
essentielle si vous désirez que le programme fonctionne.
-
Placez sur cette
feuille une zone de texte que vous nommez ZT_Contenant.
Changez les propriétés suivantes:
-
MULTILINE
= true
-
HEIGHT =
2535
-
WIDTH =
6255
-
TEXT =
vide
-
Ajoutez deux boutons
sous la zone de texte: le premier se nomme BO_Stat et la
propriété CAPTION indique Statistiques; le second
s'appelle BO_Corr et la propriété CAPTION indique
Correction.
-
Placez une
étiquette entre les deux boutons. Voici ses propriétés.
-
Votre feuille
devrait maintenant ressembler à celle ci-dessous.

-
Passez maintenant à la codification.
Voici d'abord la création du lien avec le dictionnaire
Word. Ce code se place dans la partie Général de la
feuille.
Dim MonDictionnaire As New Document
Dim V_DIctVisible As Boolean
Const TOUCHE_F7 = 118
'Déclaration de la constante F7
-
Ajoutez ensuite le
script suivant au bouton BO_Stat.
Private Sub Bo_Stat_Click()
Dim V_Dial As Word.Dialog 'Initialisation
de variable
'Copier le texte dans un document Word
MonDIctionnairel.Range = ZT_Contenant.Text
'Créer un objet pour contenir les paramètres de la boîte de dialogue
Set V_Dial = MonDictionnaire.Application.Dialogs(wdDialogDocumentStatistics)
'Compter les mots et les caractères
V_dial.Execute
'Afficher les résultats dans
l'étiquette à cet effet
ET_Stat.Caption = Str(V_Dial.Words) & " mots, " &
Str(V_dial.Characters) & " caractères"
End Sub
-
Enregistrez votre
programme et testez-le en inscrivant quatre ou cinq mots,
puis en cliquant sur le bouton Statistiques. Le
nombre de mots et de caractères s'affiche dans
l'étiquette à cet effet.
-
Votre objectif
premier n'étant pas de compter les mots, mais de
découvrir les erreurs orthographiques, continuez votre
programme en ajoutant la procédure Form_Load suivante,
laquelle servira à enregistrer dans la variable si
l'application est visible.
Private Sub Form_Load()
'Déterminer si
l'application est visible
V_DictVisible = MonDictionnaire.Application.Visible
End Sub
-
Ajoutez ensuite le
code du bouton BO_Corr qui servira à corriger le texte.
Private Sub BO_Corr_Click()
MonDictionnaire.Range.Text = ZT_Contenant
'Ajout du texte
MonDictionnaire.Application.Visible = True
'Word est-il visible?
AppActivate MonDictionnaire.Application.Caption
'Activation de Word
MonDictionnaire.Range.CheckSpelling
'Vérifier l'orthographe
ZT_Contenant = MonDictionnaire.Range.Text
'Mise à jour des corrections
'Suppression
du caractère Null ajouté par Word
ZT_Contenant = Left(ZT_Contenant, Len(ZT_Contenant) - 1)
AppActivate Caption
'Activation de l'application
End Sub
-
Il faut aussi
ajouter une procédure qui s'exécutera lors du déchargement de la
feuille une fois l'opération terminée.
Private Sub Form_Unload(Cancel As
Integer)
If V_DictVisible Then
MonDictionnaire.Close
savechanges:=False
'Fermer le document
Else
MonDictionnaire.Application.Quit
savechanges:=False
'Fermer Word
End If
End Sub
-
Au début de la
programmation de cette fiche, vous avez déclaré une
constante pour la touche F7. Celle-ci vous permettra
d'effectuer la correction d'un mot seulement, sans ouvrir
Word. Pour y parvenir, commencez par ajouter une seconde
feuille que vous appelez F_Sugg et dont le CAPTION
est Suggestions.
-
Créez sur cette
feuille une zone de liste (ListBox) que vous nommez
ZL_Sugg.
-
Ajoutez aussi deux
boutons: BO_remplace dont le CAPTION est Remplacer
et BO_Annuler dont le CAPTION est Annuler. Voici à
quoi ressemble cette fenêtre une fois terminée.

-
Ajoutez le code suivant à l'événement KeyDown
de la zone de texte ZT_Contenant.
Private Sub ZT_Contenant_KeyDown(KeyCode As Integer, Shift As Integer)
Dim V_Corrections 'Déclaration
de variable
If KeyCode = TOUCHE_F7 Then 'Si
la touche F7 est enfoncée
If ZT_Contenant.SelLength = 0 Then
SendKeys "+^{Right}"
'Sélectionner le mot
End If
'Vérifier l'orthographe de la sélection
Set V_Corrections = GetSpellingSuggestions(ZT_Contenant.SelText)
If V_Corrections.Count Then
'Afficher les suggestions si
nécessaire
F_sugg.Affiche V_Corrections
End If
End If
End Sub
-
Il faut aussi
ajouter la procédure suivante pour remplacer le mot si
nécessaire.
Friend Sub Remplace(Word As String)
ZT_Contenant.SelText = Word 'Remplacement
du mot
End Sub
-
Il reste maintenant
à placer les procédures dans la feuille F_Sugg.
Premièrement la procédure permettant d'afficher les
suggestions de Word.
Friend Sub Affiche(Corrections)
Dim Word
'Déclaration de variable
For Each Word In Corrections
'Ajout des mots
ZL_Sugg.AddItem Word
Next Word
ZL_Sugg.Selected(0) = True 'Sélection
de la première suggestion
Show vbModal 'Affichage
de la feuille
End Sub
-
Voici le code à
ajouter dans les boutons Bo_Remplace et Bo_Annuler.
Private Sub Bo_Remplace_Click()
F_dictionnaire.Remplace ZL_Sugg.List(ZL_Sugg.ListIndex)
'Remplace le mot
Unload Me
'Décharge la feuille
End Sub
Private Sub BO_Annuler_Click()
Unload Me
'Décharger la feuille
End Sub
-
Sauvegardez le tout
et testez votre application. Sélectionnez un mot du texte
que vous savez contenir une erreur et enfoncez la touche
F7. Choisissez la bonne forme du mot parmi ceux
suggérés.
Application:
- Essayez d'ajouter la section
permettant de vérifier un mot à l'aide de la touche F7
à votre programme Ex_12xx.vbp Enregistrez votre
nouvelle version sous le nom Ex_14bxx.vbp.
|