Newsgroup: it.comp.lang.visual-basic
Titolo: [VBA] import vba script in excel

Non so dove chiedere, provo qui.
Da Ole Automation creo una tabella excel e la riempio di dati,
alla fine vorrei importare un file di testo contenente una
macro ed eseguirla. Si può fare?
E visto che ci siamo, mi sapete indicare dove posso trovare
un po di documentazione su MSOffice + OleAutomation?
Grazie a tutti
Claudio

 Claudio
Ciao.
-- 
Sergio MAZZA 

 ed eseguirlo?
Riadattare il codice significa che invece che fare uno script vba
dovrei fare uno script vbs con comandi di ole automation?
Ma posso fare da ole automation esattamente le stesse cose
che riesco a fare da vba solo con una sintassi diversa?
Ho visto che con il comando application.run() riesco a lanciare
uno script vba...
e la cosa mi andrebbe  benissimo se avessi uno script vba da
lanciare ;-) troverei molto comodo poter importare lo script
senza doverlo installare prima tra gli script globali ecc.. ecc..
Ciao
Claudio

 Ciao


 '---
E allora la devo dire tutta ;-)
Io faccio Ole automation da un altro linguaggio, poniamo
delphi. In questo linguaggio a metà della mia generazione
di una pagina excel, vorrei chiamare uno script per
impaginare i dati importati.
Per la massima flessibilità sarebbe bene avere uno script
vba perché lo posso modificare senza modificare il mio programma
host, vbs non va tanto bene perché mi toccherebbe salvare
il file e riaprirlo con lo script vbs, invece io vorrei fare
tutto prima di salvare.
Tutto qui. Ho provato a cercare di caricare uno script
esterno con Application.VBE.ActiveVBProject ma mi sono arenato.
Adesso provo a fare un altra googleata.
Ciao

 Ciao
Ciao.
-- 
Sergio MAZZA 

 Adesso provo a fare un altra googleata.
Fatto!
Application.VBE.ActiveVBProject.VBComponents.Item("Modulo1") _
.CodeModule.AddFromFile ("c:\prova.vba")
con questo comando riesco ad importare un file di testo
contenente una macro.
maggiori dettagli su:
http://support.microsoft.com/kb/245801
Devo ancora rifinire i dettagli però sembra che ci siamo.
Ciao
Claudio

macro ed eseguirla. Si puň fare?
Fose con Executeglobal. Carichi un testo esterno come se fossero delle sub da eseguire,
poi le chiami.
Include "c:\documenti\libreria.txt"
poi chiami una sub che č contenuta nella libreria.
Il trucco č qui sotto, una function che devi avere nel tuo programma. Non č per excel ma
credo che funzioni. Anzi, in excel sarebbe piů facile aprire il file di testo senza
passare dal filesystemobject ma usando open.
Function Include(vbslibrary)
' 
http://digilander.libero.it/Cenati
' Codice vbs liberamente utilizzabile citando il sito.
  dim fso,f,s
  set fso=createobject("Scripting.FileSystemObject")
  set f=fso.OpenTextFile(vbslibrary)
  s=f.ReadAll
  f.Close
  ExecuteGlobal s
end function
Oppure puoi caricare un foglio excel e avviare una macro che vi č contenuta:
filePath = "c:\Test.xls"
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Open(filepath)
oExcel.Run "macro1"
oExcel.ActiveWorkbook.Save
oExcel.ActiveWorkbook.Close
oExcel.Quit
Set oExcel = Nothing
-- 
Giovanni Cenati (Aosta, Italy)
Write to user "Reventlov" and domain at katamail com
http://digilander.libero.it/Cenati
 (Esempi e programmi in VbScript)
-- 

 Set oExcel = Nothing
Questo mi pare un po' più complicato, comunque come
ho detto, ho risolto e la soluzione mi pare ottima
per quello che mi serve.
Grazie
Ciao