Word : Macro die tekst bijvoegt bij opslaan

  • Onderwerp starter Onderwerp starter MBBS
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

MBBS

Gebruiker
Lid geworden
7 feb 2006
Berichten
269
Het betreft een macro in WORD.

Ik heb een macro die het bestand opslaat (eveneens via dit forum) ;)

Nu zou ik graag hebben dat op het ogenblik dat het bestand wordt opgeslagen er vooraan en achteraan een bepaalde tekenreeks wordt bijgevoegd.
BV.
--start--
--end--

Bijkomend vraagje.
Na het opslaan opent hij automatisch een nieuw bestand (een bestaand "leeg" document).
Is het ook mogelijk om gewoon een nieuw document te openen (eentje dat niet moet bestaan).


Code:
Sub BestandOpslaan()
Dim NR As String
 
BestandsNaam:
NR = InputBox("Typ de bestandsnaam", "Bestandsnaam")
If Not NR = "" Then
    ChangeFileOpenDirectory "C:\"
    ActiveDocument.SaveAs FileName:=NR & ".doc", FileFormat:=wdFormatDocument, AddToRecentFiles:=True
Else
    GoTo BestandsNaam
End If
 
Laatst bewerkt:
Ik zou er zelf een mogelijkheid inbouwen om de lus te onderbreken. Ongeveer zo:
Code:
Sub BestandOpslaan()
Dim NR As String
Dim Response

BestandsNaam:
    Response = MsgBox("Wil je het bestand opslaan?", vbYesNoCancel + vbDefaultButton1, "Bestand opslaan")
    If Response = vbYes Then
        NR = InputBox("Typ de Bestandsnaam:", "Bestandsnaam", ActiveDocument.Name)
        If NR & "" = "" Then Exit Sub
        Selection.HomeKey Unit:=wdStory
        Selection.TypeText Text:="--START--"
        Selection.TypeParagraph
        Selection.EndKey Unit:=wdStory
        Selection.TypeText Text:="--EIND--"
        ChangeFileOpenDirectory "C:\"
        ActiveDocument.SaveAs FileName:=NR & ".doc", FileFormat:=wdFormatDocument, AddToRecentFiles:=True
    ElseIf Response = vbNo Then
        GoTo BestandsNaam
    Else
        Exit Sub
    End If
End Sub
 
Laatst bewerkt:
Code:
Sub BestandOpslaan()
  on error resume next

  with activedocument.content
    .insertafter "Dit is het einde"
    .insertbefore "dit is het begin"
    .parent.saveas InputBox("Typ de bestandsnaam", "Bestandsnaam") &".doc"
  end with
End sub

PS. Kun je svp de taalfout uit je titel halen ?
 
Beide aangereikte oplossingen werken perfect !

Waarvoor dank. :thumb:
 
Code:
Sub BestandOpslaan()
  on error resume next

  with activedocument.content
    .insertafter "Dit is het einde"
    .insertbefore "dit is het begin"
    .parent.saveas InputBox("Typ de bestandsnaam", "Bestandsnaam") &".doc"
  end with
End sub

PS. Kun je svp de taalfout uit je titel halen ?

Ik had hem ook opgemerkt als... het verstuurd was ;-)
 
@octafish

ChangeFileOpenDirectory "C:\" is overbodig (en vaak onhandig)
Als je een bepaald pad wil geef je dat aan als argument in de methode SaveAs

Code:
  .parent.saveas "G:\OF\" & InputBox("Typ de bestandsnaam", "Bestandsnaam") & ".doc"
 
Terug even open :

Voorgaande werkt perfect, maar...
Als ik de bestanden opsla in xml dan is het document onbruikbaar.
Ik zou het volgende willen bereiken :

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

[I]moet worden[/I]

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- START -->
 
@snb: ik heb de code alleen aangepast voor het toevoegen van de tekst. De rest is voor rekening TS :) Overigens vind ik de InsertBefore en InsertAfter ook netter!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan