ich möchte in Word mehrere Bilder auf einmal einfügen. D.h. ich möchte einen
Ordner auswählen und aus diesem alle enthaltenen Bilder in ein Dokument
einfügen.
Ich habe schon versucht mit "wdDialogInsertPicture" (ich benutze W2000
englisch), aber in diesem Dialog kann man nur jeweils eine Datei auswählen.
Gibt es schon fertige Skripte, die diese Arbeit übernehmen oder muß ich "das
Rad neu erfinden" ;-)
Danke
Marco
das solltest du mit dem FileSearch-Objekt zustande bringen, so etwas in
dieser art:
Sub bilder_rein()
Dim i As Integer
With Application.FileSearch
.NewSearch
.LookIn = "c:\bilder\" 'hier dein bilder-pfad
.FileName = "*.bmp" 'den dateinamen gegebenfalls anpassen
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Selection.InlineShapes.AddPicture FileName:=.FoundFiles(i)
Selection.InsertParagraphAfter
Next i
Else
MsgBox "Es wurden keine Dateien gefunden."
End If
End With
End Sub
hilft dir das?
grüsse
christian
Danke! Hat mir sehr weitergeholfen. Jetzt muß ich mir nur noch eine
Dialogbox basteln um verschiedene Verzeichnisse auswählen zu können.
Viele Grüße
Marco
Marco Janker wrote:
>
> Danke! Hat mir sehr weitergeholfen. Jetzt muß ich mir nur noch eine
> Dialogbox basteln um verschiedene Verzeichnisse auswählen zu können.
>
Dann schau mal in den Thread "How do I open a windows file browser
window via VBA" in der englischen Gruppe
"microsoft.public.word.word97vba".
Da hat's einige Anregungen und Code-Beispiele zu dem Thema.
--
Mit freundlichen Grüßen
Peter Sodermanns
folgender code wurde schon hier in der ng gepostet (danke silvia!),
funktioniert
bei mir einwandfrei:
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias
"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias
"SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub SelectFolder()
UsrRsp = GetDirectory("Bitte wählen Sie eine Datei aus")
MsgBox UsrRsp
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0& 'Root folder = Desktop
bInfo.lpszTitle = Msg 'Title in the dialog
bInfo.ulFlags = &H1 ' Folders
'bInfo.ulFlags = &H4000 'Files
x = SHBrowseForFolder(bInfo) 'Display the dialog
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
eine andere möglichkeit: du kannst dir eine userform basteln und in eine
listbox mittels der dir-funktion die einträge ausgeben lassen (ein
entsprechender code wurde auch einmal hier gepostet)
grüsse
christian
Marco Janker <Marco....@emv-testhaus.com> schrieb in im Newsbeitrag:
#6MYbcb4$GA.1764@cpmsftngp03...
> Flueck Christian <Christia...@koeniz.ch> wrote in message
> news:58236E5099B6D211BC1200A0C9E14A7E17CA4C@SRVXCH01...
> > hi marco
> >
> > das solltest du mit dem FileSearch-Objekt zustande bringen, so etwas in
> > dieser art:
> >
> > Sub bilder_rein()
> > Dim i As Integer
> > With Application.FileSearch
> > .NewSearch
> > .LookIn = "c:\bilder\" 'hier dein bilder-pfad
> > .FileName = "*.bmp" 'den dateinamen gegebenfalls anpassen
> >
> > If .Execute() > 0 Then
> > For i = 1 To .FoundFiles.Count
> > Selection.InlineShapes.AddPicture FileName:=.FoundFiles(i)
> > Selection.InsertParagraphAfter
> > Next i
> > Else
> > MsgBox "Es wurden keine Dateien gefunden."
> > End If
> > End With
> > End Sub
> >
> >
> > hilft dir das?
> >
> > grüsse
> > christian
>
> Danke! Hat mir sehr weitergeholfen. Jetzt muß ich mir nur noch eine
> Dialogbox basteln um verschiedene Verzeichnisse auswählen zu können.
>
> Viele Grüße
> Marco
>
>
VIelen Dank an alle! Hat mir sehr geholfen. Aus euren Tipps habe mir ein
Makro gebastelt, das aus einem frei wählbaren Verzeichnis, alle Bilder eines
bestimmten Typs in ein Word-Dokument einliest.
Zugleich habe ich eine neue Frage: Siehe "Wie kann ich Grafiken in Word in
andere Formate konvertieren"
Viele Grüße
Marco