Erzeugung Excel Dateien aus VB6

ronaldh

Erfahrenes Mitglied
Hallo,

ich erzeuge in etlichen Programmen Excel-Dateien direkt aus VB6 heraus. Das funktioniert ja auch alles ganz gut:

Code:
   Dim xl As Excel.Application
   Dim wb As Excel.Workbook
   Dim ws As Excel.Worksheet

   Set xl = New Excel.Application
   xl.Visible = False
   Set wb = xl.Workbooks.Add
   Set ws = wb.Worksheets(1)
   'usw.

Einziges Problem dabei ist, dass es zu größeren Problemen kann, falls der Anwender, während das Programm läuft, Excel öffnet oder schließt.

Ich prüfe vorher zwar vorher, ob Excel eventuell geöffnet ist. Da die Erzeugung von Excel-Dateien jedoch teilweise längere Zeit dauert, wäre es schön, eine Möglichkeit zu finden, den Anwender von einem Zugriff auf Excel zu hindern.

Fällt Euch dazu was ein?

Grüsse
ronaldh
 
Hallo ronaldh,

ich öffne meine Excelobjekte explizit mit open und setzte auch das Screenupdating = false dadurch bekommt der User es eigentlich gar nicht mit das im Hintergrund ein Excelobject geöffnet ist.
Bsp:
Visual Basic:
   Dim xl As Excel.Application
    
    Set xl = New Excel.Application
    
    xl.Visible = False
    xl.ScreenUpdating = False
    
    xl.Workbooks.Add
    Call xl.Workbooks(1).SaveAs("x:\test.xls")
    xl.Workbooks(1).Close
    xl.Quit

Grüsse bb
 
Hallo bb,

danke! ScreenUpdate kannte ich noch nicht, das war die Lösung. Ich hatte Excel zwar auf unsichtbar geschaltet, der Anwender hat davon also auch nichts mitbekommen. Mein Programm dafür umso mehr, wenn der Anwender Excel geöffnet hatte, um was anderes zu machen. Dann knallte es!

Leider habe ich bisher noch keine wirkliche Hilfefunktion für die Excel-Integration gefunden. Die Hilfe im Excel selbst gibt dazu nichts her, und natürlich kann auch VB damit nichts anfangen.

Viele Grüsse
ronaldh
 
Zurück