Discussione:
Importare immagini con vba
(troppo vecchio per rispondere)
Googleearth
2007-12-27 15:26:45 UTC
Permalink
Ho 100 immagini jpg di cui ho l'elenco del nome del file e per ogni immagini
ho diversi dati (salvati su file excel).

Devo caricarle tutte in word, creando una tabella per ogni immagine e
inserendo di fianco i dati relativi.
Esempio:

Nome
Tipo
Data
IMMAGINE
....

Capisco che è un lavoro più da ACCESS con i report, ma a me serve in word.
Qualcuno può darmi qualche indicazione?
Grazie
Giovanni Zezza
2007-12-28 10:57:03 UTC
Permalink
Post by Googleearth
Ho 100 immagini jpg di cui ho l'elenco del nome del file e per ogni immagini
ho diversi dati (salvati su file excel).
Devo caricarle tutte in word, creando una tabella per ogni immagine e
inserendo di fianco i dati relativi.
Nome
Tipo
Data
IMMAGINE
....
Capisco che è un lavoro più da ACCESS con i report, ma a me serve in word.
Quale Word? se lavori in Word 2007, per una cosa del genere si
potrebbe prendere in considerazione la possibilità di studiarsi il
formato e scrivere il documento direttamente in OpenXML.

È una cosina di un certo impegno, è vero, ma è anche un investimento
che potrebbe valere la pena di fare, se questo genere di lavori non è
del tutto occasionale.
Post by Googleearth
Qualcuno può darmi qualche indicazione?
Restando a vba, devi intanto creare una tabella adeguata:

Dim brano as Range
Dim tabella as Table
Dim riga As Row
Dim cella As Cell
Dim immagine as InlineShape
Set brano = ActiveDocument.Range(0,0)
Set tabella = brano.Tables.Add(brano, 1, 4)

'Con questo abbiamo creato una tabella di una riga e quattro colonne.
'Aggiungeremo altre righe man mano che ne avremo bisogno.

'Partiamo quindi dalla prima riga:

Set riga = tabella.Rows(1)

'Otteniamo adesso la cella in cui vogliamo mettere l'immagine:

Set cella = riga.Cells(4)

'e inseriamo finalmente l'immagine (il cui nome supponiamo contenuto
'nella variabile NomFile):

Set immagine = cella.Range.InlineShapes.AddPicture(NomeFile)

'Gli altri dati si inseriscono molto semplicemente accedendo alle
'celle corrispondenti:

riga.Cells(1).Range.InsertAfter "Nome"
riga.Cells(2).Range.InsertAfter "Tipo"
riga.Cells(3).Range.InsertAfter "Data"

'Per le righe successive, si procede nel medesimo modo, dopo avere
'ottenuto la nuova riga:

Set riga = tabella.Rows.Add

e, naturalmente, avere ottenuto il nuovo NomeFile.

Ometto, per il momento, questa parte; si tratta comunque di collegarsi
al foglio Excel e scorrere l'elenco.

Ometto, anche, l'eventuale ridimensionamento o gestione dell'immagine,
che si può fare all'atto dell'inserimento, dal metodo AddPicture, o
successivamente, attraverso le proprietà e i metodi dell'oggetto
InlineShape immagine.

Ciao.
Googleearth
2007-12-28 11:12:35 UTC
Permalink
Grande!!
Ottimo spunto di lavoro. Grazie.
Post by Giovanni Zezza
Post by Googleearth
Ho 100 immagini jpg di cui ho l'elenco del nome del file e per ogni immagini
ho diversi dati (salvati su file excel).
Devo caricarle tutte in word, creando una tabella per ogni immagine e
inserendo di fianco i dati relativi.
Nome
Tipo
Data
IMMAGINE
....
Capisco che è un lavoro più da ACCESS con i report, ma a me serve in word.
Quale Word? se lavori in Word 2007, per una cosa del genere si
potrebbe prendere in considerazione la possibilità di studiarsi il
formato e scrivere il documento direttamente in OpenXML.
È una cosina di un certo impegno, è vero, ma è anche un investimento
che potrebbe valere la pena di fare, se questo genere di lavori non è
del tutto occasionale.
Post by Googleearth
Qualcuno può darmi qualche indicazione?
Dim brano as Range
Dim tabella as Table
Dim riga As Row
Dim cella As Cell
Dim immagine as InlineShape
Set brano = ActiveDocument.Range(0,0)
Set tabella = brano.Tables.Add(brano, 1, 4)
'Con questo abbiamo creato una tabella di una riga e quattro colonne.
'Aggiungeremo altre righe man mano che ne avremo bisogno.
Set riga = tabella.Rows(1)
Set cella = riga.Cells(4)
'e inseriamo finalmente l'immagine (il cui nome supponiamo contenuto
Set immagine = cella.Range.InlineShapes.AddPicture(NomeFile)
'Gli altri dati si inseriscono molto semplicemente accedendo alle
riga.Cells(1).Range.InsertAfter "Nome"
riga.Cells(2).Range.InsertAfter "Tipo"
riga.Cells(3).Range.InsertAfter "Data"
'Per le righe successive, si procede nel medesimo modo, dopo avere
Set riga = tabella.Rows.Add
e, naturalmente, avere ottenuto il nuovo NomeFile.
Ometto, per il momento, questa parte; si tratta comunque di collegarsi
al foglio Excel e scorrere l'elenco.
Ometto, anche, l'eventuale ridimensionamento o gestione dell'immagine,
che si può fare all'atto dell'inserimento, dal metodo AddPicture, o
successivamente, attraverso le proprietà e i metodi dell'oggetto
InlineShape immagine.
Ciao.
Loading...