Befehle VBA "" 2 Beispiele für eine Function welche genaus das selbe bewirken File: VBA Programmieren 5.11.2002.xls Es wird 1 x ein " angezeigt Public Function Provision2(Wert1 As Double, Wert2 As Double) If Wert1 > 19 Then GoTo Message If (Wert1 < 10) And (Wert1 >= 0) Then Provision2 = Wert1 * Wert2 * 1 If (Wert1 < 20) And (Wert1 >= 10) Then Provision2 = Wert1 * Wert2 * 2 Exit Function Message: MsgBox "Schlechte Provision" End Function ************************************************* Public Function Provision3(Wert1 As Double, Wert2 As Double) Select Case Wert1 Case Is < 10 Provision3 = Wert1 * Wert2 * 1 Case Is < 20 Provision3 = Wert1 * Wert2 * 2 Case Else GoTo Message End Select Exit Function Message: MsgBox "Schlechte Provision" Anwendung Excel Anwendung Word Anwendungen bekannt machen Array Datenfeld Autostart Makro in Excel a) Autostart Makro in Excel b) End Function Objektvariablen: Worksheet Documents.open "……" Documents.add "……" Documents.close "……" Objektvariablen: Document Paragraph Sentences Extras -- Verweise -- Anwendung auswählen Dim x(5,2) Die Prozeduren haben bestimmte Namen: Auto_Open Before_Close Private Sub Workbook_Open() Anwendername = InputBox("Bitte geben Sie Ihren Vornamen ein!") End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) 68636913 Seite 1 von 5 Befehle VBA Autostart Makro in Word a) Autostart Makro in Word b) MsgBox "Auf wiedersehen " & Anwendername End Sub Es gibt zwei Arten, um Makros automatisch zu starten a) Indem die Prozeduren bestimmte Namen haben, sogenannte Automakros Autoexec Autonew Autoopen AutoClose Autoexit b) Als Ereignisprozeduren der Objekte Application und ThisDocument Ereignisse des Application-Objekts: Bei aktuellem Curserstand schreiben Bereich wählen Deklarieren von Konstanten Deklarieren von Variablen Variable Resultat als Variable deklarieren als Datentyp Double Enlade mich aus dem Speicher Ersetzen Fehlerbehandlung DocumentBeforeClose DocumentBeforePrint DocumentBeforeSave DocumentChange DocumentOpen NewDocument Quit WindowActivate WindowBeforeDoubleClick WindowBeforeRightClick WindowDeactivate WindowSelectionChange Selection.TypeText Range("A1:z400").Select Ereignisse des DocumentObjekts: Close New Open Range("A1").Select In dem folgenden Beispiel wird die Public-Konstante conAlter als Integer deklariert und ihr der Wert 34 zugewiesen. Public Const conAlter As Integer = 34 Dim Resultat As Double Static Resultat As Double (Erinnern sich beim nächsten Schlaufendurchlauf an den Variablenwert) Unload Me Selection.Replace What:="eee", Replacement:="é", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False On Error GoTo Fehler Fehler: MsgBox "Sie haben keine gültige Zahl eingegeben." Resume Fehlerbehandlung danach zurück zum Fehlerort Initilalisiert das Formular beim Start mit Private Sub UserForm_Initialize() dem Textfeld MWST und folgendem txtMWST.Text = "7.60" 68636913 Seite 2 von 5 Befehle VBA Wert 7.60 InputBox InStr LCase Linke oder Rechte Zeichen ausgeben Left oder Right End sub Alter = InputBox(Prompt:="Alter eingeben:", _ Title:="Dauer bis zur Rente") In String suchen macht alles kleine Buchstaben On Error GoTo Ende Dim Text As String Dim Anzahl As Integer Text = InputBox("Geben Sie irgeneinen Text ein.") Anzahl = InputBox("Er wird auf diese Anzahl Zeichen gekürzt") MsgBox prompt:=Left(Text, Anzahl), buttons:=vbInformation, Title:="Es werden die Anzahl Zeichen ausgegeben" Ende: Mittlere Zeichen ausgeben On Error GoTo Ende Dim Text As String Dim Anzahl As Integer Text = InputBox("Geben Sie irgeneinen Text ein.") Anzahl = InputBox("Er wird auf diese Anzahl Zeichen Die Zahl 5 ist Anzahl der Zeichen Die Variable Anzahl heisst ab welchem Buchstaben der Text ausgegeben wird. gekürzt") MsgBox prompt:=Mid(Text, Anzahl, 5), buttons:=vbInformation, Title:="Es werden die Anzahl Zeichen ausgegeben" MsgBox Ende: Dim wahl As Integer wahl = MsgBox("Betätigen Sie eine Taste !", vbYesNoCancel) If wahl = vbYes Then --------------------------------------------------------------------------- MsgBox (Befehl) MsgBox (Bei leerer) MsgBox (Funktion) MsgBox Rückgabewert 68636913 MsgBox Title:="Info zum Rentenalter", _ Buttons:=vbInformation, _ Prompt:="Sie müssen noch " & RestJahre & _ " Jahre bis zur Rente arbeiten!" Meldung ausgeben (ohne Klammern) Dim Antwort As String Antwort = InputBox(Prompt:="Wie heissen Sie?") If Antwort = Empty Then MsgBox Prompt:="Sie haben keinen Namen eingegeben." Else MsgBox Prompt:="Ihr Name lautet " & Antwort End If If MsgBox (".......", vbyesno) = vbyes then (mit Klammern) Dim Antwort As Integer MsgBox prompt:="Es werden die deutschen Zeichen aaa durch á ersetzt.", _ Buttons:=vbInformation, Title:="In den Zellen A1 bis Z 400 ersetzen !!!" Seite 3 von 5 Befehle VBA MsgBox Rückwerte ausgeben MsgBox-Konstanten Antwort = MsgBox("Sind sie einverstanden ?", Buttons:=vbYesNo) If Antwort = vbYes Then GoTo Yes ElseIf Antwort = vbNo Then GoTo No End If Dim a a = MsgBox("Es werden nun Ihre gewählten Buttons Rückwerte ausgeben", Title:="sdfs", buttons:=vbYesNoCancel) MsgBox a vbOKOnly 0 Nur Schaltfläche OK (Voreinstellung) vbOKCancel 1 Schaltflächen OK und Abbrechen vbAbortRetryIgnore 2 Prozedur aufrufen Prozedur mit Word bekannt machen > veröffentlichen Set Textmarken Übergiebt Zahlenwert des Textfeldes Brutto UCase Val Wdselection Werte einfügen mit Range und Cells ZeilenHöhe 68636913 Schaltflächen Abbruch, Wiederholen und Ignorieren vbYesNoCancel 3 Schaltflächen Ja, Nein und Abbrechen vbYesNo 4 Schaltflächen Ja und Nein vbRetryCancel 5 Schaltflächen Wiederholen und Abbrechen Call Public Sub MWST_Rechner() Load frmMWST_Rechner frmMWST_Rechner.Show End Sub Objektvariablen abfüllen \line \section Absatz Resultat = Val(txtBrutto.Text) macht alles grosse Buchstaben val("2 Seiten") 'Liefert 2 Word Konstanten wdSelectionShape Grafik markiert wdSelectionInlineshape Cliparts markiert wdSelectionNormal Wörter markiert wdSelectionIP Nichts markiert Range("Weihnachtsgeld").Value = 800 Cells(3, 6).Value = 300 Range("f2,f4:f10,f16:f19").Value = 400 Dim rCM rCM = InputBox("Bitte die gewünschte Zeilenhöhe in cm angeben:") If rCM = "" Then Exit Sub Selection.RowHeight = rCM / 0.035 Seite 4 von 5 Befehle VBA 68636913 Seite 5 von 5