Discussione:
inserire immagine in doc. word aperto da VBA
(troppo vecchio per rispondere)
Marco67
2014-02-05 16:54:27 UTC
Permalink
Salve, 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
--
Marco67
bfs
2014-02-05 17:08:51 UTC
Permalink
Post by Marco67
Salve, 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

sull'evento che deve aprire e compilare il file :

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
Marco67
2014-02-06 10:48:53 UTC
Permalink
Post by bfs
Post by Marco67
Salve, 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
Grazie 1000, ho preso il tuo spunto e l'ho inserito nel mio codice (che ti
allego di seguito), adesso ho il file immagine inserito in alto a sx (dove
ho posizionato il mio segnalibro: 'logo').
Adesso sto cercando di ridimensionare l'immagine, sempre da codice.
Qualora avessi ancora problemi, proseguo la discussione rompendoti
nuovamente le scatole.
Per adesso direi, perfetto! E grazie infinite!
Marco67
BFS
2014-02-06 14:14:28 UTC
Permalink
Post by Marco67
Post by bfs
Post by Marco67
Salve, 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
Grazie 1000, ho preso il tuo spunto e l'ho inserito nel mio codice (che ti
allego di seguito), adesso ho il file immagine inserito in alto a sx (dove
ho posizionato il mio segnalibro: 'logo').
Adesso sto cercando di ridimensionare l'immagine, sempre da codice.
Qualora avessi ancora problemi, proseguo la discussione rompendoti
nuovamente le scatole.
Per adesso direi, perfetto! E grazie infinite!
Marco67
ti "insegno" un trucco...
vai nel file word...registra una nuova macro e fai tutte le operazioni
di cui non sai il corrispettivo codice in vba.
esempio ridimensionare l'immagine.
salva la macro e vai a vederti il codice vba generato.
copialo nel tuo modulo access anteponendo ad ogni istruzione objWord.

ciao
BFS
Marco67
2014-02-07 14:37:35 UTC
Permalink
Post by BFS
Post by Marco67
Post by bfs
Post by Marco67
Salve, 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
Grazie 1000, ho preso il tuo spunto e l'ho inserito nel mio codice (che ti
allego di seguito), adesso ho il file immagine inserito in alto a sx (dove
ho posizionato il mio segnalibro: 'logo').
Adesso sto cercando di ridimensionare l'immagine, sempre da codice.
Qualora avessi ancora problemi, proseguo la discussione rompendoti
nuovamente le scatole.
Per adesso direi, perfetto! E grazie infinite!
Marco67
ti "insegno" un trucco...
vai nel file word...registra una nuova macro e fai tutte le operazioni di
cui non sai il corrispettivo codice in vba.
esempio ridimensionare l'immagine.
salva la macro e vai a vederti il codice vba generato.
copialo nel tuo modulo access anteponendo ad ogni istruzione objWord.
ciao
BFS
Cavolo, direi una sorta di... traduttore Italiano > Vba !!!
Grazie 1000 ancora
Marco67
Simone Fieni
2023-01-03 14:26:25 UTC
Permalink
Post by bfs
Post by Marco67
Salve, 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
BFS
2023-01-03 14:42:23 UTC
Permalink
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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
Simone Fieni
2023-01-03 15:32:39 UTC
Permalink
Post by BFS
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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
ok grazi, provo
Simone Fieni
2023-01-03 15:42:04 UTC
Permalink
Post by BFS
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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.
BFS
2023-01-03 16:00:16 UTC
Permalink
Post by Simone Fieni
Post by BFS
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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
Simone Fieni
2023-01-03 18:27:25 UTC
Permalink
Post by BFS
Post by Simone Fieni
Post by BFS
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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
Grazie infinite, funziona.
Ora vorrei poter inserire didascalie sotto le foto con il nome della foto e impostare una dimensione fissa per le foto.
Grazie ancora
BFS
2023-01-04 06:59:47 UTC
Permalink
Post by Simone Fieni
Post by BFS
Post by Simone Fieni
Post by BFS
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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
Grazie infinite, funziona.
Ora vorrei poter inserire didascalie sotto le foto con il nome della foto e impostare una dimensione fissa per le foto.
Grazie ancora
direi che basta modificare il ciclo cosi

Dim imgWord As Object
For Each oFile In oFolder.Files

objWord.ActiveDocument.Bookmarks("immagine").Select
objWord.selection.TypeText Text:=oFile.Name & vbNewLine


Set imgWord =
objWord.selection.InlineShapes.AddPicture(FileName:="c:\tuacartella\" &
oFile.Name, LinkToFile:= _
False, SaveWithDocument:=True)


imgWord.Height = 200
imgWord.Width = 200

Next oFile


BFS

Simone Fieni
2023-01-03 15:46:05 UTC
Permalink
Post by BFS
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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
l'oggetto con i i-nomi è oFile.Name?
il nome i-esimo è oFile.Name(i)?
BFS
2023-01-03 16:04:27 UTC
Permalink
Post by Simone Fieni
Post by BFS
Post by Simone Fieni
Post by bfs
Post by Marco67
Salve, 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
l'oggetto con i i-nomi è oFile.Name?
il nome i-esimo è oFile.Name(i)?
no... quel i+1 serviva a me per altre cose
il codice tuo è

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFSO.GetFolder("C:\tuacartella")

For Each oFile In oFolder.Files

Debug.Print oFile.Name 'oppure msgbox oFile.Name

Next oFile



che tradotto vuol dire
per ogni file presente nella cartella - For Each oFile In oFolder.Files
stampa il nome - Debug.Print oFile.Name
passa al successvo -Next oFile

BFS
Loading...