none
Dateiname und Pfad in Publisher 2010 einfügen

    Frage

  • Hallo,

    gibt es eine Möglichkeit in Publisher 2010 den Dateinamen und Pfad über ein Makro (VB) einzufügen.

    Ich wurde von einem anderen Forum hierher verwiesen und hoffe das man mir hier helfen kann.

    Vorab schon einmal vielen Dank für alle Antworten!

    Gruss Publisher_Neuling

    Freitag, 5. April 2013 12:34

Alle Antworten

  • 'VBA
    
    Sub NameEinfügen()
    
        Dim str, str1      As String
        Dim myShape        As Shape
        
        'Name der Datei
        str = Publisher.ActiveDocument.Name
        'Pfad
        str1 = Publisher.ActiveDocument.Path
    
        With myShape.TextFrame.TextRange
            'Vollständigen Dateipfad in ein Shape einfügen
            .Text = str & str1
        End With
    
    End Sub
    
    Wenn der Dateiname  an einer bestimmten Stelle im Publisher-Dokument stehen soll, ist an dieser Stelle ein Textrahmen (Shape) einzufügen. Dieses Shape muss einen Namen erhalten. Dann kann mit VBA das benannte Shape gesucht und der Text, wie oben beschrieben, eingefügt werden.

    Gruss

    Little Hobbit
    Mittwoch, 10. April 2013 11:12
  • Hi Little Hobbit,

    erstmal Danke für deine Antwort. Ich bin jetzt leider noch VB Anfänger vielleicht könntest du mir noch einen Tipp geben, wie ich dein Skript oben anpassen muss um ein neues Textfield mit eingefügtem Dateinamen und Pfad über VB in eine Publisher Datei einzufügen. Dann müsste ich das Textfield nur noch positionieren.

    Gruss Publisher_Neuling

    Mittwoch, 10. April 2013 20:47
  • Hallo

    Hier eine kurze Anleitung für das einfügen eines benannten Shapes:

    1. Shape im Publisher an der gewünschten Stelle als leeren Rahmen einfügen

    2. Seitennummer der Publisher Seite mit diesem Shape ermitteln.
        (Siehe hierzu mein Codebeispiel 'Publisher 2003: Ausgabe der PageID' in diesem Forum)

    3. Benennen des Shapes im VBA - Editor (Leider nur so umständlich möglich)

       Seite mit dem Shape im Publisher öffnen
       Makro NameShape im VBA Editor starten (gewünschten Namen des Shape im Makro eintragen)
       Wenn das gewünschte Shape im Publisher-Dokument
       vom Makro selektiert ist (ist im Publisher-Dokument auf dem
       Bildschirm  zu sehen), das Hochkomma vor shpShape.Name
       entfernen und Makro weiterlaufen lassen bis zum nächsten Stop;
       dann Makro beenden

    4. Funktion 'SucheShape' von Hauptroutine  aufrufen und den
       Namen des Shapes übergeben. Das zurückgegebene Shape im
       Hauptprogramm empfangen

    5. Makro NameEinfügen aufrufen und das gefundene Shape übergeben
       Das Makro trägt den Pfad in das Shape ein.

    'VBA
    
    'Benennen eines Shape
    Sub NameShape()
        Dim myPage 		As Page
        Dim shpShape	As Shape
        Dim str			 As String
    
    	'Page suchen
        Set myPage = ActiveDocument.Pages.FindByPageID(50332759) 'Hier Nummer der Seite eintragen
    	'Shapes einzeln selektieren
        For Each shpShape In myPage.Shapes
            shpShape.Select
    		'bei jedem selektierten Shape anhalten 	
    		Stop
    		'Shape benennen; Hochkomma beim gewünschten Shape entfernen
    		'shpShape.Name = "Name des Shape"     
        Next
     
    End Sub
    
    'Suchen eines benannten Shapes
    'Eingabe: Name des Shape
    'Rückgabe: das gesuchte Shape
    Function SucheShape(NameShape As String) As Shape
        
        Dim myPage              As Page
        Dim shpShape            As Shape
    
    	'Alle Seiten des Publisher-Dokuments durchsuchen    
        For Each myPage In ActiveDocument.Pages 
    	   
            'Alle Shapes jeder Seite durchlaufen	   
            For Each shpShape In myPage.Shapes
    			
    			'Wenn benanntes Shape gefunden wurde, dieses Shape zurückgeben
    			If shpShape.Name = NameShape Then 
    				Set SucheShape = shpShape
    				'Suche beenden
    				Goto Exit_Sub
    		Next
    	Next
    	
    Exit_Sub:
    		Exit Function
    		
    End Function
     
    'Dateipfad in das Shape einfügen 
    Sub NameEinfügen(myShape As Shape)
    
        Dim str, str1      As String   
        
        'Name der Datei
        str = Publisher.ActiveDocument.Name
        'Pfad
        str1 = Publisher.ActiveDocument.Path
    
        With myShape.TextFrame.TextRange
            'Vollständigen Dateipfad in ein Shape einfügen
            .Text = str & str1
        End With
    
    End Sub

    Gruss

    Little Hobbit

    Donnerstag, 11. April 2013 08:54
  • Hi Little Hobbit,

    also erstmal Danke für die Antwort. Es funktioniert jetzt soweit alles bis auf eins. Ist es irgendwie noch möglich über VBA in Publisher ein Tastenkürzel wie in Word/Excel einzufügen. Strg+u

    Gruss und nochmals Danke

    Publisher_Neuling
    Freitag, 12. April 2013 16:48
  • Hallo,

    auch im Publisher gibt es im Programm definierte Tastaturkürzel. Die Bedienung der Kürzel funkoniert so, wie von Word bekannt. Der unterstrichene Buchstabe gibt das benutzbare Kürzel an.

    Was willst Du mit dem Tastaturkürzel erreichen? Soll ein Makro starten? Sollen Felder in einem Formular angesprungen werden?

    Gruß

    Little Hobbit

    Dienstag, 16. April 2013 10:31
  • Hallo,

    ja genau, wenn ich auf z.B. Strg+o klicke soll ein bestimmtes Makro ausgeführt werden. In Word/Excel kann man ja einstellen, wenn man ein neues Makro aufnimmt, dass man es mit einer Tastenkombination ausstattet um es schnell zu starten. Aber in Publisher kann ich das nirgends finden. Muss man es vielleicht in den VBA Code miteinbeziehen?

    Gruss Publisher_Neuling

    Freitag, 19. April 2013 12:40
  • Hallo,

    ich habe bisher in Publisher keine Shortcuts zum Starten von Macros verwendet. Einem Macro so wie in Excel/Word einen Shorcut zuzuweisen, geht, so weit ich weiß, nicht. Du mußt wohl ein Benutzermenü anlegen und das Macro dort einem Button zuweisen. Der Button startet dann das Macro beim Anklicken. Der Schaltfläche läßt sich dann auch eine Tastenkombination zuweisen. Ohne VBA ist das nicht zu realisieren. Schau mal in die Publisher-VBA-Hilfe unter CommandBar und CommandBarControls. Da findest Du Beispiele zum Umgang mit Benutzermenüs. Viel Erfolg!

    Gruß

    Little Hobbit

    Donnerstag, 25. April 2013 14:39
  • Hallo,

    Danke für deine Antwort. Das mit dem Button ist eine super Idee.

    Jetzt hab ich noch eine letzte Frage, undzwar weisst du wie man das Makro abspeichert. Wenn ich jetzt ein neues leeres Publisher Dokument öffne, ist zwar der Button da aber das Makro nicht mehr (der Button hat also keine Funktion mehr). Kannst du mir sagen wie ich eine Vorlage wie in Word/Excel erstellen kann und wo ich die abspeichern muss, damit Publisher das Makro bei jedem neuen leeren Dokument automatisch hat?

    Gruss Publisher_Neuling

    Freitag, 26. April 2013 20:01
  • Hallo,

    auch in Publisher können eigene Vorlagen angelegt werden. Ich würde das Markro in einer eigenen Vorlage abspeichern; siehe: "Erstellen oder Ändern einer Vorlage" in der Publisher-Hilfe. Wenn das Makro immer zur Verfügung stehen soll, dann muss das Makro in der von Dir als Standard benutzten Vorlage gespeichert werden.

    Viel Erfolg!

    Little Hobbit

    <title>Erstellen oder Ändern einer Vorlage</title><link href="mk:@msitstore:msohlp11.chm::/html/office10.css" rel="stylesheet" type="text/css" />

    Dienstag, 30. April 2013 14:30
  • Hallo,

    ist es möglich den Dateiname und Pfad in ein Feld einzufügen. Ich meine so wie man Textbausteine in Word einfügt, dass man wenn man F5 drückt das Feld aktualisieren kann. Beispiel:

    Ich habe jetzt eine neue Publisher-Datei angelegt und in einem Textfeld den Dateinamen und Pfad per Makro eingefügt. -> C:\MeinePublisherDatei.pub

    Jetzt verschiebe ich die Datei nach C:\Publisher\MeinePublisherDatei.pub. Wenn ich die Datei jetzt öffne ist ja immer noch der Pfad: C:\MeinePublisherDatei.pub eingetragen.

    Jetzt wäre es hilfreich wenn ich nur auf F5 drücken müsste und der Dateiname und Pfad würde nach C:\Publisher\MeinePublisherDatei.pub angepasst werden.

    Kann ich das in meinem Makro ergänzen? Wenn ja, mit welchem Code?

    Gruss Publisher_Neuling

    Freitag, 16. August 2013 09:16
  • Hallo

    Zur Automatisierung sollte ein AutoExec-Makro angelegt werden, welches das Textfeld bei jedem Öffnen der Datei automatisch mit dem aktuellen Pfad füllt. Dazu ist es nötig, ein benanntes Textfeld zu verwenden, dass mit Hilfe von VBA mit dem gewünschten Text gefüllt wird. Siehe mein Code-Beispiel zu benannten Textfeldern.

    Der aktuelle Pfad kann mit Hilfe folgender Funktion ermittelt werden:

    Function Pfad() As String
    
        'Liefert den kompletten Pfad des aktuellen Publisher-Dokuments
    
        Pfad = ActiveDocument.FullName
    
    End Function
    

    Viel Erfolg!

    Little Hobbit

    Dienstag, 18. Februar 2014 12:42