Excel: Eigene Funktionen mit VBA erstellen

Beispiel: Buchstaben tauschen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In einer Firma müssen Gensequenzen "berechnet" werden. Dazu erfolgt ein Austausch der Buchstaben durch andere Buchstaben und die Zeichenkette muss auch noch "umgedreht" werden. Erfahren Sie anhand dieses Beispiels, wie eine solche Funktion arbeitet.
05:35

Transkript

Die Funktion, die ich in diesem Video vorstelle, ist sicherlich eine sehr spezielle Funktion und wird mit hohe Wahrscheinlichkeit von den wenigsten Zuschauer und Zuschauerinnen verwendet werden. Dennoch ich möchte an diesem Beispiel gerne zeigen, wie man so eine Funktion erstellt und welcher Nutzen für den Anwender, die Anwenderin eine solche Funktion bieten kann. Ich habe einmal in einer Firma mitgearbeitet, die für die Pharmaindustrie künstliche Gene erstellt, und wir erinnern uns aus dem Biologieunterricht, unsere Gensequenzen bestehen aus den vier Buchstaben A, G, C und T. Die Abkürzungen sind für Adenin, Guanin, Cytosin und Thymin. Auf der anderen Seite von so einer Doppelhelix steht immer das Pendant, das heißt, gegenüber von A steht T, gegenüber von T steht A, bei G gegenüber ist ein C und bei C gegenüber ist ein G. Schön und gut. Diese Firma, in der ich mitgearbeitet habe, bekommt nun solche Gensequenzen zugeschickt, das heißt, bekommt eine Zeichenkette von AAAAGGT zugeschickt. Das sind nicht nur fünf oder fünfzig Buchstaben, sondern mehrere Hunderte von Buchstaben, von denen nun der Anwender oder die Anwenderin das Pendant oder das Reverse-Complement finden muss zugehörig zu diesem Text. Noch eine kleine Spur tiefer, er soll nicht nur das Pendant finden, sondern er soll die Zeichenkette auch noch von hinten nach vorne lesen. Das heißt, in diesem Beispiel käme heraus, statt dem letzten T ein A, statt den beiden G gefolgt zwei C und statt den vier A hätte ich gerne vier T. So soll das in der Zelle stehen, denn so wird es in unserem Prozess weiter verarbeitet. Die Leute erhalten also solche Gensequenzen per E-Mail geschickt, kopieren es nach Excel rein, verwenden nun meine tolle Funktion, die ich dafür geschrieben habe und erhalten das Ergebnis und so geht es dann weiter an die Produktion. Nun schauen wir uns doch einfach mal die Funktion an. Die Funktion ReverseComplement liest eine PlusStrang ein als Text natürlich und liefert das reverse Element auch wieder als String. Ich brauche eine Zähler-Variable, ich merke mir die Zwischenergebnisse und speichere erstmal das fertige Ergebnis, das ich dann wieder zurück an die Funktion gebe. Ich durchlaufe, For i, von dem letzten Buchstaben bis zu dem ersten, ganz wichtig, Step -1, die Zeichenkette und hole mir nun mit der Funktion mid nacheinander den letzten, den vorletzten, den drittletzten und so weiter Buchstaben heraus. Wenn es sich dabei um ein C handelt, dann wird das C umgewandelt in ein G. Wenn es sich um ein G handelt, um ein C, T, A, A, T und so weiter. Sollte ein Buchstabe in dieser Zeichenkette sein, das passiert, haben mir die Mitarbeiter erzählt, dass sich irgendein Buchstabe falsch einschleicht, dann schreibe mir bitte ein Fragezeichen rein. Das Ganze wird wieder zusammengebaut und übergeben an die Funktion. Eigentlich bisher nichts Besonderes, eine Kombination von Variablen, Schleifen, Verzweigungen, wie es jeder VBA-Programmierer kennt. Nun damit kann ich, ReverseComplement, meine Funktion starten, indem ich hier =ReverseComplement auf die Zeichenkette losgehe, Enter, und das Ergebnis dann bekomme, genauso wie ich es selbst gesagt hätte. Hätte ich jetzt in dieser Zeichenkette einen anderen Buchstaben zum Beispiel ein X drin, dann liefert er hier ein Fragezeichen um mir aufzuzeigen, das ist ein Fehler drin. Ebenso wollten die Mitarbeiter noch bei einer so langen Kette, wenn Fehler sind, wissen an welcher Stelle ein Fehler ist. Oder im Vorfeld bevor sie dieses ReverseComplement erstellen, wollen sie mit = mit der Funktion SequencePrüfung auf diese Zeichenkette losgehen und erhalten hier in diesem Beispiel den Fehlertext: Ich habe ein Fehler an der 8en Stelle. Prima, hätte ich keinen Fehler, ich nehme das X mal wieder raus, dann sagt er mir, die Sequenz ist korrekt. Auch hierfür habe ich eine kleine Funktion geschrieben. Sie ahnen es, die mit eine Schleife natürlich die ganzen Zeichen durchläuft, überprüft, ob eines der Zeichen weder A, noch C, noch G, noch T ist. Sollte eins der vier Zeichen nicht verwendet werden, sondern eben ein anderes, dann meldet er oder genauer, dann sammelt er in einem Meldungstring diese Meldung ein, zählt die Anzahl der Fehler, wenn die Fehleranzahl großer als 0 ist, dann übergibt er diesen Text an strMeldung, ansonsten übergibt er, die Sequenz ist korrekt. Und das Ergebnis wird wieder zurückgeschrieben an diese Funktion. Wunderbar! Das heißt, in diesem Beispiel mit diesen zwei kleinen Funktionen, haben wir schon mächtige Möglichkeiten gesehen, wie man Funktionen selbst schreiben kann für immer wiederkehrende, in diesem Fall in Anführungszeichen natürlich gedacht, Berechnungen von Texten, von Zahlen, von Datumsangaben um bestimmte Ergebnisse zu erhalten.

Excel: Eigene Funktionen mit VBA erstellen

Schreiben Sie Ihre eigenen Excel-Funktionen. Als erfahrener Excel-Anwender lernen Sie, wie Sie mithilfe von VBA Berechnungen mittels selbst erstellter Funktionen automatisieren.

3 Std. 4 min (33 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:21.01.2015

Im Training wird Excel 2013 benutzt. Die Vorgehensweisen sind aber für alle Windows-Versionen von Excel identisch und leicht übertragbar.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!