PDA

Vollständige Version anzeigen : Excel über VB steuern


SKHitman
02.07.2001, 19:30
ich lade mit VB in eine tabelle in excel ein bild und will die datei dann speichern. wenn ich dann aber das programm beende, wird excel nicht mehr aus dem arbeitsspeicher entfernt. hier der code:
Option Explicit
Public appWorld As Excel.Application
Public wbWorld As Excel.Workbook

Sub Setup()
On Error Resume Next
Set appWorld = GetObject(, "Excel.Application")

If Err.Number <> 0 Then
Set appWorld = CreateObject("Excel.Application")
End If
Err.Clear

On Error GoTo 0
Set wbWorld = appWorld.Workbooks.Add
End Sub

Sub CleanUp() 'dieser teil sollte eigentlich excel aus dem arbeitsspeicher entfernen
Set appWorld = Nothing
Set wbWorld = Nothing
End Sub

Sub BilderLaden()
wbWorld.ActiveSheet.Pictures.Insert ("C:\Eigene Dateien\Test\Bild1.bmp")
appWorld.ActiveWorkbook.SaveAs FileName:="C:\Eigene Dateien\cool1.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Call CleanUp
End Sub

Pepi
03.07.2001, 08:52
Hi,
versuch mal, vor dem Setzen von xy auf Nothing folgendes einzubauen:
appWorld.Quit

Damit wird Excel beendet, anschliessen kann man den benutzten Speicher wieder freigeben.

HTH

SKHitman
05.07.2001, 18:11
danke, hat funktioniert.

jetzt würd ich noch gerne wissen, wie ich das eingefügte bild auf eine bestimmte größe einstelle. wenn ich den code aus vba aus excel nehme funktioniert es nicht und ich bekomm eine fehlermeldung das ich die methode nicht verwenden kann.

Pepi
06.07.2001, 00:16
Wie wo was wer?
Du hast Code aufgezeichnet und in VB verwendet un der funktioniert nicht? Wie sieht dieser Code aus????
HER DAMIT! Das müsste man doch hinbekommen...
Gruß, Matthias

SKHitman
06.07.2001, 18:53
So schaut es in excel aus:
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 291#
Selection.ShapeRange.Width = 262.5

und für vb hab ich einfach wbworld. davorgesetzt, ging aber nicht.

SKHitman
22.07.2001, 14:51
kann mir keiner weiterhelfen?