Application.MacroOptions im Add-In geht nicht?

01/04/2009 - 10:11 von Andreas Killer | Report spam
Juhu. :-)

Ich wollte mir nun mal die Mühe machen und die div.
benutzerdefinierten Funktionen in einem Add-In zusammenfassen und
diese dann schön mit einer Beschreibung versehen.

Dabei habe ich 3 verschiedene Versionen probiert.

***** Version 1: *****

Die Beschreibung und Parameter befinden sich in einem Tabellenblatt
und die Registerierung der Funktion erfolgt über ExecuteExcel4Macro:

Sub Register(ByVal Y As Long, WS As Worksheet)
'Registriert eine Funktion
Dim strMacro As String, strSheet As String
Dim X As Long, C As Range, S As String

strSheet = WS.Name
strMacro = "REGISTER("
For X = 1 To 10
strMacro = strMacro & strSheet & "!R" & Y & "C" & X & ","
Next
Set C = WS.Rows(1).Find("Beschreibung1", LookIn:=xlValues,
LookAt:=xlWhole)
If C Is Nothing Then Exit Sub
For X = C.Column To C.Column + 14 * 2 Step 2
If IsEmpty(WS.Cells(Y, X)) Then Exit For
S = S & WS.Cells(Y, X) & ", "
strMacro = strMacro & strSheet & "!R" & Y & "C" & X & ","
Next
strMacro = Left(strMacro, Len(strMacro) - 1) & ")"
Application.ExecuteExcel4Macro strMacro
End Sub

Resultat: Beim Öffnen von Excel fragt er mich bei jeder Registerung
nach der Datei die er nicht finden kann. Klicke ich in dem Öffnen-
Fenster auf mein Add-In erfolgt die Registrierung zwar korrekt, rufe
ich die Funktion jedoch über den Funktionsassistenten auf stürtzt mein
XL2000 ab.

***** Version 2: *****

Die Beschreibung und Parameter werden zu einem String zusammengefasst
und die Registerierung der Funktion erfolgt über ExecuteExcel4Macro:

Ein Beispiel findet man hier: http://www.michael-schwimmer.de/vba038.htm

Resultat: Platziere ich diesen Code in meinem Add-In, dann làßt sich
Excel zwar ohne Mappe korrekt öffnen, die Funktion ist auch korrekt
registeriert, sobald ich sie jedoch benutzen möchte, gibt die Funktion
ohne Parameter WAHR zurück und mit Paremetern #WERT. Egal wie ich mich
auch drehe und wende.

Rufe ich Excel via Explorer auf indem ich auf ein File klicke, dann
bekomme ich einen RTE 1004 beim ExecuteExcel4Macro.

***** Version 3: *****

Die Beschreigung und Registrierung erfolgt über

Set WS = ThisWorkbook.Sheets(1)
With WS
Application.MacroOptions .Cells(Y, 4), .Cells(Y, 10)
End With

wobei in den Zellen der Funktionsname und die Beschreibung steht.

Resultat: Beim starten des Add-In erscheint eine Fehlermeldung das er
die Funktion nicht in einer ausgeblendeten Mappe ausführen kann. Oder
manchmal auch ein RTE 1004.

Hat jemand noch eine Idee?

Andreas.
 

Lesen sie die antworten

#1 stefan onken
01/04/2009 - 15:15 | Warnen spam
hallo Andreas,
On 1 Apr., 10:11, Andreas Killer wrote:
Juhu. :-)

Ich wollte mir nun mal die Mühe machen und die div.
benutzerdefinierten Funktionen in einem Add-In zusammenfassen und
diese dann schön mit einer Beschreibung versehen.

Dabei habe ich 3 verschiedene Versionen probiert.

***** Version 2: *****

Die Beschreibung und Parameter werden zu einem String zusammengefasst
und die Registerierung der Funktion erfolgt über ExecuteExcel4Macro:

Ein Beispiel findet man hier:http://www.michael-schwimmer.de/vba038.htm

Resultat: Platziere ich diesen Code in meinem Add-In, dann làßt sich
Excel zwar ohne Mappe korrekt öffnen, die Funktion ist auch korrekt
registeriert, sobald ich sie jedoch benutzen möchte, gibt die Funktion
ohne Parameter WAHR zurück und mit Paremetern #WERT. Egal wie ich mich
auch drehe und wende.

Rufe ich Excel via Explorer auf indem ich auf ein File klicke, dann
bekomme ich einen RTE 1004 beim ExecuteExcel4Macro.




das habe ich in XL07 auch so.
(Code in eine neue Datei, Makro Funktionsbeschreibung über
Workbook_Open aufrufen, Datei als xla speichern).
Wenn ich jedoch wie in der auf www.jkp-ads.com/articles/RegisterUDF00.asp
runterladbaren Datei beschrieben die Function registriere,
funktioniert es.

Wo allerdings der Unterschied ist, ist mir nicht klar, da beide ja
ExecuteExcel4Macro nutzen.

Gruß
stefan

Ähnliche fragen