2009-10-06 9 views
3

J'essaie d'écrire une macro de mot qui sélectionne tout ce qui est Titre 2 (ou un style spécifique), le copie et le colle dans un document Excel. L'enregistrement de macro ne fonctionne pas ici et je suis perplexe quant à la syntaxe pour les commandes nécessaires. Est-il possible de faire?Une macro de mot plus complexe que je suis habitué (ie je ne peux pas l'enregistrer)

P.S. Ce serait vraiment génial si elle pouvait sélectionner n'importe quel style à côté du curseur (si vous cliquez sur un mot Titre 1 puis exécutez la macro, elle sélectionne tout ce qui est Titre 1) mais je doute que cela soit possible.

Merci beaucoup, et j'espère avoir bientôt des réponses (avec de la chance ce soir).

Pavja2

C'est ce que je jusqu'à présent (note, je ne sais pas comment faire la chose Excel donc si quelqu'un sait que ce serait une grande aide à):

Selection.Find.ClearFormatting 
Selection.Find.Style = ActiveDocument.Styles(_ 
    "Heading 2,Heading 2 Char Char2 Char1,Heading 2 Char1 Char Char1 Char,Heading 2 Char Char Char Char1 Char,Heading 2 Char1 Char Char Char1 Char Char1,Heading 2 Char Char Char Char Char1 Char Char,Heading 2 Char2 Char Char Char Char Char,Heading 2 Cha" _ 
    ) 
Selection.Find.ParagraphFormat.Borders.Shadow = False 
With Selection.Find 
    .Text = "" 
    .Replacement.Text = "" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = True 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
Selection.Copy 

Donc, quelqu'un peut comprendre cela ...? Bump ... J'ai vraiment besoin de réponses à ce sujet ...

+0

Tout ce dont j'ai besoin pour travailler avec est le mot 2003 –

+0

Avez-vous déjà essayé? –

+0

Bien sûr ... c'est ce que l'enregistrement me donne –

Répondre

4

Ceci est un exemple court et n'aborde pas la partie Excel, mais j'espère que ça fait du bien. Il utilise le style à partir de la sélection ou du début de la sélection et affiche la sortie dans la fenêtre Exécution.

Public Sub SelectStyles() 
    On Error GoTo MyErrorHandler 

    Dim currentDocument As Document 
    Set currentDocument = ActiveDocument 

    Dim selectedStyle As String 
    selectedStyle = Selection.Style 

    Dim findRange As Range 
    Set findRange = currentDocument.Range 
    findRange.Find.ClearFormatting 
    findRange.Find.Style = selectedStyle 

    Do While (findRange.Find.Execute) 
     Debug.Print findRange.Text 
     DoEvents 
    Loop 

    Exit Sub 

MyErrorHandler: 
    MsgBox "SelectStyles" & " error: " & Err.Number & vbCrLf & Err.Description 
End Sub 
Questions connexes