Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verweis setzen lassen

Verweis setzen lassen
Reinhard
Hallo Wissende,
es gelingt mir nicht durch Code den Verweis auf MS Forms 2.0 setzen zu lassen. Bzw. das geht schon aber der Debugger bemängelt: Dim objkurz As New DataObject als unbekannten Typ.
Und, es sollte auf allen Versionen beginnend mit XL97 funktionieren *hoff*
Danke ^ Gruß
Reinhard

Option Explicit
#If VBA6 = 0 Then
Const FM20_GUID = "{C43ABEE0-5C8F-4D95-B2C1-05B898491C64}" 'XL97
#Else
Const FM20_GUID = "{0D452EE1-E08F-101A-852E-02608C4D0BB4}" 'XL2000
#End If

Sub Haupt()
Call VerweisSetzen
Dim objkurz As New DataObject
End Sub

Sub VerweisSetzen()
Dim VBEObj As Object, objV As Object, Gesetzt As Boolean
For Each objV In ActiveWorkbook.VBProject.References
If objV.GUID = FM20_GUID Then
Gesetzt = True
Exit For
End If
Next objV
If Gesetzt = False Then
Set VBEObj = Application.VBE.ActiveVBProject.References.AddFromGuid(FM20_GUID, 2, 0)
End If
Set VBEObj = Nothing
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Verweis setzen lassen
27.02.2011 13:42:21
ransi
HAllo
Ich begebe mich jetzt auf dünnes Eis.
Meines Wissens nach kannst du per Code keinen Verweis auf die FM20.Dll setzen.
Füge einfach eine Userform in die Datei ein.
Jetzt wird der Verweis automatisch gesetzt.
Jetzt einfach die Userform wieder löschen. Der Verweis bleibt erhalten.
Wenn du auf die Zwischenablage zugreifen willst, da gibts auch Möglichkeiten ohne das DataObject.
Entweder mit API:
http://www.office-loesung.de/ftopic255156_0_0_asc.php
Oder mit dem InternetExplorer:
Option Explicit

Public Sub Aufruf()
    Call schreiben("Ich muss ins Clipboard")
    MsgBox lesen
End Sub




Public Sub schreiben(derText As String)
    Dim IE As Object
    Set IE = CreateObject("HTMLfile")
    IE.ParentWindow.ClipboardData.SetData "text", derText & vbNullString
    Set IE = Nothing
End Sub


Public Function lesen()
    Dim IE As Object
    On Error Resume Next
    Set IE = CreateObject("HTMLfile")
    lesen = IE.ParentWindow.ClipboardData.GetData("text")
    Set IE = Nothing
End Function


ransi
Anzeige
AW: Verweis setzen lassen
27.02.2011 14:11:38
Reinhard
Hallo Ransi,
leider liegst du sehr ausnahmsweise mal falsch.
Die Prozedur VerweisSetzen klappt ja perfekt, wenn ich sie vorher einzeln starte.
Starte ich aber "Haupt", so wird Call Verweissetzen gar nicht ausgeführt sondern gleich
"Dim objkurz As New DataObject" bemängelt.
Und leider heißt die entsprechende Datei für Forms bei XL97 anders. also nicht FM20.dll, deshalb oben die #IF Abfrage. Das klappt aber gut.
Ich habe heute schon viel Zeit mit Late und Early Binding zugebracht, verstanden habe ich es wohl nicht sonst hätte ich ja wohl das Problem lösen können sofern es lösbar ist :-((
Das mit der UF geht in dem Fall nicht, der Code soll auf mir fremden Rechnern auch laufen.
Das mit API oder dem IE klingt gut, danke. Werde ich dann auch tun müssen.
Aber es würde mich schon stark interessieren wie man das ohne so workarounds hinbekommen könnte.
Gruß
Reinhard
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige