Post by Simone FieniPost by BFSPost by Simone FieniPost by bfsPost by Marco67Salve, attraverso una mia vecchia routine con la quale apro e compilo
automaticamente un doc. word da una maschera access, ho la necessita' di
inserire uno specifico file immagine in uno specifico punto del documento.
Qualcuno sa darmi una dritta?
Grazie 1000 a tutti
supponi che il file doc si chiami test.doc e sia in c:\
supponi che il file immagine si chiami pippo.bmp
inserisci nel file doc un segnalibro chiamato "immagine" nel punto dove
vuoi far apparire l'immagine
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open CurrentDBDir & "c:\test.doc"
'faccio altre cose sul doc
'e ora inserisco l'immagine
objWord.ActiveDocument.Bookmarks("immagine").Select
objWord.Selection.TypeText Text:=" "
objWord.Selection.InlineShapes.AddPicture
FileName:="C:\pippo.bmp", LinkToFile:= _
False, SaveWithDocument:=True
'faccio altre cose tipo compilare altri segnalibri...salvare stampare etc
Set objWord = Nothing
ciao
BFS
Se invece devo copiare una serie di immagini, presenti in uno cartella specifica, in word, senza quindi specificare il nome del file, come posso fare?
esempio se ho 100 foto di nomi differenti in una cartella
se le tue foto sono in c:\tuacartella e dentro ci sono solo foto
puoi ricavare i 100 nomi delle foto con questo codice
Dim oFSO As Object
Dim oFolder As Object
Dim oFile As Object
Dim i As Integer
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\tuacartella")
For Each oFile In oFolder.Files
Debug.Print oFile.Name
i = i + 1
Next oFile
adatta il codice di conseguenza
BFS
Scusami per l'ignoranza ma non sono un programmatore, Degub.Print oFile.Name che fa di preciso?
la macro l' ho creata in excel, gli ho detto di aprire un file word base con vari segnalibri e nei vari segnalibri deve copiare testi e valori da excel e incollare anche foto presenti in cartelle specifiche.
debug.print serve solo per visualizzare nella finestra immediata il
valore di quel oFile.name
era per farti un esempio
posizionarti su un segnalibro e assegnargli del testo mi par di capire
che sai farlo
per la immagine c'è l'esempio in questa discussione
se ora vuoi inserire n immagini in un segnalibro devi fare un ciclo.
ti faccio un esempio cosi forse poi riesci ad adattarlo al tuo caso.
File word c:\doc.docx
Segnalibro nel foglio word chiamato "immagine"
cartella immagini c:\tuacartella\
questo codice incolla tutte le foto in quel quel segnalibro
'apro word e il file da compilare
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
Dim oFSO As Object
Dim oFolder As Object
Dim oFile As Object
Dim i As Integer
objWord.Visible = True
objWord.Documents.Open "c:\doc.docx"
'mi posizione sul segnalibro chiamato immagine
objWord.ActiveDocument.Bookmarks("immagine").Select
objWord.Selection.TypeText Text:=" "
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\tuacartella")
'ciclo tutti i file immagine nella cartella e li incollo sul segnalibro
For Each oFile In oFolder.Files
objWord.ActiveDocument.Bookmarks("immagine").Select
objWord.Selection.TypeText Text:=" "
objWord.Selection.InlineShapes.AddPicture
FileName:="c:\tuacartella\" & oFile.Name, LinkToFile:= _
False, SaveWithDocument:=True
i = i + 1
Next oFile
nel tuo caso se lavori da excel, il nome del segnalibro da andare a
compilare lo troverai in una cella excel
BFS