Indenter et colorer le code source dans un fichier word
ba3ouda
Messages postés12Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention 2 novembre 2008
-
1 mai 2007 à 11:20
ba3ouda
Messages postés12Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention 2 novembre 2008
-
3 mai 2007 à 11:03
salut
je voulais copier le code source de mon projet dans word, mais je veux avoir le texte indenté et les mots clés colorés comme en vb6
est ce que quelqu'un a un outils qui permet de faire ca
merci
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 1 mai 2007 à 15:39
Salut,
j'ai transformé notre source (celle faite avec PCPT) pour l'utiliser dans Word.
(Désolé, y a des choses obsolète, mais la flemme de virer certains bouts de code)
Je te décompose tout en 2 messages, ouvre ton document Word, fais Alt F11.
Insère un , nomme le UserForm1. Place dedans un TextBoxla propriété Multiline à True et EnterKeyBehavior à True.
Place 2 boutons, un nommé cmdValider et l'autre cmdAnnuler.
Place ce code :
Private Coloration As AfCls_VbToHtml
Private Config As New AfCls_IniLite
Private Sub cmdAnnuler_Click()
Unload Me
End Sub
Private Sub cmdValider_Click()
Dim sFichier As String
Dim MyStart As Long
Dim MyEnd As Long
MyStart Selection.Start: If MyStart 0 Then MyStart = 1
Set Coloration = New AfCls_VbToHtml
'*** instance de Coloration vers la classe AfCls_VbToHtml pour récupérer _
les infos utiles durant la conversion
With Coloration
.ColorCodeVB = Config.ReadIniLong("COULEUR", "CodeVB")
.ColorFonctionVB = Config.ReadIniLong("COULEUR", "FonctionVB")
.ColorCommon = Config.ReadIniLong("COULEUR", "Commun")
.ColorComment = Config.ReadIniLong("COULEUR", "Commentaire")
.ColorText = Config.ReadIniLong("COULEUR", "Chaine")
.ColorNumber = Config.ReadIniLong("COULEUR", "Nombre")
.FontName = Config.ReadIniString("APPLICATION", "FontName")
Deuxième étape, insère un module, et place ce code qui va servir à créer un menu dans Word :
Sub Convert()
UserForm1.Show
End Sub
Sub AjoutMenu()
On Local Error Resume Next
'Voir si la barre a ete deja installee avant
For I = 1 To CommandBars.Count
If CommandBars(I).Name = "Colorier du code VB" Then GoTo 1
Next
'Sinon on ajoute la barre
'on enregistre le module majmin dans NORMAL
CustomizationContext = NormalTemplate
Application.OrganizerCopy ActiveDocument.FullName, NormalTemplate.FullName, "MajMin", wdOrganizerObjectProjectItems
CommandBars.Add "Colorier du code VB"
'Puis les boutons
Set bouton = CommandBars("Colorier du code VB").Controls.Add(Type:=msoControlButton, Temporary:=True)
With bouton
.Caption = "Affiche une Form afin de coller le code à colorier"
.OnAction = "Module1.Convert"
.Style = msoButtonCaption
End With
'Positionnement de la barre apres lui avoir donner la visibilite
With CommandBars("Colorier du code VB")
.Visible = True
.Position = msoBarTop
End With
NormalTemplate.Save
1:
End Sub
Sub SupprMenu()
On Local Error Resume Next
Dim ctl As CommandBar
For Each ctl In Application.CommandBars
If ctl.Name = "Colorier du code VB" Then ctl.Delete
Next ctl
End Sub
Le code de la classe est dedans. Au pire fait un import.
De toutes facons, faut que tu télécharges la sources, pour récupérer le dossier Datas et ce qu'il y a dedans, et tu dois le placer dans le répertoire de WinWord.
Voilà, le tour est joué (enregistre ton doc, ferme le et réouvre le). Avec ton doc Word, quand tu as besoins de colorer du code, clique sur le nouveau Menu, une form apparait, colle ton code dans le TextBox et clique sur Valider, ton code se colorie et s'insère à l'endroit du curseur dans le document
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~