Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verweis setzen lassen

Forumthread: 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

Anzeige

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
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige