Thema Datum  Von Nutzer Rating
Antwort
02.12.2009 23:02:15 Dieter Wollanz
NotSolved
03.12.2009 10:37:30 Holger
NotSolved
03.12.2009 21:22:15 Dieter Wollanz
NotSolved
Blau Aw:Aw:Aw:Funktion aus .dll einbinden
04.12.2009 16:14:34 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
04.12.2009 16:14:34
Views:
915
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Funktion aus .dll einbinden
Hallo Dieter Wollanz,
meine Notiz hatte ich nur schnell aus einem anderen Zusammenhang heraus kopiert und nicht getestet. Die genaue Anpassung überlasse ich dir. Die Zeile a = vb.Count ist überflüssig und diente früher einmal der schrittweisen Verfolgung des Ablaufs. Was du als Dateinamen braucht, musst du ausprobieren. Die Meldung entsteht wohl, weil du zur Laufzeit in den Code eingreifst. Mir ist sie bisher noch nicht begegnet, allerdings programmiere ich diese Art der Programmsteuerung nicht sehr häufig, sondern mehr als akademische Übung. Wenn du eine lauffähige Version gebastelt hast, würde ich mich über das Ergebnis freuen.
Gruß
Holger


Dieter Wollanz schrieb am 03.12.2009 21:22:15:

Hallo,
habe das eben probiert. das "a" in der 4. Zeile muss ein "m" sein oder? In der 7. Zeile ist ein Leerzeichen zu viel und das "d:\RSAPI.DLL" akzeptiert er auch nicht. Kann ich dafür 'd:\RSAPI.DLL' schreiben? Dann akzeptiert er wenigstens die Zeile. Wenn ich das Ganze so abgeändert habe und ausführe, dann hat er mit der 3. Zeile ein Problem: "Der Programmatische Zugriff auf das Visual Basic-Projekt ist nicht sicher".
Liegt das an irgendeiner Sicherheitseinstellung!?

Mfg Dieter

Holger schrieb am 03.12.2009 10:37:30:

Hallo Dieter Wollanz,
das habe ich auch schon erfolglos versucht. Ich füge jetzt einfach Code mit einem anderen Makro zur Laufzeit ein. Dabei kannst du auch Variablen einsetzen. Folgendes Beispiel möge dir helfen:

Private Sub Code_setzen_test()
Dim vb As Object, m As Object
Set vb = ActiveWorkbook.VBProject.VBComponents
a = vb.Count
For Each m In vb
If m.Name = "DieseArbeitsmappe" Then
m.CodeModule .insertLines 1, "Declare Sub CLOSECOM Lib "d:\RSAPI.DLL" ()"
Exit Sub
End If
Next
End Sub

Gruß
Holger


Dieter Wollanz schrieb am 02.12.2009 23:02:15:

Hallo,
ich bin zur Zeit bei der vba Programmierung. Jetzt bin ich auf ein Problem gestoßen und komme absolut nicht weiter -.-
Und zwar benutze ich die Funktionen einer .dll
Die Einbindung sieht so aus:
Declare Sub CLOSECOM Lib "d:\RSAPI.DLL" ()

Nach Lib ist ja der Pfad zur .dll angegeben. Diesen möchte ich aber nicht fest in den Quelltext schreiben sondern mit einer Variablen versehn, in der der Pfad steht.

Also in etwa so:
Declare Sub CLOSECOM Lib dllpfad ()
und dllpfad ist dann entsprechend "d:\RSAPI.DLL" bzw variabel, weil der Ort je nach PC variieren kann.
VBA schluckt den Befehl so aber nicht. 1. ist die Variable ja noch garnicht definiert, wenn vba den Quelltext Kopf durchgeht.
Wenn ich die Zeile jetzt in eine Funktion rein schreibe, dann klappt das ebenfalls nicht: "Fehler beim kompilieren. Nach End Sub, End Function etc dürfen nur kommentare stehen.

Also wie kann ich meine Idee umsetzen und so das Problem lesen? Ich hoffe ihr könnt mir helfen

Mfg
Dieter

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
02.12.2009 23:02:15 Dieter Wollanz
NotSolved
03.12.2009 10:37:30 Holger
NotSolved
03.12.2009 21:22:15 Dieter Wollanz
NotSolved
Blau Aw:Aw:Aw:Funktion aus .dll einbinden
04.12.2009 16:14:34 Holger
NotSolved