Übergabe von Variablen aus VB6 an Excel 2000/2003

06/10/2007 - 11:28 von tohasremspam | Report spam
Hallo,

ich öffne von VB6 aus eine Dokumentenvorlage, und erstelle daraus eine
neue Datei. Dann möchte ich an das XLS-Dokument drei Variablen
übergeben. Selbige werden spàter von einer XLS-Routine innerhalb
des Excel-Dokuments verarbeitet.

Ich könnte die Variablen natürlich in einige reservierte Zellen des
XLS-Dokuments schreiben und beim Speichern wieder löschen.

Ich programmiere relativ wenig in VBA, daher habe ich keinen Plan.

Beim Googeln fand ich den Begriff "DocProperties", aber keinen Code.

Oder kann ich im Modul "Diese Arbeitsmappe" einfach einigen LET und
GET Properties deklarieren? Aber wie greife ich von VB6 drauf zu.
Ausserdem ist "Diese Arbeitsmappe" kein Klassenmodul.

Gruss Thomas
 

Lesen sie die antworten

#1 Reiner Wolff
06/10/2007 - 12:10 | Warnen spam
Moin Thomas,

*Thomas Hase* schrieb:
ich öffne von VB6 aus eine Dokumentenvorlage, und erstelle daraus eine
neue Datei. Dann möchte ich an das XLS-Dokument drei Variablen
übergeben. Selbige werden spàter von einer XLS-Routine innerhalb
des Excel-Dokuments verarbeitet.

Ich könnte die Variablen natürlich in einige reservierte Zellen des
XLS-Dokuments schreiben und beim Speichern wieder löschen.



Demnach müssen die Werte nicht dauerhaft in der Arbeitsmappe gespeichert
werden, sondern werden lediglich zur Laufzeit benötigt?

Ich programmiere relativ wenig in VBA, daher habe ich keinen Plan.



Kein Problem.

Beim Googeln fand ich den Begriff "DocProperties", aber keinen Code.



DocProperties ist iirc eine Eigenschaft von Word-Dokumenten. In Excel
stünden Dir hierfür BuiltinDocumentProperties und CustomDocumentProperties
zur Verfügung. Diese werden allerdings in der Datei gespeichert und sind
über die Dateieigenschaften auch einseh- und ànderbar.

Oder kann ich im Modul "Diese Arbeitsmappe" einfach einigen LET und
GET Properties deklarieren?



Ja das kannst Du.
Du kannst allerdings auch direkt eine Public-Variable deklarieren.
CodeBeispiele hierzu wàren:









Private cTest As String
Public Test2 As String

Public Property Get Test() As String
Test = cTest
End Property

Public Property Let Test(Wert As String)
cTest = Wert
End Property
<<<<

Aber wie greife ich von VB6 drauf zu.



Das verdeutlicht Dir folgender VB-Code:









Public xlApp As Object

Private Sub Form_Load()

Set xlApp = GetObject(, "Excel.Application")
With xlApp.ActiveWorkbook
.Test = "Ich"
.Test2 = "Du"
Debug.Print .Test
Debug.Print .Test2
End With
End Sub
<<<<

Ausserdem ist "Diese Arbeitsmappe" kein Klassenmodul.



Ich sag mal: Jain.
Es ist kein Klassenmodul, Du kannst davon keine neuen Instanzen erzeugen,
richtig. Es ist aber auch ein Klassenmodul: Du kannst Variablen mit
WithEvents deklarieren, das Workbook (oder auch die einzelnen Tabellen) um
Eigenschaften (auch mit Let, Get und Set) erweitern.

Wennst weitere Fragen hast, einfach melden.

Gruß aus Kiel
Reiner
Debuggers don't remove Bugs, they only show them in Slow-Motion.

Ähnliche fragen