2
www.ChF-Online.de  

Dateiname ohne Dateiendung anzeigen

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
 Verschiedenes
aktiv aktiv Feld-Arbeiten
 Felder aktualisieren
 Felder aktualisieren (II)
aktiv  Felder aktualisieren (III)
 Feldfunktion darstellen
 Formularfelder (I)
 Formluarfelder formatieren
 Formularfelder kopieren
 IHV formatieren
 Aktuelle Kalenderwoche
 Formular-QuickInfos
 Verkn. Dateien drucken
 Form-Sachen
 Menü-/Symbolleisten
 VBA und Lotus Notes
 VBA und Mail
 Inside VBAIDE
 Von Word nach Outlook
 Fix-und-Fertiges/Projekte
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
Getestet unter Word2000Getestet unter WordXPGetestet unter Word2003Getestet unter Word2007  
Beispiel anzeigen
Makro/Datei speichern
Print

Über die Feldfunktion { Filename } lässt sich der Dateiname des aktuellen Dokumentes an beliebiger Stelle im Dokument anzeigen. Sobald die Datei gespeichert ist,wird, je nach Einstellung in Windows, dabei entweder die Dateiendung ".doc" mit angezeigt oder nicht. Möchte man auf keinen Fall die Endung im Dokument angezeigt bekommen, kann man leider nicht auf eine Word-interne Funktion zurückgreifen, sondern kann sich eine entsprechende Funktion per VBA basteln.

In diesem Beispiel wird dazu eine Dokumenteigenschaft (Datei/Eigenschaft/Anpassen) verwendet, in der der gekürzte Dateiname eingetragen wird. So steht diese Informationen anschließend über die Feldfunktion { DOCPROPERTY <Eigenschaft> } im Dokument zur Verfügung.

Die Funktion Function fkt_NoExt(oDoc As Document) bekommt als Parameter das Dokument übergeben und prüft, ob der Dateiname auf .doc endet. In diesem Fall wird der Dateiname um die letzten 4 Zeichen gekürzt. Anschließend wird das Dokument dahingehend überprüft, ob es die Dateieigenschaft Dateiname besitzt. Ist die Eigenschaft noch nicht vorhanden wird sie im Dokument erstellt und mit dem gekürzten Dateinamen gefüllt.

Code markieren
Function fkt_NoExt(oDoc As Document)  
Dim oProp As DocumentProperty
Dim sFileName As String
Const sProp As String = "Dateiname"
If Right(oDoc.Name, 4) = ".doc" Then
  sFileName = Left(oDoc.Name, Len(oDoc.Name) - 4)
End If
On Error Resume Next
  Set oProp = oDoc.CustomDocumentProperties(sProp)
  If oProp Is Nothing Then
    Set oProp = oDoc.CustomDocumentProperties.Add( _
      Name:=sProp, _
      LinkToContent:=False, _
      Type:=msoPropertyTypeString, _
      Value:=oDoc.Name)
  End If
  oProp.Value = sFileName
On Error GoTo 0
End Function  

Damit beim Speichern der Datei auch der gekürzte Dateiname mitgeändert wird, muss sich die dazu verwendete VBA-Funktion auch in die Speicherroutinen (Datei/Speichern und Datei/Speichern unter) von Word einklinken. Dies erfolgt, indem die entsprechenden Befehle abgefangen und nachprogrammiert werden.

Code markieren
Sub FileSave()  
ActiveDocument.Save
fkt_NoExt ActiveDocument
End Sub  
Sub FileSaveAs() With Dialogs(wdDialogFileSaveAs) If .Show = -1 Then fkt_NoExt ActiveDocument End If End With End Sub

Wird der Code in einer Dokumentvorlage gespeichert, kann die Dateieigenschaft über nachstehendes Makro bereits beim Erstellen neuer Dokumente erstellt und gefüllt werden.

Code markieren
Sub AutoNew()  
fkt_NoExt ActiveDocument
End Sub 

 Besucher: 0 online  |  0 heute  |  0 diesen Monat  |  2219132 insgesamt | Seitenaufrufe: 97   Letzte Änderung: 12.03.2009 © 2001-18 Christian Freßdorf
  Ich würde lieber angegriffen werden als ignoriert. Das schlimmste, was einem Autor passieren kann, ist, daß die anderen zu seinen Arbeiten schweigen.
Samuel Johnson
 powered by phpCMS and PAX