Office-Blog

Sorgt für Ordnung: Länge des Dateinamens in Word 2010 automatisch begrenzen (lassen)

05.06.2010   Markus Hahner

Beim Abspeichern eines Dokuments macht Word es mir scheinbar leicht: Es schlägt praktischerweise einen Dateinamen vor. Nehme ich den Vorschlag an, habe ich den Speichervorgang schnell erledigt.

Word 2010: Vorschlag für superlangen Dateinamen

Erst später rächt sich das – wenn mir zu lange Dateinamen bei Datensicherung, Kopieren auf USB-Stick oder E-Mail-Versand Ärger bereiten.

Doch wie Abhilfe schaffen? Die Lösung ist glücklicherweise schnell erstellt.

Wie tickt Word?

Zugegeben, Zeiten, als Dateinamen maximal 8 Buchstaben lang sein durften, wünsche auch ich mir nicht zurück. Doch muss im Dateinamen wirklich ein ganzer Roman zu lesen sein?

Word schlägt mir als Dateinamen bis zu 223 Zeichen vor – und zwar die ersten 223 Zeichen meines Dokumentes.

Nur Satzzeichen, ein neuer Absatz, ein Zeilenumbruch, Anführungszeichen oder sonstige Sonderzeichen bremsen die Vorschlagswut von Word.

Die Folge zu langer Dateinamen: Restore schlägt fehl

Nachdem gerade bei einem Kunden mal wieder die Rücksicherung von Word-Dateien mit extrem langen Dateinamen scheiterte, ziehe ich jetzt die Konsequenzen:

Ich stelle Word so ein, dass es maximal 30 Zeichen als Dateiname vorschlägt. Wird der Vorschlag vom Anwender manuell überschrieben und sind es mehr als 100 Zeichen , erfolgt eine Warnmeldung und der Speichervorgang wird abgebrochen.

Übrigens: Word selbst zieht je nach Speicherort erst bei 250 Zeichen die Notbremse und fordert mich auf, den Dateinamen zu kürzen.

Der Warnhinweis bei mehr als 100 zeichen

Die Lösung, die Abhilfe schafft

“Fasse Dich kurz” – so lautet künftig die Devise nicht nur beim Telefonieren, sondern auch bei Dateinamen.

Da Word selbst für diese notwendige Einschränkung keine Einstellung bietet, muss eine VBA-Routine her. Diese wird auf allen PCs entweder in der Normal.dotm oder in einem Add-In im Startup-Ordner gespeichert (mehr dazu später).

Die VBA-Routine selbst besteht aus wenigen Zeilen und überlagert aufgrund des speziellen Namens den Dialog Speichern unter von Word. Hier der Code:

Sub FileSave()

With Dialogs(wdDialogFileSaveAs)

If ActiveDocument.Path = „“ Then

.Name = Left(.Name, 30)

lngButton = .Display

If lngButton = -1 Then

If Len(.Name) > 100 Then

MsgBox Prompt:=“Der Dateiname ist mit “ & Len(.Name) & _

“ Zeichen zu lang, es sind nur max. 100 Zeichen erlaubt“, _

Buttons:=vbCritical, _

Title:=“Hinweis des Admins:“

Else

.Execute

End If

End If

Else

.Execute

End If

End With

End Sub

Startet automatisch beim Speichern

Word startet die Routine immer dann, wenn das Speichern per Strg + S, per Klick auf das Speichern-Symbol in der Symbolleiste für den Schnellzugriff oder im Datei-Menü per Speichern-Befehl gestartet wird.

Falls das Dokument bereits gespeichert war und über einen Dateinamen verfügt, greift die Routine nicht ein.

Sicher, die Länge ist bei NTFS-Dateisystemen beim Einsatz der entsprechenden Unicode-APIs auf beachtliche 32K-Zeichen begrenzt – warum sich also über ein paar läppische Zeichen mehr aufregen?

Weil die API bislang schlicht von den meisten Programmen nicht genutzt wird. Mit dem Erfolg, dass die zahlreiche Programme bei Pfad & Dateinamen, die länger als 255 Zeichen sind, den Dienst versagen. Vielleicht sollte ich in meiner VBA-Routine besser nur maximal 50 Zeichen zulassen?

So geht’s weiter

Im zweiten Teil zeige ich dann, wie das Makro in Word 2010 eingebaut wird.

Über den Autor

Markus Hahner

- Dipl.-Ing. (FH) mit über 35 Jahren Berufserfahrung in der IT-Branche
- Zertifizierter Office-Trainer mit dem Schwerpunkt Word, VBA und XML
- Projekterfahrener Berater beim Office-Rollout
- Entwickler CI-gerechter Office-Vorlagen mit angepasstem Menüband
- Fachbuchautor u. a. bei Microsoft Press und video2brain-Trainer zu Word
- Video-Blogger zu Themen rund um Word unter schauen-statt-lesen.de

2 Comments so far

Frank TonsenPosted on  2:40 pm - Mrz 21, 2011

Komme mit der Prozedur leider nicht klar.

.Name = Left(.Name, 30)

Die Eigenschaft „Name“ gibt es meines Erachtens beim Dialog-Objekt nicht. Sollte die Eigenschaft „Name“ des aktiven Dokuments gemeint sein, so lässt sich diese bei einem neuen Dokument nicht ändern !?

Makro für kurze Dateinamen in Word als Add-In einbauenPosted on  9:45 am - Jun 6, 2010

[…] Makro zum Überwachen des Dateinamenvorschlags (Blogbeitrag 05. Juni 2010) speichere ich als Add-In. Damit erreiche ich, dass es jederzeit aktiv ist – ohne Eingriff in die […]