2
www.ChF-Online.de  

Startordner "Bild einfügen" vorgeben

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
aktiv aktiv Verschiedenes
 Dateiname ohne Endung
 Dokumentstrukturanzeige
 Fenster anordnen
 Fensterliste
 Fensterliste (II)
 Kalender erstellen
 Kommentarinformationen
 Lesezeichen
 Beliebigen Ordner öffnen
 Position der Einfügemarke
 Seitenanfang/-ende
 Shapes ansprechen
 Sicherheitskopien erstellen
 Word-Startparameter
 Word-Startparameter II
aktiv  Startordner "Bild einfügen"
 Tags finden u. bearbeiten
 Tags finden/bearbeiten (II)
 Text2WordArt
 Textbausteine verwenden
 Textmarken (I)
 Textmarken (II)
 Überschrift zu Textmarke
 VBA-Konverter
 Wasserzeichen
 Zeichen tauschen
 Feld-Arbeiten
 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 Word2000  
Makro/Datei speichern
Print

Möchte man per Makro ein Bild in den Text einfügen, kann man auf das integrierte Dialogfeld "Bild einfügen" (Einfügen/Grafik/Aus Datei...) zurückgreifen. Standardmäßig landet man unter Word2000 aber in den "Eigenen Bildern". Leider schlägt auch der Versuch, dem Dialog einen Startpfad mitzugeben oder diesen mittels des Befehles ChangeFileOpenDirectory $Pfad zu ändern, fehl bzw. arbeitet sehr unzuverlässig.

Zum Umgehen dieses "Fehlers" kann folgendes Verfahren verwendet werde:
In den Word-Optionen (Extras/Optionen/Speicherort für Dateien/Clipartordner) kann ein Standardverzeichnis für die Bildauswahl festgelegt werden. Diese Einstellung kann über den Aufruf

Application.Options.DefaultFilePath(wdPicturesPath) 

ausgelesen und geändert werden.
Diese Möglichkeit wird nun für die Auswahl eines Bildes verwendet, um den Pfad auf das gewünschte Verzeichnis umzuändern; anschließend wird diese Einstellung auf den ursprünglichen Wert zurückgesetzt.

In der Funktion wird die Anzeige des Dialogfensters zur Bildauswahl aber nur verwendet, um das Bild auszuwählen und den Dateipfad zurück zu liefern. Das Einfügen des Bildes selbst geschieht außerhalb der Funktion und kann an eigene Bedürfnisse angepasst werden.

So kann z.B. mit dieser einen Funktion ein ausgewähltes Bild mal in den Text (als InlineShape) mal hinter den Text liegend (als Shape) eingefügt werden, ohne mehrere Funktionen zu benötigen.

Function SwitchInsertPicturePath(strOpenFolder As String) As String  
Dim strOld As String  
On Error GoTo SwitchInsertPicturePath_Error  
With Application.Options  
  ' retten des eingestellen Pfades  
  strOld = .DefaultFilePath(wdPicturesPath)  
  .DefaultFilePath(wdPicturesPath) = strOpenFolder  
  With Dialogs(wdDialogInsertPicture)  
    .Display  
    ' Rückgabe des Dateinamens, Abruch: Leerstring  
   SwitchInsertPicturePath = .Name  
  End With  
' Fehlerbehandlung  
SwitchInsertPicturePath_Error:  
  ' Wiederherstellen des eingestellen Pfades  
  .DefaultFilePath(wdPicturesPath) = strOld  
End With  
End Function  

Der Aufruf der Funktion kann dann aus einer Prozedur erfolgen, indem ein Startverzeichnis als Parameter angegeben wird. In diesem Beispielaufruf wird das ausgewählte Bild als verknüpftes InlineShape in den Fließtext eingefügt; der Aufruf kann aber beliebig geändert werden.

Sub InsertPicture()  
Dim retPath As String  
retPath = SwitchInsertPicturePath("C:\temp")  
If retPath <> "" Then  
  Selection.InlineShapes.AddPicture retPath, True, False  
End If  
End Sub  

 Besucher: 0 online  |  0 heute  |  0 diesen Monat  |  2219163 insgesamt | Seitenaufrufe: 81   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Es gibt nichts Gutes, außer man tut es.
Erich Kästner
 powered by phpCMS and PAX