› Excel e gli applicativi Microsoft Office › WORD 365 – Macro autorun.
-
AutoreArticoli
-
Buongiorno a tutti.
Sono nuovo in questo forum. Spero possiate aiutarmi nel mio "accademico" problemino.
Vorrei poter attivare una macro in automatico appena apro un certo documento word, ma solo per quel documento, es: pippo.doc
Ovviamente per tutti gli altri documenti non deve valere questa macro, ma le altre che ho e che attivo manualmente quando mi servono.
Esiste un modo? Ho provato ma le macro o si mischiano o finiscono in comune o, addirittura, a volte spariscono
Grazie.
Uhmmm, posso chiederti la gentilezza di allegare quel documento word?
Così lo esamino e faccio delle prove. Grazie.
Diciamo che il mio documento con macro autorun lo chiamerò [VerificaMKV]
Potresti inviarmi questo documento con la macro che per esempio scrive Ciao, ho eseguito automaticamente ciò che desideri.
Poi svelerò anche a cosa mi serve, pubblicando la mia macro. In sostanza da un file .bat devo far leggere i file .mkv in una directory, e lanciare un programmino che verifica se tali file non siano corrotti.
Ora lancio il bat che crea un file .doc (Lista.doc) contenente il nome dei file .mkv e apre questo doc.
La macro che ho realizzato e che lancio a mano aggiunge il nome del programmino esterno ed i parametri, salva un secondo file .bat e lo esegue.
Penso che dovrò modificare la macro facendo generare all'interno del documento con macro-autorun la lista dei file della directory corrente, salvare il .bat ed eseguirlo.
Ma non e' difficile e poi anche se allegassi il file non vedresti niente perche' il codice non e' nel documento ma in ThisDocument di Normal.
Apri un'istanza di Winword (quindi un documento vuoto), apri l'editor di codice e dalla finestra progetti (Ctrl-R) seleziona Normal --> ThisDocument.
Qui inserisci il codice che permette, ad ogni evento Open di un documento, di controllare quale sia il documento aperto. Se il nome documento comincia con "Z" per esempio, verra' eseguito il codice nel blocco If.
Option Explicit Private Sub Document_Open() If ActiveDocument.Name Like "Z*" Then 'qui dentro scrivo il codice da eseguire ogni volta che 'apro un documento che soddisfa la condizioine precedente '... End If End SubNiente da fare, sarò io de coccio....
Il mio file doc è: [VerificaMKV].docx
Creato nuovo, aperto editor e selezionato thisdocument in normal dot
Questo il codice immesso:

Salvo. apro il file word [VerificaMKV].docx e non mi scrive nulla sul foglio bianco...

EDIT: mi rispondo da solo. Word non "digerisce il file che inizia con la parentesi quadra [
se uso quella tonda invece si...
Ma no, studiati meglio come funziona Like
e guarda il mio codice.Si, ora riesco anche con la [
Funziona tutto, sono riuscito anche a modificare facendo in modo che con un solo .bat mi finzioni da qualsiasi directory richiamando la directory di lavoro dove ho messo il programmino, dove scrive il file doc con la macro autorun ecc...
Mi basta ora solo mettere il file bat nella directory dove sono i file da verificare.
Una ultimissima cosa mi manca all'appello... c'è un modo per utilizzare la codifica dei caratteri in automatico?
Di default c'è "windows" e manda in errore molti nome file tipo le accentate ed altri caratteri. Ho visto che il più "compatibile" è MS-DOS, ma dovendolo selezionare a mano va a farsi benedire l'automazione totale...
Anzi probabilmente con la spunta su altra codifica e scegliendo Europa occidentale (DOS) è anche meglio.

Nella macro "automatica" creata posso impostare anche altri parametri in automatico (che ovviamente valgano solo per questo documento) tipo il font e la grandezza font?
EDIT: la parte riguardante le impostazioni di partenza, dimensione foglio, orientamento, font ecc ci sto arrivando. Ma per la scelta automatica della codifica da utilizzare sono in alto mare...
E' concettualmente sbagliato impostare il confronto come nome file Like "[VerificaMKV]*" perche' questo significa solo "considera un nome di file che comincia per V (maiuscola) oppure per e, per r, per i, per f (eccetera) seguito da qualsiasi altro carattere. Quindi un file chiamato per esempio "K2345" soddisfera' la condizione.
Soluzione: togli le quadre... nome file Like "VerificaMKV*" aprira' solamente i file che cominciano con "VerificaMKV".
Sul fatto che ti compare la finestra di conversione file e' perche' probabilmente il file che stai aprendo non e' del tutto un file doc (magari e' stato creato con altre applicazioni open source). Puoi mostrare il contenuto del file bat o almeno dell'istruzione che apre il documento? Perche' con Open ci sono tanti parametri, tra cui Format ed Encoding, che forse fanno al caso tuo.
Si poi avevo "depurato" i nomi dalle [
Funziona tutto, ma ora mi sto intestardendo sul quei due problemi: scegliere la codifica DOS in automatico e pare anche il tipo e dimensione carattere che non me lo digerisce mentre l'impostazione del foglio (dimensioni/orientamento) si.
Questa è la macro:
`Option Explicit Private Sub Document_Open() If ActiveDocument.Name Like "VerificaMKV*" Then Selection.TypeParagraph Selection.Font.Name = "Aptos" Selection.Font.Size = 3 With Selection.PageSetup .LineNumbering.Active = False .Orientation = wdOrientLandscape .TopMargin = CentimetersToPoints(0.5) .BottomMargin = CentimetersToPoints(0.5) .LeftMargin = CentimetersToPoints(1.25) .RightMargin = CentimetersToPoints(1.3) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.25) .FooterDistance = CentimetersToPoints(1.25) .PageWidth = CentimetersToPoints(43.17) .PageHeight = CentimetersToPoints(55.87) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = False .TwoPagesOnOne = False .BookFoldPrinting = False .BookFoldRevPrinting = False .BookFoldPrintingSheets = 1 .GutterPos = wdGutterPosLeft End With Dim messaggio As String Dim Righe As Long Dim X As Long Righe = ActiveDocument.ComputeStatistics(wdStatisticLines) Selection.HomeKey Unit:=wdStory For X = 1 To Righe Selection.HomeKey Unit:=wdLine Selection.TypeText Text:="D:\VerificaMKV\Verifica.exe --no-warn """ Selection.EndKey Unit:=wdLine Selection.TypeText Text:="""" Selection.MoveDown Unit:=wdLine, Count:=1 Next X Selection.EndKey Unit:=wdStory Selection.TypeParagraph Selection.TypeText Text:="pause" ' ActiveDocument.SaveAs ActiveDocument.Path & "\" & "[Verifica].bat", FileFormat:=2 ' ActiveDocument.Close ' Application.Quit End If End Sub `le 3 righe:
Selection.TypeParagraph
Selection.Font.Name = "Aptos"
Selection.Font.Size = 3credevo riuscissero ad impostare il documento con quel carattere/dimensione ma non lo fa...
Le impostazione delle dimensioni documento le ho ricavate registrando una macro, probabilmente molti parametri potrei toglierli. A me occorre solo che apre in landscape un foglio con dimensioni massime e margini minimi. Questo perchè la directory potrebbe contenere moltissimi file e anche il path del nome potrebbe esser lungo. Per questo cerco di impostare anche un carattere minino di dimensioni...
E per quanto riguarda il tipo codifica del carattere MS-DOS non trovo nulla in rete, ma continuo a cercare.
Questo è il file .bat, semplicissimo:
dir *.mkv /W/B > "D:\VerificaMKV\VerificaMKV.doc"
"D:\VerificaMKV\VerificaMKV.doc"
"D:\VerificaMKV\Verifica.bat"
Una cosa l'ho risolta, con il debug F8 vedendo cosa faceva la macro ho capito che dovevo selezionare tutto il testo e "formattarlo" col nuovo carattere:
Option Explicit Private Sub Document_Open() If ActiveDocument.Name Like "VerificaMKV*" Then Dim messaggio As String Dim Righe As Long Dim X As Long ' Qui setto i parametri del foglio word: Dimensioni e margini With Selection.PageSetup .LineNumbering.Active = False .Orientation = wdOrientLandscape .TopMargin = CentimetersToPoints(0.5) .BottomMargin = CentimetersToPoints(0.5) .LeftMargin = CentimetersToPoints(1.25) .RightMargin = CentimetersToPoints(1.3) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.25) .FooterDistance = CentimetersToPoints(1.25) .PageWidth = CentimetersToPoints(43.17) .PageHeight = CentimetersToPoints(55.87) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = False .TwoPagesOnOne = False .BookFoldPrinting = False .BookFoldRevPrinting = False .BookFoldPrintingSheets = 1 .GutterPos = wdGutterPosLeft End With ' Ora seleziono tutto il testo e lo formatto con il carattere/dimensione scelto Selection.WholeStory Selection.Font.Name = "Aptos" Selection.Font.Size = 3 ' Questa è la parte dove aggiungo ad ogni nome file la chiamata alla utility di verifica compresi i parametri Righe = ActiveDocument.ComputeStatistics(wdStatisticLines) Selection.HomeKey Unit:=wdStory For X = 1 To Righe Selection.HomeKey Unit:=wdLine Selection.TypeText Text:="D:\VerificaMKV\Verifica.exe --no-warn """ Selection.EndKey Unit:=wdLine Selection.TypeText Text:="""" Selection.MoveDown Unit:=wdLine, Count:=1 Next X Selection.EndKey Unit:=wdStory Selection.TypeParagraph Selection.TypeText Text:="pause" ' Questa è la finalizzazione dove salvo un file bat che esegue la verifica per tutti i file ActiveDocument.SaveAs ActiveDocument.Path & "\" & "[Verifica].bat", FileFormat:=2 ActiveDocument.Close Application.Quit End If End SubManca solo il settaggio della codifica da utilizzare per caricare il file MS-DOS. Forse si potrebbe scegliere come default nelle opzioni word ma influenzerebbero poi tutti i documenti word e non solo questo come voglio io...
dir *.mkv /W/B > "D:\VerificaMKV\VerificaMKV.doc"
Quindi tu redirigi l'output di una shell in un semplice file di testo... ecco perche' Word non lo riconosce come file suo. Prova a chiamarlo rtf o txt e secondo me qualcosa cambia.
Quanto al resto, ricordati che c'e' anche ActiveDocument.Content ma ricordiamoci che e' un semplice file di testo aperto in Word. Per dire che magari per quel che devi fare non occorre scomodare Word ma non so molto dei tuoi scopi quindi non azzardo niente.
Word serve per automatizzare il tutto aggiungendo tutto il resto al nome file.
Hai qualche idea di come fare a settare il set di caratteri MS-DOS?
La gestione della codifica avviene prima dell'apertura del documento e non penso che sia facilmente intercettabile (perche' non piloti l'apertura, tu semplicemente fai doppio click sul file .doc che non e' Word ma testo)
Scusa ma io cambierei approccio. Se quello che ti serve e' la lista dei file mkv in una data directory, e' meglio un pezzo di codice come questo.
Sub dirlist() Const parentFolder As String = "C:\Users\...\TEST\" Dim results As String 'mostra informazioni estese sui files contenuti in directory, sottodirectory, 'senza informazioni di riepilogo, escludendo i nomi delle sottodirectory results = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & parentFolder & "*.xls*"" /S /B /A:-D").StdOut.ReadAll Debug.Print results 'inserisce i risultati in colonna A: Dim v As Variant v = Split(results, vbNewLine) Range("A1").Resize(UBound(v), 1).Value = WorksheetFunction.Transpose(v) End SubIl codice e' per Excel ma e' facilmente adattabile, dove il cuore e' la riga di results che puoi personalizzare come ti serve, e che conviene leggere direttamente in memoria (le righe terminano con un NewLine), per poi depositarlo in un documento vuoto da formattare come si vuole.
Cambiare ora è assurdo, funziona tutto ottimamente. C'è solo quel problema che se qualche nome file ha caratteri particolari, word non li digerisce. In effetti apree il word con la macro automatica e si presenta la finestra:

Spunto MS-DOS e va avanti alla grande fino alla fine.
Però vorrei evitare questo eventuale passaggio!
Ho trovato in rete questa istruzione, ma non riesco a collocarla e/o farla funzionare...
ActiveDocument.TextEncoding = MmsoEncodingTurkish
Ovviamente dovrei trovare quella corrispondente a MS-DOS, se funzionasse...
Attualmente, con la nuova istruzione, è così:
Option Explicit Private Sub Document_Open() If ActiveDocument.Name Like "VerificaMKV*" Then Dim Righe As Long Dim X As Long ' Questo dovrebbe essere il codice per settare la codifica del tipo carattere. ActiveDocument.TextEncoding = msoEncodingTurkish ' Qui setto i parametri del foglio word: Dimensioni e margini With Selection.PageSetup .LineNumbering.Active = False .Orientation = wdOrientLandscape .TopMargin = CentimetersToPoints(0.5) .BottomMargin = CentimetersToPoints(0.5) .LeftMargin = CentimetersToPoints(1.25) .RightMargin = CentimetersToPoints(1.3) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.25) .FooterDistance = CentimetersToPoints(1.25) .PageWidth = CentimetersToPoints(43.17) .PageHeight = CentimetersToPoints(55.87) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = False .TwoPagesOnOne = False .BookFoldPrinting = False .BookFoldRevPrinting = False .BookFoldPrintingSheets = 1 .GutterPos = wdGutterPosLeft End With ' Ora seleziono tutto il testo e lo formatto con il carattere/dimensione scelto Selection.WholeStory Selection.Font.Name = "Aptos" Selection.Font.Size = 3 ' Questa è la parte dove aggiungo ad ogni nome file la chiamata alla utility di verifica compresi i parametri Righe = ActiveDocument.ComputeStatistics(wdStatisticLines) Selection.HomeKey Unit:=wdStory For X = 1 To Righe Selection.HomeKey Unit:=wdLine Selection.TypeText Text:="D:\VerificaMKV\Verifica.exe --no-warn """ Selection.EndKey Unit:=wdLine Selection.TypeText Text:="""" Selection.MoveDown Unit:=wdLine, Count:=1 Next X Selection.EndKey Unit:=wdStory Selection.TypeParagraph Selection.TypeText Text:="pause" ' Questa è la finalizzazione dove salvo un file bat che esegue la verifica per tutti i file ActiveDocument.SaveAs ActiveDocument.Path & "\" & "Verifica.bat", FileFormat:=2 ActiveDocument.Close Application.Quit End If End SubQuando parte esce comunque la finestra di scelta codifica....
Per pura sfida personale, sto cercando anche questa modalità che hai citato anche se mi apre ad altri svariati problemi, non conoscendo quasi nulla di VBA...
Ho modificato quella macro per far leggere la directory e scrivermi i nomi file nel foglio word, eccola:
Sub dirlist() Const parentFolder As String = "D:\VerificaMKV\" Dim results As String results = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & parentFolder & "*.mkv"" /W /B").StdOut.ReadAll Selection.TypeText results End SubIl problema è che funziona nella directory dove si trova il documento word.
Stavo cercando il modo di dire alla variabile parentFolder di prendere il path della directory dove sono attualmente.
Quondi userei un file .bat che mi copio nella directory dove ci sono i file da esaminare che contiene il comando:
"D:\VerificaMKV\VerificaMKV.doc"
Nel file VerificaMKV.doc c'è la macro che legge la directory, che però dovrebbe essere quella da cui eseguo il file .bat
Poi ovviamente la inserirei nella macro automatica riservata a solo questo documento. Infine penso che però questo non bypasserebbe il problema della codifica del testo...
Il problema è che funziona nella directory dove si trova il documento word.
Non capisco questa frase. Il comando di shell che inizia con CMD /C ... restituisce il contenuto di parentFolder, da qualunque posizioni lanci il codice.
Stavo cercando il modo di dire alla variabile parentFolder di prendere il path della directory dove sono attualmente.
CurDir?
Comunque lo scopo di tutta questa operazione qual e'? Perche' alla fine tu hai esposto un problema di codifica del testo ma mi sembra che hai un problema diverso e forse facilmente risolvibile in altro modo (tu lanci un file Word ed esegui una macro all'apertura solo per ottenere un elenco di file contenuti in una directory... allora forse Word non ti serve nemmeno)
Ok, cerco di riassumere ciò che mi occorre.
- Mi serve di esaminare file video .mkv per vedere che non abbiano problemi. Per questo esiste un programmino freeware in linea di comando che si chiama mkvalidator.exe e che ho rinominato Verifica.exe
- La linea di comando in genere per un file è: Verifica.exe --no-warn "nomefile.mkv"
- I file, che possono essere da qualche unità fino ad un centinaio ed oltre, si trovano in una directory, che però non è sempre la stessa. Quindi o mi copio tutti i file necessari per la verifica nella directory dove sono i video da verificare, o questi file li metto in una sola directory e mi copio un solo file .bat dove sono i video.
- Word ovviamente è necessario per aggiungere il testo ai nome file che mi ricavo da un comando dir, aggiungendo davanti la stringa Verifica.exe --no-warn " + il nomefile.mkv + "
Ho creato la macro che ti ho postato e che funziona in tutto e per tutto dal batch dos:
dir *.mkv /W/B > "D:\VerificaMKV\VerificaMKV.doc"
"D:\VerificaMKV\VerificaMKV.doc"
"D:\VerificaMKV\Verifica.bat"
- La prima riga legge i life .mkv nella directory e li scrive nel documento word che contiene la macro automatica (grazie ancora per l'aiuto nell'automazione per il documento specifico)
- La seconda riga esegue il file word con la macro automatica che predispone tutti i nomi file aggiungendo il nome programma ed i parametri: Verifica.exe --no-warn "nomefile.mkv" e scrive il secondo file .bat che contiene tot righe, una per ogli video da verificare.
- La terza ed ultima riga esegue il .bat per fare la verifica dei file.
Il problema si pone quando i nome dei file hanno le accentate e qualche altro carattere "strano". Quando sono presenti questi carattere in uno dei nomi all'apertura di VerificaMKV.doc mi presenta la finestra di dialigo:

Spuntando "MS-DOS" la macro va avanti tranquillamente e tutto funziona. Ovviamente funziona tutto senza intervento se i caratteri accentati o strani non sono presenti.
Io volevo appunto evitare in quei casi abbastanza frequenti di dover scegliere "a manetta" la codifica testo MS-DOS.
Ovvio che solo un "surplus" che non inficia minimamente la funzionalità della macro e che fa perdere solo qualche secondo di tempo... Ma da informatico di lunga data, anche se inesperto di codice VBA , mi viene la "tigna" per un problema che dovrebbe per forza avere una soluzione...
Poi l'altro STEP, ovvero quello di inserire nella macro anche il popolamento dei nome file, lo porto avanti in parallelo.
AGGIORNAMENTO
Ho risolto (quasi) il problema aggirando l'ostacolo. Con la macro automatica in pratica leggo i file in una directory (non era curdir), li scrivo sul documento, sostituisco i caratteri importati "male", aggiungo il collegamento del programmino di verifica ed i parametri, scrivo il file verifica.bat e fino a quì tutto benissimo. Il file .bat contiene tutte le righe per verificare i file in una determinata directory... solo che non riesco da VBA ad eseguirlo!
Questa la macro completa:
`Option Explicit Private Sub Document_Open() If ActiveDocument.Name Like "_VerificaMKV*" Then Dim Righe As Long Dim X As Long Dim Results As String Dim ParentFolder As String ' Qui setto i parametri del foglio word: Dimensioni e margini With Selection.PageSetup .LineNumbering.Active = False .Orientation = wdOrientLandscape .TopMargin = CentimetersToPoints(0.5) .BottomMargin = CentimetersToPoints(0.5) .LeftMargin = CentimetersToPoints(1.25) .RightMargin = CentimetersToPoints(1.3) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.25) .FooterDistance = CentimetersToPoints(1.25) .PageWidth = CentimetersToPoints(43.17) .PageHeight = CentimetersToPoints(55.87) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = False .TwoPagesOnOne = False .BookFoldPrinting = False .BookFoldRevPrinting = False .BookFoldPrintingSheets = 1 .GutterPos = wdGutterPosLeft Selection.Style = ActiveDocument.Styles("Nessuna spaziatura") End With ' Popolo il documento con la lista dei file ParentFolder = ActiveDocument.Path & Application.PathSeparator Results = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & ParentFolder & "*.mkv"" /W /B").StdOut.ReadAll Selection.TypeText Results ' Sostituisce tutti i caratteri con la corretta codifica MS-DOS With ActiveDocument.Content.Find .Execute FindText:="…", ReplaceWith:="à", Replace:=wdReplaceAll .Execute FindText:="···", ReplaceWith:="À", Replace:=wdReplaceAll .Execute FindText:="·", ReplaceWith:="À", Replace:=wdReplaceAll .Execute FindText:="Š", ReplaceWith:="è", Replace:=wdReplaceAll .Execute FindText:="ÔÔÔ", ReplaceWith:="È", Replace:=wdReplaceAll .Execute FindText:="Ô", ReplaceWith:="È", Replace:=wdReplaceAll .Execute FindText:="", ReplaceWith:="ì", Replace:=wdReplaceAll .Execute FindText:="ÞÞÞ", ReplaceWith:="Ì", Replace:=wdReplaceAll .Execute FindText:="Þ", ReplaceWith:="Ì", Replace:=wdReplaceAll .Execute FindText:="•", ReplaceWith:="ò", Replace:=wdReplaceAll .Execute FindText:="ããã", ReplaceWith:="Ò", Replace:=wdReplaceAll .Execute FindText:="ã", ReplaceWith:="Ò", Replace:=wdReplaceAll .Execute FindText:=Chr(151), ReplaceWith:="ù", Replace:=wdReplaceAll .Execute FindText:="ëëë", ReplaceWith:="Ù", Replace:=wdReplaceAll .Execute FindText:="ë", ReplaceWith:="Ù", Replace:=wdReplaceAll .Execute FindText:="", ReplaceWith:="ü", Replace:=wdReplaceAll ' .Execute FindText:="ššš", ReplaceWith:="Ü", Replace:=wdReplaceAll ' .Execute FindText:="š", ReplaceWith:="Ü", Replace:=wdReplaceAll .Execute FindText:="‚", ReplaceWith:="é", Replace:=wdReplaceAll .Execute FindText:="œ", ReplaceWith:="£", Replace:=wdReplaceAll .Execute FindText:="‡", ReplaceWith:="ç", Replace:=wdReplaceAll .Execute FindText:="ø", ReplaceWith:="°", Replace:=wdReplaceAll .Execute FindText:="õ", ReplaceWith:="§", Replace:=wdReplaceAll End With ' Ora seleziono tutto il testo e lo formatto con il carattere/dimensione scelto Selection.WholeStory Selection.Font.Name = "Arial" Selection.Font.Size = 3 ' Questa è la parte dove aggiungo ad ogni nome file la chiamata alla utility di verifica compresi i parametri Righe = ActiveDocument.ComputeStatistics(wdStatisticLines) Selection.HomeKey Unit:=wdStory For X = 1 To Righe Selection.HomeKey Unit:=wdLine Selection.TypeText Text:="C:\_DATI_\Verifica.exe --no-warn """ & ParentFolder Selection.EndKey Unit:=wdLine Selection.TypeText Text:="""" Selection.MoveDown Unit:=wdLine, Count:=1 Next X Selection.EndKey Unit:=wdStory Selection.TypeParagraph Selection.TypeText Text:="pause" ' Questa è la finalizzazione dove salvo un file bat che esegue la verifica per tutti i file ActiveDocument.SaveAs "C:\_DATI_\Verifica.bat", FileFormat:=2 Shell ("C:\_DATI_\Verifica.bat") ActiveDocument.Close Application.Quit End If End Sub`Non chiedermi come mai nel codice dove sostituisco i caratteri ci sono a volte due occorrenze per lo stesso carattere. Ho visto che una lettera se importata a fine nome file prima del punto .mkv viene riportata con 3 caratteri strani es. ÞÞÞ mentre se è all'interno della stringa del nomefile ne importa uno solo Þ
Inoltre la "è" minuscola la traduce sempre in maiuscolo È e la Ü maiuscola non c'è modo di tradurla...Per eseguire il file Verifica.bat ho provato l'istruzione: Shell ("C:\_DATI_\Verifica.bat")
Ma non va bene, francamente sono ad un punto morto in dirittura di arrivo.
-
AutoreArticoli
