Aide:Macro Word

Un article de Wikipédia, l'encyclopédie libre.

Cette page liste des macros Word facilitant certaines tâches sur Wikipédia avec le logiciel Word.

Sommaire

[modifier] WikiWord

WikiWord est un modèle pour Word qui permet soit de convertir un document fini utilisant les styles "normaux" (gras, italique, etc.) en syntaxe Wikipédia, soit d'aider à la mise en page de texte au format Wikipédia. Il est basé sur un modèle de conversion pour SPIP.

Pour l'installer, copier le fichier "WikipediaX.dot" (X est le numero de version) dans le répertoire "modèles" de Word. Pour convertir, il suffit d'appuyer sur le bouton "Wikipédia" de la barre d'outil standard Wikipédia.

Important : Il vous faut absolument désactiver la conversion automatique des ['] en [’] (dans Correction automatique/Lors de la frappe/Guillemets...). Autre solution : passer par le Bloc-Note de votre ordinateur qui reconvertira les apostrophes.


[modifier] Version 0.4

Fichier : media:Wikipedia4.dot (Image:Wikipedia4.dot)

Ajouts :

  • Convertit l'italique en : ''texte''
  • Convertit le gras en : '''texte'''
  • Convertit le gras+italique en : '''''texte'''''
  • Convertit le souligné en : [[texte]]
  • Convertit les titres 1 en : ==texte==
  • Convertit les titres 2 en : ===texte===
  • Convertit les titres 3 en : ====texte====

Bugs connus :

  • "gras+italique" ne marche pas, c'est ''''' et non pas ''''. Bug réparé : gras italique

[modifier] Version 0.51

Fichier : media:Wikipedia51.dot (Image:Wikipedia51.dot)

Ajouts :

  • Convertit les listes en * et #
  • Convertit les tables en WikiSyntax
  • Aide à l'édition : gras, italique, image, lien, titre (1,2,3)
  • Nouvelle barre d'outils

Bugs connus :

  • les styles (gras, italique, etc.) peuvent parfois être placés sur les retours à la ligne. Dans ce cas, il ne faudrait pas créer de WikiSyntax

[modifier] Version 0.52

Fichier : media:Wikipedia52.dot (Image:Wikipedia52.dot)

Ajouts :

  • Nouvelle icônes dans la barre d'outils
  • sélectionne automatiquement le mot sous le curseur au cas où aucun mot n'est selectionné quand on utilise la barre d'outils.

Bugs connus :

  • Comme 0.51 pour les styles sur les retours à la ligne.

[modifier] Macros Word

L'objet de ces Macros Word, ainsi que des macros OpenOffice.org, est d'améliorer la production de Wikipédia en quantité et en qualité.

  • en quantité :
    • parce que désormais vous pourrez convertir vos propres écrits (exposé, article, etc.) en article Wikipédia en quelques clics ;
    • parce que vous pourrez préparer des articles en étant déconnecté dans des lieux où vous avez accès à une documentation mais pas à Internet ou sans vous préoccuper de votre forfait.
  • en qualité : car vous aurez le temps de les compléter et de les enrichir avant de les mettre en ligne sans craindre de conflits de modification, et vous pourrez utiliser les correcteurs orthographiques et grammaticaux des traitements de texte pour éviter certaines coquilles.

[modifier] Wikilien

Sub WikiLien()
' ajoute des doubles crochets autour du texte sélectionné
    Selection.Copy
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = Selection.Text
        .Replacement.Text = "" & Selection.Text & ""
        .Forward = False
        .Wrap = wdFindContinue 
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    With Selection
        If .Find.Forward = True Then
            .Collapse Direction:=wdCollapseEnd
        Else
            .Collapse Direction:=wdCollapseEnd
        End If
        .Find.Execute Replace:=wdReplaceOne
        If .Find.Forward = True Then
            .Collapse Direction:=wdCollapseEnd
        Else
            .Collapse Direction:=wdCollapseEnd
        End If
        .Collapse Direction:=wdCollapseEnd
        .MoveRight Unit:=wdWord, Count:=3
'        .Find.Execute
    End With
End Sub


[modifier] CurseurAlaFin

Sub CurseurAlaFin()
' place le curseur à la fin du texte sélectionné
' à utiliser par exemple à la suite de WikiLien
    Selection.MoveRight Unit:=wdWord, Count:=3, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Copy
    Application.Run MacroName:="Normal.NewMacros.WikiLien"
    Selection.MoveRight Unit:=wdWord, Count:=3
    Selection.MoveLeft Unit:=wdCharacter, Count:=2
End Sub

[modifier] MiseEnCapitale

 Sub MiseEnCapitale()
' met tous les caractères du texte sélectionné en capitales
   With Selection.Font
       .Name = "Times New Roman"
       .Size = 12
       .Bold = False
       .Italic = False
       .Underline = wdUnderlineNone
       .UnderlineColor = wdColorAutomatic
       .StrikeThrough = False
       .DoubleStrikeThrough = False
       .Outline = False
       .Emboss = False
       .Shadow = False
       .Hidden = False
       .SmallCaps = False
       .AllCaps = True
       .Color = wdColorAutomatic
       .Engrave = False
       .Superscript = False
       .Subscript = False
       .Spacing = 0
       .Scaling = 100
       .Position = 0
       .Kerning = 0
       .Animation = wdAnimationNone
   End With
End Sub



[modifier] Discussion

Arno, tu t'occupes des tableaux ? Aoineko 10 fév 2004 à 12:00 (CET)

Voui. --Père Duchesne 10 fév 2004 à 15:13 (CET)Voilà le script à intégrer à Wikipedia5.dot :
Merci ! Par contre, je pensai a la WikiSyntax pour les tables. Ca serra pour la prochaine version ;o) Aoineko 11 fév 2004 à 10:39 (CET)
Je ne comprends pas la différence que tu fais entre tables et tableaux ? --Père Duchesne 11 fév 2004 à 11:25 (CET)
Je ne fait pas de difference entre tables et tableaux, mais entre HTML et WikiSyntax. Voir ici : http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables (mais c'est vrai que c'est pas encore très utilisé). Aoineko 11 fév 2004 à 14:13 (CET)
col1 col2
row1 abc Égypte
row2 Hug! et voila...
Voici donc pour y répondre wp_wiki_tableau --Père Duchesne 11 fév 2004 à 16:07 (CET)

Sub wp_wiki_tableau()

Dim tableau As Table
Dim aRange As Range

For Each tableau In ActiveDocument.Tables

    Dim i As Integer
    Dim j As Integer
    For i = 1 To tableau.Rows.Count
        For j = 1 To tableau.Columns.Count
            Selection.Find.ClearFormatting
            If i = 1 Then
                tableau.Cell(i, j).Range.InsertBefore "!"
            Else
                tableau.Cell(i, j).Range.InsertBefore "|"
            End If
            If j = 1 Then
                If i = 1 Then
                    tableau.Cell(i, j).Range.InsertBefore "{| border=1 cellspacing=0 " & vbCrLf
                Else
                    tableau.Cell(i, j).Range.InsertBefore "|- " & vbCrLf
                End If
            End If
            If i = 1 Then
                tableau.Cell(i, j).Range.InsertAfter " !"
            Else
                If j <> tableau.Columns.Count Then tableau.Cell(i, j).Range.InsertAfter " |"
            End If
        Next j
'        tableau.Cell(i, tableau.Columns.Count).Range.InsertAfter vbCrLf & "|"
    Next i
    tableau.Cell(tableau.Rows.Count, tableau.Columns.Count).Range.InsertAfter vbCrLf & "|} "
    Set aRange = tableau.ConvertToText(Separator:="*")
    aRange.Style = wdStylePlainText
    'teste si une ligne a bien été laissée avant et après le tableau
    If aRange.Start > 1 Then
        If ActiveDocument.Characters(aRange.Start - 2) <> Chr(13) Then
            aRange.InsertBefore Chr(13)
        End If
    End If
'     If ActiveDocument.Characters(aRange.End + 1) <> Chr(13) Then
'         aRange.InsertAfter Chr(13)
'     End If
Next tableau
RemplaceSeparateurEtoile
End Sub

Sub RemplaceSeparateurEtoile()

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "|*|"
        .Replacement.Text = "||"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "!*!"
        .Replacement.Text = "!!"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

[modifier] Exemple de wp_wiki_tableau

col1 col2  !
row1   abc   Égypte
row2   Hug!   et voila...




Sub wp_tableau()

Dim tableau As Table
Dim aRange As Range

For Each tableau In ActiveDocument.Tables

    Dim i As Integer
    Dim j As Integer
    For i = 1 To tableau.Rows.Count
        
        For j = 1 To tableau.Columns.Count
            
            Selection.Find.ClearFormatting
            tableau.Cell(i, j).Range.InsertBefore "<td>"
            If j = 1 Then
                tableau.Cell(i, j).Range.InsertBefore "<tr> "
                If i = 1 Then
                    tableau.Cell(i, j).Range.InsertBefore "<table> "
                End If
            End If
            tableau.Cell(i, j).Range.InsertAfter " </td>"
        Next j
       
        tableau.Cell(i, tableau.Columns.Count).Range.InsertAfter "</tr> "
    Next i
    tableau.Cell(tableau.Rows.Count, tableau.Columns.Count).Range.InsertAfter "</table> "
    
    Set aRange = tableau.ConvertToText(Separator:=" ")
    aRange.Style = wdStylePlainText
    
    'teste si une ligne a bien été laissée avant et après le tableau
    If aRange.Start > 1 Then
        If ActiveDocument.Characters(aRange.Start - 2) <> Chr(13) Then
            aRange.InsertBefore Chr(13)
        End If
    End If
    If ActiveDocument.Characters(aRange.End + 1) <> Chr(13) Then
        aRange.InsertAfter Chr(13)
    End If
    
Next tableau

End Sub

[modifier] Test :

texte1  texte2  texte3 
texte4  texte5  texte6 

[modifier] Voir aussi

Autres langues