Discussione:
Aprire un file con una macro
(troppo vecchio per rispondere)
Gen
2008-10-27 17:10:16 UTC
Permalink
Word 2007, Xp. È possibile, con particolari accorgimenti, utilizzare i
"caratteri jolly" per indicare il FileName per aprire, intervenire e poi
chiudere un file di Word? Dovendo lavorare su circa 3000 files, il cui nome è
in parte uguale e in parte diverso, mi sarebbe molto comodo poter utilizzare
dei caratteri jolly per aprirli. Grazie.
--
Un ricercatore di suggerimenti ed aiuti
Roberto Restelli
2008-10-27 17:19:06 UTC
Permalink
Ciao Gen.
Post by Gen
Word 2007, Xp. È possibile, con particolari accorgimenti, utilizzare i
"caratteri jolly" per indicare il FileName per aprire, intervenire e
poi chiudere un file di Word? Dovendo lavorare su circa 3000 files,
il cui nome è in parte uguale e in parte diverso, mi sarebbe molto
comodo poter utilizzare dei caratteri jolly per aprirli.
Non ho capito quale tipo di intervento vorresti fare sui documenti, ma in
linea di principio non dovresti avere problemi creando una macro in VBA.

Ciao
Roberto
--
Roberto Restelli
Microsoft MVP - Office Systems - Outlook
************************************************
La prima raccolta delle FAQ del newsgroup Microsoft di Outlook:
http://www.msoutlook.it
Gen
2008-10-28 20:03:01 UTC
Permalink
Grazie Roberto. Gli interventi sui files sono di semplice formattazione e
questo non fa problema. Ma "Documents.Open FileName:="03*.doc" non viene
accettato perché contiene * (e neppure ?) in quanto carattere jolly, per cui
«Documents.Open FileName:="0001*.doc"» non apre nulla e la macro si ferma.
La ringrazio se vorrà continuare a darmi suggerimenti.
Gen
--
Un ricercatore di suggerimenti ed aiuti
Post by Roberto Restelli
Ciao Gen.
Post by Gen
Word 2007, Xp. È possibile, con particolari accorgimenti, utilizzare i
"caratteri jolly" per indicare il FileName per aprire, intervenire e
poi chiudere un file di Word? Dovendo lavorare su circa 3000 files,
il cui nome è in parte uguale e in parte diverso, mi sarebbe molto
comodo poter utilizzare dei caratteri jolly per aprirli.
Non ho capito quale tipo di intervento vorresti fare sui documenti, ma in
linea di principio non dovresti avere problemi creando una macro in VBA.
Ciao
Roberto
--
Roberto Restelli
Microsoft MVP - Office Systems - Outlook
************************************************
http://www.msoutlook.it
Giovanni Zezza
2008-10-28 09:16:07 UTC
Permalink
Post by Gen
Word 2007, Xp. È possibile, con particolari accorgimenti, utilizzare i
"caratteri jolly" per indicare il FileName per aprire, intervenire e poi
chiudere un file di Word? Dovendo lavorare su circa 3000 files, il cui nome è
in parte uguale e in parte diverso, mi sarebbe molto comodo poter utilizzare
dei caratteri jolly per aprirli. Grazie.
Per aprire un file è necessario indicarne esplicitamente il nome; atteso
che dubito che tu voglia aprire contemporaneamente 3000 file da linea di
comando, questo non costituisce una limitazione: una macro può ottenere i
nomi di tutti i file di Word presenti in una directory (eventualmente anche
filtrati da una maschera con caratteri jolly) e aprirli uno alla volta (o
tutti insieme, anche). La funzione VBA che ricerca i nomi dei file è Dir.

In generale, la ricerca dei nomi di file è un compito del linguaggio ospite
(VBA, VBScript, JScript, shell di sistema...), Word si limita ad aprire il
file che gli dici di aprire.

Se il compito è proprio solo quello di aprire alcuni file, ci si può, per
esempio, arrivare anche attraverso un semplice batch, o in diversi altri
modi.

Ciao.
Roberto Restelli
2008-10-28 10:29:06 UTC
Permalink
Ciao Giovanni.
Post by Giovanni Zezza
In generale, la ricerca dei nomi di file è un compito del linguaggio
ospite (VBA, VBScript, JScript, shell di sistema...), Word si limita
ad aprire il file che gli dici di aprire.
Se il compito è proprio solo quello di aprire alcuni file, ci si può,
per esempio, arrivare anche attraverso un semplice batch, o in
diversi altri modi.
Confermo e condivido, anche se possono esistere diversi approcci per la
risoluzione.
Quello che farei io è di effettuare una richiesta all'utente con il nome
del/dei files (ammettendo anche l'uso dei caratteri jolly), poi procedere
con un loop di ricerca per individuare i files fisici e caricarli uno-ad-uno
intervenendo con la modifica.
Inutile ribadire che serve una discreta dimetichezza con l'uso di VBA. :-)

Ciao
Roberto
--
Roberto Restelli
Microsoft MVP - Office Systems - Outlook
************************************************
La prima raccolta delle FAQ del newsgroup Microsoft di Outlook:
http://www.msoutlook.it
Gen
2008-10-28 20:16:10 UTC
Permalink
Grazie Giovanni. Cercherò di comprendere e praticare le Sue indicazioni.
Siccome i miei 3000 e più files hanno una parte del nome comune - dei numeri
- ed una parte alfabetica differente e molto lunga, tentavo con
«Documents.Open FileName:="0001*.doc"» di aprire i files evitando di
riscrivere la parte alfabetica. La macro però si ferma. Quando Lei mi dice:
«Per aprire un file è necessario indicarne esplicitamente il nome» mi sembra
che confermi quanto letto, che "Name" non accetta i caratteri jolly, per cui
parlavo di "particolari accorgimenti". Ovviamente mi è sufficiente aprire i
files uno o al massimo due per volta, per poter copiarne uno nell'altro. La
ringrazio della Sua gentilezza. Gen
--
Un ricercatore di suggerimenti ed aiuti
Post by Giovanni Zezza
Post by Gen
Word 2007, Xp. È possibile, con particolari accorgimenti, utilizzare i
"caratteri jolly" per indicare il FileName per aprire, intervenire e poi
chiudere un file di Word? Dovendo lavorare su circa 3000 files, il cui nome è
in parte uguale e in parte diverso, mi sarebbe molto comodo poter utilizzare
dei caratteri jolly per aprirli. Grazie.
Per aprire un file è necessario indicarne esplicitamente il nome; atteso
che dubito che tu voglia aprire contemporaneamente 3000 file da linea di
comando, questo non costituisce una limitazione: una macro può ottenere i
nomi di tutti i file di Word presenti in una directory (eventualmente anche
filtrati da una maschera con caratteri jolly) e aprirli uno alla volta (o
tutti insieme, anche). La funzione VBA che ricerca i nomi dei file è Dir.
In generale, la ricerca dei nomi di file è un compito del linguaggio ospite
(VBA, VBScript, JScript, shell di sistema...), Word si limita ad aprire il
file che gli dici di aprire.
Se il compito è proprio solo quello di aprire alcuni file, ci si può, per
esempio, arrivare anche attraverso un semplice batch, o in diversi altri
modi.
Ciao.
Mauro Gamberini
2008-10-28 20:25:23 UTC
Permalink
Post by Gen
Siccome i miei 3000 e più files hanno una parte del nome comune - dei numeri
- ed una parte alfabetica differente e molto lunga, tentavo con
«Documents.Open FileName:="0001*.doc"» di aprire i files evitando di
Mid(NomeFile, 1, 4)
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
Mauro Gamberini
2008-10-28 20:29:51 UTC
Permalink
<cut>

Partito un colpo...sorry

Se(se) come mi sembra di capire,
il confronto lo devi fare solo sui
primi 4 caratteri, puoi utilizzare
Mid o Left. Es:

Public Sub m()
Dim s As String
s = "0001pipopluto.doc"
MsgBox Mid(s, 1, 4)
MsgBox Left(s, 4)
End Sub
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
Giovanni Zezza
2008-10-29 09:42:39 UTC
Permalink
Post by Gen
Grazie Giovanni. Cercherò di comprendere e praticare le Sue indicazioni.
Siccome i miei 3000 e più files hanno una parte del nome comune - dei numeri
- ed una parte alfabetica differente e molto lunga, tentavo con
«Documents.Open FileName:="0001*.doc"» di aprire i files evitando di
«Per aprire un file è necessario indicarne esplicitamente il nome» mi sembra
che confermi quanto letto, che "Name" non accetta i caratteri jolly, per cui
parlavo di "particolari accorgimenti".
Mi sembrava di aver già detto i "particolari accorgimenti" necessari: devi
ottenere la lista dei nomi di file che corrispondono a quel modello, e
passare esplicitamente il nome a Documents.Open; la funzione VBA per
ricercare i nomi dei file in una directory e con l'uso di caratteri jolly è
Dir.

La funzione Dir funziona così: la chiamata Dir("0001*.doc") restituisce il
primo nome di file, le successive chiamate Dir(), senza modello di file,
restituiscono il successivo, fino alla fine della lista. I dettagli li
trovi facilmente nella guida di VBA di Word.

Ciao.

Loading...