Erstellen von benutzerdefinierten Funktionen in Excel 2007

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

Bucheinbandabbildung von 'Excel 2007 Inside Out'

Microsoft Office Excel 2007-innen nach außen
Von Mark Dodge und Karl Stinson

Mark Dodge ist eine ehemalige leitende technischen Autor für die Microsoft Office-Benutzer-Unterstützung-Gruppe, und die gemeinsame dokumenterstellung der vier Versionen von Microsoft Excel ausgeführt wird. Er war auch einen technischen-Editor für über zwölf Bücher auf Microsoft Applications. Kennzeichnen verfügt über sechs Urkunden aus Society für technische Kommunikation berücksichtigt wurde.

Karl Stinson wurde ein Industry Journalist seit 1981, Erstellen von einem Herausgeber von PC Magazine und Autor der mehrere Editionen von der Top Running Microsoft Windows®. Er ist eine gemeinsame dokumenterstellung in Microsoft Excel ausführen, sondern die gemeinsame dokumenterstellung, der unter Microsoft Windows NT® Arbeitsstationen, Version 4. Er hat auch geschrieben, dass Musik für solche bekannten Publikationen als Billboards, Monitor Karen Wissenschaft und Globus Boston prüft.

Weitere Informationen zu anderen Bücher 2007 Microsoft Office System finden Sie auf Microsoft Press.

Inhalt dieses Artikels

Erstellen einer einfachen benutzerdefinierten-Funktion

Verwenden von benutzerdefinierten Funktionen

Grundlegendes zu benutzerdefinierte Funktion Regeln

Verwenden von VBA Stichwörtern in benutzerdefinierte Funktionen

Dokumentieren, Makros und benutzerdefinierte Funktionen

Ihre benutzerdefinierten Funktionen stellen an einer beliebigen Stelle zur Verfügung

Obwohl Microsoft Office Excel 2007 eine Vielzahl von integrierten Arbeitsblattfunktionen enthält, sind die Chancen, dass sie eine Funktion für jede Art von Berechnung aufweist, die Sie ausführen. Die Entwickler von Excel konnten nicht jeder Berechnung müssen von allen Benutzern oftmals rechnen. Stattdessen bietet Excel 2007 Sie die Möglichkeit zum Erstellen von benutzerdefinierter Funktionen, die in diesem Artikel erläutert werden.

Erstellen einer einfachen benutzerdefinierten-Funktion

Benutzerdefinierte Funktionen, wie Makros, verwenden Sie den Visual Basic für Applikationen (VBA) Programmiersprache. Anders als Makros im Wesentlichen auf zwei Arten. Zuerst verwenden sie die Funktion Verfahren anstatt Sub -Prozeduren. D. h., beginnen sie mit einer Function-Anweisung statt einen Sub-Anweisung und ein Ende mit End Function statt End Sub. Zweites, führen Sie diese Berechnungen anstelle von Aktionen auszuführen. Benutzerdefinierte Funktionen sind bestimmte Arten von Anweisungen (z. B. Anweisungen, die markieren und formatieren Sie Bereiche) ausgeschlossen. In diesem Artikel erfahren Sie, wie Sie erstellen und Verwenden von benutzerdefinierten Funktionen.

Angenommen Sie, Ihr Unternehmen anbietet, dass ein Mengenrabatt von 10 Prozent auf den Verkauf eines Produkts, die Reihenfolge bereitgestellten über mehr als 100 Stück ist. In den folgenden Abschnitten erhalten Sie eine Funktion zum Berechnen dieser Rabatt erstellen.

Das Arbeitsblatt in der Abbildung 1 zeigt ein Bestellformular, die jedes Element, die Menge, den Preis, den Rabatt (falls vorhanden) und den sich daraus ergebende Endpreis aufgeführt sind.

Gehen Sie folgendermaßen vor, um eine benutzerdefinierte Rabatt-Funktion in dieser Arbeitsmappe zu erstellen:

  1. Drücken Sie Alt + F11, um den Visual Basic-Editor geöffnet, und klicken Sie dann auf Einfügen, Modul. Ein neues Modul wird angezeigt, wie in Abbildung 2 dargestellt.

    Neues Modul durch VBE
    Abbildung 1 In Spalte D, möchten wir den Rabatt für jedes Element angeordnet berechnet werden soll.
  2. Geben Sie im neuen Modul den folgenden Code ein. Wenn Sie um den Code besser lesbar zu machen, verwenden Sie die Tab-Taste, um Zeilen einziehen. (Der Einzug ist nur zu Ihrer Information und ist optional. Der Code wird mit oder ohne Einzug ausgeführt.) Nach der Eingabe einer eingerückten Zeile wird der Visual Basic-Editor davon ausgegangen, dass Ihre nächste Zeile auf ähnliche Weise eingezogen werden sollen. Verschieben Sie (d. h., auf der linken Seite) eine Registerkarte Zeichen, drücken Sie Umschalt + Tab.

    Function Discount(quantity, price)
    If quantity >=100 Then
    Discount = quantity * price * 0.1
    Else
    Discount = 0
    End If
    Discount = Application.Round(Discount, 2)
    End Function
    Hinzufügen eines neuen Moduls zu einer Arbeitsmappe
    Abbildung 2 durch Klicken auf Einfügen, wird Modul ein neues Modul zur Arbeitsmappe hinzugefügt.

Seitenanfang

Verwenden von benutzerdefinierten Funktionen

Jetzt sind Sie bereit sind, verwenden Sie die neue Rabatt-Funktion. Drücken Sie Alt + F11, um mit dem Arbeitsblatt angezeigt, in der Abbildung 1 wechseln aus. Wählen Sie die Zelle F9 aus, und geben Sie Folgendes ein:

=DISCOUNT(C9,D9)

Excel berechnet den 10 Prozent Rabatt auf 200 Einheiten am 47.50 $ pro Einheit und $950.00 gibt.

In der ersten Zeile von Ihren VBA-Code (Funktion) Discount(quantity, price), angegeben, dass die Rabatt-Funktion zwei Argumente, Menge und Preiserfordert. Wenn Sie die Funktion in einer Arbeitsblattzelle anrufen möchten, müssen Sie diese zwei Argumente einschließen. Klicken Sie in die Formel = DISCOUNT(C9,D9), C9 ist das Argument Menge und D9 Argument Preis . Jetzt können Sie Rabatt Kopieren der Formel in F10:F15 können Sie das Arbeitsblatt gemäß Abbildung 3 zu gelangen.

Sehen Sie sich, wie Excel diese Function-Prozedur interpretiert. Wenn Sie die EINGABETASTE drücken, wird von Excel wird nach dem Namen Disagio in der aktuellen Arbeitsmappe und findet, dass es sich um eine Prozedur in Modul1 ist. Die Argumentnamen in Klammern eingeschlossen –Menge und Preis– sind Platzhalter für die Werte aus, an dem die Berechnung des Rabatts basiert.

Ergebnis der Benutzerdefinierten 'Rabatt'-Funktion
Abbildung 3-dieses Arbeitsblatt zeigt das Ergebnis der Funktion benutzerdefinierte Rabatt.

Die Wenn-Anweisung in den folgenden Codeblock das Menge Argument untersucht und bestimmt, ob die Anzahl der verkauften Artikel größer oder gleich 100 ist:

If quantity >= 100 Then
Discount = quantity * price * 0.1
Else
Discount = 0
End If

Wenn die Anzahl der verkauften Artikel größer oder gleich 100 ist, führt VBA die folgende Anweisung, die multipliziert den Wert Menge durch den Preis Wert und multipliziert anschließend das Ergebnis mit 0,1 aus:

Discount = quantity * price * 0.1

Das Ergebnis wird als die Variable Rabattgespeichert. Eine VBA-Anweisung, die einen Wert in einer Variablen gespeichert wird eine Zuordnung -Anweisung aufgerufen, da es den Ausdruck auf der rechten Seite des Gleichheitszeichens wertet und das Ergebnis der Variablenname auf der linken Seite weist. Da die Variable Rabatt denselben Namen wie die Function-Prozedur aufweist, wird der Wert in der Variablen gespeicherten zur Arbeitsblattformel zurückgegeben, die die Funktion Rabatt aufgerufen.

Wenn die Menge kleiner als 100 ist, wird die folgende Anweisung von VBA führt:

Discount = 0

Die folgende Anweisung rundet schließlich den Wert der Variablen Rabatt auf zwei Dezimalstellen zugewiesen:

Discount = Application.Round(Discount, 2)

VBA verfügt über keine Funktion RUNDEN, jedoch Excel. Zum Runden in der folgenden Anweisung verwenden, informieren Sie daher VBA zum Suchen nach der Methode runden (Funktion), in der Anwendungsobjekt (Excel). Sie dies, indem Sie die Word- Anwendung vor dem Wort hinzufügen runden. Verwenden Sie diese Syntax, wenn Sie eine Excel-Funktion aus einem VBA-Modul zugreifen müssen.

Seitenanfang

Grundlegendes zu benutzerdefinierte Funktion Regeln

Eine benutzerdefinierte Funktion muss mit einer Function-Anweisung beginnen und enden mit einem End Function-Anweisung. Zusätzlich zu den Funktionsnamen gibt die Funktion-Anweisung in der Regel ein oder mehrere Argumente. Sie können jedoch eine Funktion ohne Argumente erstellen. Excel enthält mehrere integrierte Funktionen – ZUFALLSZAHL und jetzt, beispielsweise –, die nicht als Argumente verwenden.

Nach der Funktion-Anweisung enthält eine Function-Prozedur eine oder mehrere VBA-Anweisungen, die treffen von Entscheidungen und Durchführen von Berechnungen unter Verwendung der an die Funktion übergebenen Argumente. Schließlich müssen irgendwo in der Function-Prozedur Sie eine Anweisung enthalten, die eine Variable mit demselben Namen wie die Funktion einen Wert zuweist. Dieser Wert wird in der Formel zurückgegeben, die die Funktion Anrufe.

Seitenanfang

Verwenden von VBA Stichwörtern in benutzerdefinierte Funktionen

Die Anzahl der VBA-Schlüsselwörtern können Sie benutzerdefinierte Funktionen verwenden ist kleiner als die Anzahl in Makros können. Benutzerdefinierte Funktionen sind nicht zulässig, um einen anderen Wert als Eingabe ein Werts in einer Formel in einem Arbeitsblatt oder einen Ausdruck in ein anderes VBA-Makros oder der Funktion verwendet werden kann. Benutzerdefinierte Funktionen können keine beispielsweise Windows Größe; Bearbeiten einer Formel in einer Zelle. oder ändern Sie die Schriftart, Farbe oder Musteroptionen für den Text in einer Zelle. Wenn Sie in einer Function-Prozedur "" Aktionscode dieser Art enthalten, gibt die Funktion den #VALUE! zurück.

Die eine Aktion, die eine Function-Prozedur (mit Ausnahme Durchführen von Berechnungen) ausführen kann, wird ein Dialogfeld angezeigt. Eine InputBox-Anweisung können in eine benutzerdefinierte Funktion als Mittel der erste Eingabemethoden aus der Ausführung der Funktion Benutzer. Sie können eine Meldung-Anweisung als eine Möglichkeit dar, um Informationen für den Benutzer. Sie können auch benutzerdefinierte Dialogfelder oder UserForms verwenden, jedoch, die einen Betreff Gegenstand in dieser Einführung.

Seitenanfang

Dokumentieren, Makros und benutzerdefinierte Funktionen

Auch einfache Makros und benutzerdefinierte Funktionen können schwer zu lesen sein. Sie können sie leichter zu verstehen, indem Sie einen erläuternden Text in Form von Kommentaren eingeben haben. Sie hinzufügen Kommentare, indem Sie vor dem erläuternden Text mit einem Apostroph. Abbildung 4 zeigt beispielsweise die Funktion Rabatt mit Kommentaren. Hinzufügen von Kommentaren, wie diese vereinfacht die für Sie oder andere Personen zu Ihren VBA-Code mit der Zeit zu verwalten. Wenn Sie den Code in der Zukunft ändern müssen, müssen Sie verstehen, was haben Sie ursprünglich erleichtern.

Kommentare in der Rabatt-Funktion
Abbildung 4 Rabatt auf die benutzerdefinierte Funktion enthält jetzt Kommentare.

Ein Apostroph weist Excel an, ignorieren alles nach rechts in der gleichen Zeile, damit Sie auf der rechten Seite der Zeilen mit VBA-Codes oder Kommentare entweder in Zeilen selbst erstellen können. Sie möglicherweise einen relativ langen Codeblock mit einem Kommentar versehen, der erläutert, deren den Zweck beginnen und Inlinekommentare für einzelne Dokument-Anweisungen verwenden.

Alternativ können Sie Ihre Makros und benutzerdefinierte Funktionen Dokument ist, diese aussagekräftigen Namen zu geben. Beispielsweise könnten und nicht den Namen eines Makros EtikettenSie welchem Namen Monat Übungels um genauer den Zweck beschreiben, die, den das Makro fungiert. Verwenden von aussagekräftigen Namen für Makros und benutzerdefinierte Funktionen ist besonders hilfreich, wenn Sie viele Verfahren erstellt haben besonders, wenn Sie Prozeduren erstellen, die ähnliche aber nicht identisch Zwecke aufweisen.

Wie Sie Ihre Makros und benutzerdefinierte Funktionen Dokument ist eine Frage der persönlichen Einstellung. Ausschlaggebend ist die Einführung von einige Methode der Dokumentation und konsistente Verwendung zu können.

Seitenanfang

Ihre benutzerdefinierten Funktionen stellen an einer beliebigen Stelle zur Verfügung

Wenn Sie eine benutzerdefinierte Funktion verwenden zu können, muss die Arbeitsmappe mit dem Modul, in dem Sie die Funktion erstellt, geöffnet wird. Wenn die Arbeitsmappe nicht geöffnet ist, erhalten Sie eine #NAME? Fehler bei dem Versuch, die Funktion zu verwenden. Auch wenn die Arbeitsmappe geöffnet ist, wenn Sie die Funktion in einer anderen Arbeitsmappe, verwenden müssen Sie den Namen der Funktion mit dem Namen der Arbeitsmappe voranstellen, in denen sich die Funktion befindet. Wenn Sie eine Funktion namens Rabatt in einer Arbeitsmappe aufgerufen Personal.xlsb erstellen, und rufen Sie die Funktion aus einer anderen Arbeitsmappe, müssen Sie beispielsweise =personal.xlsb!discount(), nicht einfach =discount()eingeben.

Sie können sich selbst einige Tastatureingaben (sowie mögliche Rechtschreibfehler) speichern, indem Sie Ihre benutzerdefinierten Funktionen im Dialogfeld Funktion einfügen auswählen. Ihre benutzerdefinierten Funktionen, die in die benutzerdefinierte Kategorie angezeigt werden:

Dialogfeld 'Funktion einfügen'

Einfacher Ihre benutzerdefinierten Funktionen am zur Verfügung stellen alle besteht darin, sie in einer anderen Arbeitsmappe zu speichern, und speichern Sie die Arbeitsmappe als ein Add-in. Sie können dann das Add-in verfügbar machen, wenn Sie Excel ausführen. So sieht wie Aktion aus:

  1. Nachdem Sie die Funktionen, die Sie benötigen erstellt haben, klicken Sie auf der Microsoft Office-Schaltfläche, und klicken Sie auf Speichern unter.

  2. Klicken Sie im Dialogfeld Speichern unter öffnen Sie die Dropdown-Liste Dateityp, und wählen Sie Excel-Add-In. Speichern Sie die Arbeitsmappe unter einem aussagekräftigen Namen – wie etwa MyFunctions– im Ordner AddIns . (Im Dialogfeld Speichern unter wird dieser Ordner vorschlagen, damit alle, die Sie tun müssen, ist den Standardspeicherort akzeptieren.)

  3. Nachdem Sie die Arbeitsmappe gespeichert haben, klicken Sie auf der Microsoft Office-Schaltfläche, und klicken Sie auf Excel-Optionen.

  4. Klicken Sie im Dialogfeld Excel-Optionen auf die Kategorie Add-Ins.

  5. Wählen Sie in der Dropdown-Liste Verwalten aus Excel-Add-Ins. Klicken Sie dann auf die Schaltfläche Gehe zu.

  6. Wählen Sie im Dialogfeld Add-Ins das Kontrollkästchen neben den Namen, die Sie mit die Arbeitsmappe gespeichert, wie unten dargestellt.

    Dialogfeld 'Add-Ins'

Nachdem Sie diese Schritte ausgeführt haben, werden Ihre benutzerdefinierten Funktionen jedes Mal zur Verfügung, wenn Sie Excel ausführen. Wenn Sie zu Ihrer Funktionsbibliothek hinzufügen möchten, drücken Sie Alt + F11, um den Visual Basic-Editor zurückzukehren. Abbildung 5 zeigt im Visual Basic-Editor Projekt-Explorer unter der Überschrift VBAProject, erhalten Sie ein Modul namens nach der Datei-add-Ins. (Das Add-in mit der Erweiterung xlam haben.)

Benanntes Modul in VBE
Abbildung 5, wenn Sie Ihre benutzerdefinierten Funktionen als ein Add-in speichern, der Code für diese Funktionen steht zur Verfügung, in dem Modul im Visual Basic-Editor, und Sie können weitere Funktionen nach Bedarf hinzufügen.

Durch Doppelklicken auf die Modul im Projekt-Explorer wird der Visual Basic-Editor den Funktionscode angezeigt werden. Klicken Sie zum Hinzufügen einer neuen Funktion Positionieren der Einfügemarke nach End Function-Anweisung, die die letzte Funktion im Codefenster beendet, und mit der Eingabe beginnen. Sie können beliebig viele Funktionen, wie Sie auf diese Weise müssen, und sie haben Sie immer die benutzerdefinierte Kategorie im Dialogfeld Funktion einfügen zur Verfügung.

Seitenanfang

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.

Teilen Facebook Facebook Twitter Twitter E-Mail E-Mail

War diese Information hilfreich?

Sehr gut. Noch anderes Feedback?

Was können wir verbessern?

Vielen Dank für Ihr Feedback!

×