Freigeben über


Excel4/Excel12 (maschinell übersetzt)

Letzte Änderung: Mittwoch, 18. März 2009

Gilt für: Excel 2010 | Office 2010 | VBA | Visual Studio

Wichtig

Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: here.

Ruft eine interne Microsoft Excel-Arbeitsblattfunktion, eine Makroblattfunktion oder einen Makroblattbefehl oder eine nur für XLL verfügbare Funktion bzw. einen nur für XLL verfügbaren Befehl aus einer DLL/XLL-Ressource oder Coderessource auf.

Alle aktuelle Versionen von Excel unterstützt Excel4. Ab Excel 2007, wird die Excel12 unterstützt.

Nur, wenn Excel die Steuerung an die DLL oder XLL übergeben hat, können diese Funktionen aufgerufen werden. Sie können auch aufgerufen werden, wenn Excel Steuerelement indirekt über einen Aufruf von Visual Basic for Applications (VBA) bestanden hat. Sie können nicht zu einem anderen Zeitpunkt aufgerufen werden. Sie können z. B. während der Aufrufe an die Funktion DllMain oder andere Zeiten, wenn das Betriebssystem die DLL aufgerufen wurde, oder von einem Thread erstellt, die von der DLL aufgerufen werden.

Excel4v/Excel12v (maschinell übersetzt)-Funktionen akzeptieren ihre Argumente als Array, während die Funktionen Excel4 und Excel12 als Liste variabler Länge auf dem Stapel ihrer Argumente akzeptieren. In jeder anderen Hinsicht Excel4 verhält sich der gleiche wie Excel4v und Excel12 verhält sich Excel12v identisch.

int Excel4(int iFunction, LPXLOPER pxRes, int iCount, LPXLOPER argument1, ...);
int Excel12(int iFunction, LPXLOPER12 pxRes, int iCount, LPXLOPER12 argument1, ...);

Parameter

iFunction (int)

Eine Zahl, die angibt, den Befehl, Funktion oder spezielle Funktion, die Sie aufrufen möchten. Eine Liste der gültigen iFunction Werte finden Sie unter den folgenden Abschnitt "Hinweise".

pxRes (LPXLOPER oder LPXLOPER12)

Ein Zeiger auf ein XLOPER (mit Excel4) oder ein XLOPER12 (mit Excel12), die das Ergebnis der ausgewertete Funktion enthalten wird.

iCount (int)

Die Anzahl der nachfolgenden Argumente, die an die Funktion übergeben wird. In Excel-Versionen bis 2003 kann dies eine beliebige Zahl von 0 bis 30 sein. Ab Excel 2007, kann dies eine beliebige Zahl zwischen 0 und 255 sein.

argument1, ... (LPXLOPER oder LPXLOPER12)

Die optionalen Argumente der Funktion. Zeiger auf XLOPER oder XLOPER12 Werte müssen alle Argumente sein.

Rückgabewert

Gibt die folgenden Werte für ganze Zahl (int).

Werte

Rückgabecode

Beschreibung

{0},

xlretSuccess

Die Funktion wurde erfolgreich aufgerufen. Dies bedeutet nicht, dass die Funktion einen Fehlerwert Excel nicht zurückgegeben wurde; um, die heraus zu finden, müssen Sie den Typ und Wert des Parameters pxRes resultierenden betrachten.

{1}

xlretAbort

Der Befehl oder die Funktion wurde fehlerbedingt beendet (interner Abbruch). Dies kann auftreten, wenn eine XLM-Makrovorlage vom aufrufenden CLOSE schließt oder Excel Arbeitsspeicher ist. Wenn Excel diesen Fehler zurückgibt, muss die aufrufende Funktion sofort zu beenden. Die DLL ist zulässig, nur vor dem Beenden xlFree aufrufen. Alle anderen Aufrufe an C-API sind nicht zulässig. Der Benutzer kann keine Arbeit interaktiv speichern, mithilfe des Befehls Speichern im Menü Datei .

{2}

xlretInvXlfn

Es wurde eine ungültige Funktion Anzahl geliefert. Bei Verwendung von Konstanten aus der Headerdatei Xlcall.h sollte dies nicht der Fall, wenn Sie etwas aufrufen, die in der Version von Excel nicht unterstützt wird, die ausgeführt werden.

4

xlretInvCount

Es wurde eine ungültige Anzahl von Argumenten eingegeben. In Versionen bis Excel 2003 ist die maximale Anzahl der Argumente, die eine Funktion übernehmen kann, 30. Ab Excel 2007, ist die maximale Anzahl 255. Einige erfordern einer festen oder eine minimalen Anzahl von Argumenten.

8

xlretInvXloper

Ein ungültiger XLOPER oder XLOPER12 an die Funktion übergeben wurde, oder ein Argument des falschen Typs wurde verwendet.

16

xlretStackOvfl

Ein Stapelüberlauf aufgetreten ist. Verwenden Sie xlStack, um die Menge der Raum links auf dem Stapel zu überwachen. Vermeiden Sie Reservieren von sehr großen lokaler (automatischer) Arrays und Strukturen auf dem Stapel, wo möglich; machen sie statische. (Beachten Sie, dass ein Stapelüberlauf auftreten kann, ohne dass erkannt wird.)

32

xlretFailed

Eine Befehlsentsprechung Funktion ist fehlgeschlagen. Dies entspricht einen Makrobefehl ein Warndialogfeld die Makro-Fehler anzeigen.

64

xlretUncalced

Es wurde versucht, eine Zelle, die noch nicht berechnet zu dereferenzieren, weil es geplant ist, nach der aktuellen Zelle neu berechnet werden. In diesem Fall muss die DLL Steuerelement Excel sofort zurückgeben. Die DLL ist zulässig, nur vor dem Beenden xlFree aufrufen. Alle anderen Aufrufe an C-API sind nicht zulässig. Weitere Informationen darüber, welche Funktionen können und nicht die Werte der Zellen, die nicht neu berechnet wurde, finden Sie unter Befehle, Funktionen und Zustände in Excel (maschinell übersetzt).

128

xlretNotThreadSafe

Es wurde versucht, eine Funktion aufzurufen, die nicht, oder möglicherweise nicht, während eine Multithread-Neuberechnung der Arbeitsmappe threadsicher.

Ab Excel 2007, wird dieser Wert zurückgegeben, und nur innerhalb der Arbeitsblattfunktionen der XLL deklariert als thread-sicher.

256

xlRetInvAsynchronousContext

Das asynchrone Funktion-Handle ist ungültig.

Dieser Wert wird nur von Excel 2010 verwendet.

512

xlRetNotClusterSafe

Der Aufruf wird auf Clustern nicht unterstützt.

Dieser Wert wird nur von Excel 2010 verwendet.

Hinweis

Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.

Hinweise

Gültige iFunction Werte

iFunction gültige Werte sind in der Headerdatei Xlcall.h definierten Konstanten xlf... oder xlc... oder die folgenden speziellen Funktionen.

xlAbort

xlEnableXLMsgs

xlGetInst

xlSheetNm

xlCoerce

xlFree

xlGetName

xlStack

xlDefineBinaryName

xlGetBinaryName

xlSet

xlUDF

xlDisableXLMsgs

xlGetHwnd

xlSheetId

Verschiedene Typen von Funktionen

Excel4 und Excel12 unterscheiden zwischen den drei Klassen von Funktionen. Die Funktionen werden nach drei Zustände klassifiziert in denen Excel die DLL aufrufen kann.

  • Klasse 1 gilt, wenn die DLL aus einem Arbeitsblatt aufgrund einer Neuberechnung aufgerufen wird.

  • Klasse 2 gilt, wenn die DLL aufgerufen wird innerhalb einer Funktionsmakro oder aus einem Arbeitsblatt wo war es mit einem Nummernzeichen (#) im Text Typ registriert.

  • Klasse 3 gilt, wenn ein Objekt, Makro, Menü, Symbolleiste, Tastenkombinationen, ExecuteExcel4Macro-Methode oder den Befehl Extras/Makro/Ausführen eine DLL aufgerufen wird. Weitere Informationen finden Sie unter Befehle, Funktionen und Zustände in Excel (maschinell übersetzt).

Die folgende Tabelle zeigt, welche Funktionen in jeder Klasse gültig sind.

Klasse 1

Klasse 2

Klasse 3

Beliebigen Tabellenfunktionen

Alle außer xlSet nur XLL-xl...-Funktion.

xlfCaller

Beliebigen Tabellenfunktionen

Alle außer xlSetxl...-Funktion.

Blatt Makrofunktionen, xlfCaller, einschließlich, die einen Wert zurückgeben, aber keine Aktion, die den Arbeitsbereich betrifft oder eine geöffnete Arbeitsmappe ausführen.

Jede Funktion, einschließlich xlSet und Funktionen der Befehls-äquivalent.

Anzeigen des Dialogfelds für eine Befehlsentsprechung Funktion

Falls eine Befehlsentsprechung Funktion Dialogfeld zugeordnet ist, können Sie das Bit xlPrompt in iFunction festlegen. Dies bedeutet, dass Excel das entsprechende Dialogfeld anzeigt, bevor Sie den Befehl.

Schreiben von internationalen DLLs

Wenn Sie das Bit xlIntl in iFunction festlegen, wird die Funktion oder den Befehl durchgeführt, als ob es von einem Makroblatt International aufgerufen wurden. Dies bedeutet, dass der Befehl verhält, wie auf der US-Version von Excel, selbst wenn er auf eine internationale (lokalisierten) Version ausgeführt wird.

XlretUncalced oder xlretAbort

Nach dem Empfang einer der folgenden Werte zurückgeben, muss der DLL bereinigen und Steuerung sofort an Excel zurück. Rückrufe in Excel über die C-API, mit Ausnahme von xlFree, werden nach dem Empfang einer der folgenden Rückgabewerte deaktiviert.

Beispiel

Das folgende Beispiel verwendet die Excel12-Funktion zum Markieren der Zelle, von der es aufgerufen wurde.

Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels in der Excel 2010 XLL-SDK, am folgenden Speicherort, in dem Sie das SDK installiert:

\Samples\Example\Example.c.

Hinweis

Diese Funktion ruft einen Befehlsmakro (XlcSelect) und daher funktioniert nur, wenn sie aus einer XLM-Makrovorlage aufgerufen wird.

short WINAPI Excel12Example(void)
{
    XLOPER12 xRes;

    Excel12(xlfCaller, &xRes, 0);
    Excel12(xlcSelect, 0, 1, (LPXLOPER12)&xRes);
    Excel12(xlFree, 0, 1, (LPXLOPER12)&xRes);

    return 1;
}

Siehe auch

Referenz

Excel4v/Excel12v (maschinell übersetzt)