IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Visual Basic - Einführung in Visual Basic for Applications



Einführung in Visual Basic for Applications

Mit der Programmiersprache Visual Basic for Applications können leicht Programme geschrieben werden. Es ist gar nicht so schwer wenn man mal die wichtigsten Befehle und Strukturen kennt.


Autor: Gabi Schütz (similie)
Datum: 22-08-2005, 19:18:13
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 98078x
Rating: 6.25 (4x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einführung in Visual Basic for Applications

Mit der Programmiersprache Visual Basic for Applications können leicht Programme geschrieben werden. Es ist gar nicht so schwer wenn man mal die wichtigsten Befehle und Strukturen kennt.

Grundaufbau eines Programms

Ein Programm beginnt immer mit einem Sub und End Sub. Dann werden zuerst einmal die Variablen mit dem Befehl Dim deklariert. Dieser Schritt ist notwendig, damit der Computer weiß, ob er es mit einer Variable zu tun hat, die Text enthaltet, oder einer mit Zahlen usw.
  • Integer (Zahlen von -32768 bis 32767)
  • String (eine Text- oder Zahlenreihe)
  • Byte (Zahlen von 0 bis 255)
  • Boolean (enthält 2 Werte, entweder True oder False)
  • Single (Zahlen mit Komma)
Der Grundaufbau sieht nun so aus:


Sub Text
Dim Variable1 as Integer
Dim Variable2 as Byte
Dim Variable3 as Boolean
End Sub
Das Kursiv geschriebene kann jeweils beliebig durch irgendeinen Text ersetzt werden. Damit es etwas übersichtlicher ist, wird der Programmcode an geeigneten Stellen, z.B. zwischen Befehlen usw. eingerückt.

Operatoren

Die Operatoren sind ganz normal:

Addition: +
Subtraktion: -
Multiplikation: *
Division: /
Gleich: =
Ungleich: <>
Kleiner als: <
Grösser als: >
Kleiner Gleich: <=
Grösser Gleich: >=

Die wichtigsten Befehle

if / else:

Der if Befehl auf Deutsch übersetzt heißt eigentlich: „Ist die Bedingung erfüllt, dann mach das.“ Wenn man will kann man in einem If Befehl auch noch den Befehl Else verwenden. Else auf Deutsch heißt so viel „Ist die Bedingung vom If Befehl nicht erfüllt, dann für das aus was ich dir sage.“ Mit if kann alles mögliche abgefragt werden, zum Beispiel auch ob ein Textfeld etwas geschrieben wurde und so weiter.

Hier ein kleines Beispiel:

if variable1 = 10 then
	variable3 = True
Else variable3 = False
End if
while:

Mit dem While Befehl können Schleifen erstellt werden. Das heißt der Computer führt so lange die Dinge in der While Schleife aus, bis die bestimmte Bedingung erfüllt ist (und bricht danach ab). Meistens wird in der While Schlaufe mit sogenannten Indexen gearbeitet.
Hier ein Beispiel, in dem ein Index solange heraufgezählt wird, bis die Variable den Wert 30 hat.

while variable2 <> 30
	variable2 = variable2 + 1
wend
msgbox:

Mit dem Befehl msgbox erscheint ein Meldefenster am PC, das einen beliebigen Text enthalten kann. In diesem Beispiel wird der Text „Mein Alter:“ und die Zahl „15“ in einem Meldefenster erscheinen, bei dem man nur OK drücken kann. Oben erhält das Meldefenster den Titel „Alterangabe“.

Dim alter as Integer
alter = 15
MsgBox "Mein Alter: “ & alter, vbOKOnly, "Alterangabe"
So sieht das dann aus:



Anstelle von vbOKOnly kann man auch folgende Befehle nutzen, je nach dem erscheint zum Beispiel noch eine Schaltfläche „abbrechen“, usw.
  • vbOKCancel
  • vbYesNo
  • vbYesNoCancel
  • vbAbortRetryIgnore
inputbox:

Mit der inputbox kann der User irgend einen Wert eingeben. Der Wert des Users wird danach in eine Variable gespeichert und man kann im Code damit weiterarbeiten. Dies könnte zum Beispiel so aussehen:

Dim Name As String
Name = (InputBox("Bitte geben Sie Ihren Namen ein:", "Namen eingeben"))
MsgBox ("Ihr Name lautet: " & Name)
Es erscheint folgendes:



case:

Mit case können Sie leicht zwischen verschiedenen Ereignissen auswählen und so mit einem einzigen Befehl viel Zeit im Programmieren sparen.
Nehmen wir einmal an, Sie haben den User aufgefordert, entweder die Zahl 1 oder 2 in einer inputbox einzugeben. Wenn der User die Zahl 1 eingegeben hat, soll 5 zu der Zahl addiert werden, hat der User 2 eingegeben, soll die Zahl mit 5 multipliziert werden.

Hat der User weder 1 noch 2 eingegeben, sondern irgendeine andere Zahl, dann soll eine msgbox erscheinen, mit der Meldung, dass der User die falsche Zahl eingegeben hat.

In diesem Beispiel enthält die Variable zahl bereits die Zahl, die der User vorher eingegeben hat.

Select Case zahl
        	Case 1
          		zahl = zahl + 5
        	Case 2
            		zahl = zahl * 5
Case else
		msgbox „Sie haben eine falsche Zahl eingegeben!!“
    End Select
for / next:

For next ist eine weitere Art von einer Schleife. Der Vorteil gegenüber while ist, dass im Schleifenkopf automatisch ein Index hoch gezählt wird, bis er einen bestimmten Wert hat. Schauen wir uns folgendes Beispiel an:

For j = 0 To 16
        msgbox “nun ist der Index bei: “ & j
Next j
For j = 0 To 16
        msgbox “nun ist der Index bei: “ & j
Next j
Visual Basic for Applications- Beispiel

Nun wurde genug von der Theorie geredet, auf geht’s zu einem praktischem Beispiel!
Ein Programm soll den User fragen, wie alt dieser ist. Anschließend soll es ausrechnen, wie lange der User noch arbeiten muss, bis er pensioniert wird. Ist der User schon pensioniert, soll das Programm ausrechnen, seit wie vielen Jahren er schon pensioniert ist.


Private Sub Form_Load()
Dim alter As Integer
Dim pension As Integer
If alter > 65 Then
   		pension = alter - 65
    		MsgBox "Sie sind seit " & pension & " Jahren pensioniert!", vbOKOnly, "Pension"
ElseIf alter = 65 Then
    		MsgBox "Sie werden dieses Jahr pensioniert!", vbOKOnly, "Pension"
Else
   		pension = 65 - alter
    		MsgBox "Sie werden in " & pension & " Jahren pensioniert!", vbOKOnly, "Pension"
End If
End Sub
Visual Basic for Applications VBA in Excel

Die wichtigsten Befehle für die Excel-Programmierung in VBA im Überblick. In Kombination mit den Funktionen wie oben beschrieben.

Zellen ansteuern

Der Befehl „Range("F6").Select“ markiert die entsprechende Zelle. Möchte man gleich mehrere Zellen markieren, lautet der Befehl „Range(„F6:F18“).Select“.
Nun gibt es Beispielsweise die Möglichkeit via Befehl „Selection.Cut“ die eben markierten Zellen auszuschneiden und anschließend mit „ActiveSheet.Paste“ an einem anderen Ort wieder einzufügen.

Möchte man den Wert einer Zelle direkt in eine Variable schreiben, lautet der Befehl „Variable = Range(„F6“.value)“.

Stringfunktionen

Manchmal ist es nützlich, einen Wert in einer Variable zu bearbeiten, beispielsweise um eine Zahl zu ergänzen, oder eine zu Abfrage starten, um ein bestimmtes Zeichen zu suchen, dass in der Variable enthalten ist.
  • Nach einem Zeichen suchen (Zahl 1 steht für die Startposition): variable = InStr(1, Suchvariable, "Zeichen")
  • Die Länge einer Variable ermitteln: len(variable)
  • Eine bestimmte Zeichenfolge aus einer Variable speichern (Zahl 1 steht für die Startposition, Zahl 3 für die Anzahl Zeichen, die ab der Startposition kopiert werden sollen): Mid(Variable, 1, 3)
Funktionen von Excel in den Code einbinden

Die meisten Funktionen von Excel können am Einfachsten in den VBA Code eingebunden werden, in dem man ein Makro aufzeichnet. Dieser Punkt befindet sich im Excel unter Extras -> Makro -> Aufzeichnen. Ist die Aufzeichnung gestartet, kann man im Prinzip von Hand die gewünschten Funktionen ausführen; beispielsweise auf Bearbeiten -> Suchen klicken, einen Suchwert eingeben und nach diesem Wert suchen lassen. Stoppt man danach die Makro-Aufzeichnefunktion wieder, ist der ganze Suchablauf im Makrocode gespeichert und kann nun in den eigenen Code mit eingebaut werden.


notzomedia
Senior Member
Beitrag vom:
09-10-2005, 21:19:29

kleine fehler im artikel

Mit Visual Basic for Applications schreibt man keine Programme sondern Makros.
Auch mit "Sub" und "End Sub" schließt man keine Programme sondern Prozeduren ein!

Ein Variablenname darf zwar Buchstaben und Zahlen haben, MUSS aber mit einem Buchstaben beginnen.. (Hinweis fehlt)

Das Beispiel sieht sehr nach VB6 aus, eine VBA-Prozedur "Form_Load" zu nennen ergibt nicht so viel Sinn..

-----------------------------------------------------


paedubucher
Professonial
Beitrag vom:
02-09-2005, 18:04:51

ganz normal...

Wusste gar nicht, dass != und == zum Kreise der abnormalen Operatoren gehören...

-----------------------------------------------------


incsoft
Professonial
Beitrag vom:
23-08-2005, 09:57:40

Anmerkungen zur while-Schleife

Hallo similie,

netter Artikel, aber bei der while-Schleife sind zwei kleine Fehler:

1) Der Computer führt so lange die Dinge in der While Schlaufe aus, _WIE_ eine bestimmte Bedingung erfüllt ist. Wenn die Bedingung nicht mehr erfüllt ist, wird die Schleife abgebrochen.

2) In einer while-Schleife wird eben NICHT mit Indexen gearbeitet (dafür nimmt man dann besser die for-Schleife), sondern mit Bedingungen.

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04503
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16551
Queueeinträge:06236
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1136
Comments: 0