[Une autre question récente avec un titre similaire qui n'a pas encore reçu de réponse satisfaisante, et m'a donné aucune idée :-(]Suppression filigrane dans Word à partir d'Excel VBA (Redux) Différence entre Word et Excel VBA
C'est ma première tentative d'intégrer un peu d'automatisation de Word avec Excel VBA, j'ai donc commencé avec un enregistrement de macro dans Word VBA pour avoir un indice.Malheureusement, quand j'essaie de traduire cela en Excel, même en tenant compte de l'utilisation d'Excel local wrdDoc Pour qualifier les références, le code qui fonctionne dans Word VBA ne fonctionne pas à partir de Excel VBA.Full frustrant
Voici le code enregistré s nippet à partir de Word que j'ai commencé avec: [Nom de la forme modifié manuellement après l'enregistrement pour correspondre au nom attribué à l'image du filigrane]
ActiveDocument.Sections(1).Range.Select
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Shapes("US-CA watermark").Select
Selection.Delete
Voici l'extrait de code à partir d'Excel, je tirais de cette: [sWatermark chaîne prédéfini pour correspondre au nom de l'image]
With wrdDoc
.Sections(1).Range.Select
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
.Selection.HeaderFooter.Shapes(sWatermark).Select
.Selection.Delete
End With
Résultat: VBA étrangle chaque fois que je tente de sélectionner le filigrane (la ligne 3 dans le bloc avec).
J'ai essayé la ligne de problème avec et sans. préfixe [i.e. comme wrdDoc.Selection et juste Selection (comme dans la macro Word originale)].
J'ai essayé d'accéder au filigrane en tant que .HeaderFooter.shapes (1) après avoir vérifié qu'il n'y avait qu'un seul élément dans la plage. Encore une fois, cela semble fonctionner de manière plutôt satisfaisante dans Word VBA, mais jamais dans Excel VBA.
POURQUOI?!?!?!
'' .Selection' devrait être .Application.Selection' – Slai