Gibt es VBA-Profis hier? :-

Hallo,
durch mein Studium bin ich nun zum ersten Mal mit Programmierung in Kontakt getreten. Da ich überhaupt keine Vorkenntnisse habe, bin ich nicht ganz mitgekommen, was VBA (Bezug auf MS Word) betrifft. Habe nun rausgefunden was es ist und was es bewirkt, aber den Inhalt verstehe ich nicht ganz…

  1. Was bedeuten die Datentypen Boolean, Integer/Long, Single/Double, Date, String und wann bzw wie benutzt man diese?

  2. „&“ als Verkettungsoperator z.B. Debug.Print „Die Variable C hat den Wert:“ & C
    Was genau bewirkt das &-Zeichen hier?

  3. Programmerstellung:
    Der Anwender soll nacheinander zwei beliebige ganze Zahlen eingeben. Wenn die zweite
    Zahl null entspricht, erhält der Anwender eine Fehlermeldung und muss die Zahl erneut
    eingeben. Andernfalls soll das Ergebnis der Division als Fließkommazahl, als ganzzahliger
    Quotient und der Divisionsrest in einer Message Box ausgegeben werden.

Ich wäre sehr dankbar, wenn jemand sich dazu bereit erklären könnte mir eine oder mehrere dieser Fragen zu beantworten!

Liebe Grüße,
soc.

Hallo, da das doch ziemlich nach Hausaufgabe klingt und du somit aus den Vorlesungsunterlagen alle nötigen Infos selbst herausfinden kannst will ich dir helfen aber lieber nicht die Arbeit abnehmen.

VBA ist einfach eine „Programmiersprache“. Die Anführungszeichen stehen dafür, dass „richtige“ Programmierer bei diesem Satz den Mund ganz übel verzogen hätten.

VBA kannst du eigentlich in der ganzen Officepalette einsetzen.
Excel (Bsp.: Kopiere die vom Nutzer eingegebenen Daten in den Zellen A1 bis B3 und dividiere sie durch 10 und runde dann auf zwei Stellen)
Word (Bsp: Wenn das Formular ausgefüllt ist und der Anwender auf den Button „senden“ drückt sollen seine Eingaben automatisch per Mail an dich versendet werden)
Access (Bsp.: Diese per Mail erhaltenen Daten sollen in eine Datenbank eingelesen werden.
Powerpoint (Bsp.: Immer, wenn du zwei Minuten vom Bildschirm weg bist soll in einem zufälligem Textblock die Schriftart verändert werden damit du auch sicher nie fertig wirst)

Für deine erste Frage brauchst du schon einmal gar kein Office sondern deine Unterlagen oder die Suchmaschine deiner Wahl. Sonst hilft dir auch die Hilfe in der VBA Entwicklungsumgebung super weiter.

http://msdn.microsoft.com/de-de/library/vstudio/47zc…

  1. „&“ als Verkettungsoperator z.B. Debug.Print „Die Variable C hat den Wert:“ & C
    Was genau bewirkt das &-Zeichen hier?

Teile dir die Aufgabe auf und überlege dir was der jeweilige Teil bedeutet und macht:
Debug.Print
„Die Variable C hat den Wert:“
&
C

Benutze die Hilfe oder Google
Verkettugnsoperator sollte ja schon alles sagen.

  1. Hier musst du selbst aktiv werden da es in jedem Programm mit dem du ein VBA-Skrit erstellen kannst unterschiedliche Lösungswege hast.

Hier findest du sicher in deinen Unterlagen ein Beispiel das fast so geht.
Wenn du den Link oben angesehen hast hast du sicher schon schlau kombiniert, dass die erste Frage dir schon viel weitergeholfen hat.
Welche Datentypen haben denn die folgenden Teile der Aufgabenstellung?
ganze Zahl1
ganze Zahl2
Fließkommazahl
ganzzahliger Quotient
Divisionsrest

Bastel das Beispiel aus der VO/dem PS nach bzw. kombiniere.

Liebe Grüße und lass dich nicht unterkriegen.
Berni

hallo Socrathes,
schon mal DATENTYPEN gegoogelt?

zu 2.
Wenn Du nicht mal dies weißt, dann solltest Du erstmal neben Deinem Studium einen Grundkurs in VBA bei der Volkshochschule besuchen.

zu 3.
dazu habe ich nun wirklich keine Zeit, um Dir ein Programm zu schreiben.
Vor allem, weil dann nur wieder Fragen über Fragen auftauchen, da Du von VBA ja absolut keine Ahnung hast.

MfG
Heinz Günther Naumann

Servus,

Progamme arbeiten mit Variablen und um diese richtig benutzen zu können muss der Rechner wissen, um was es sich handelt.

z.b. nimm den „Satz des Pythagoras“
belegst Du „b“ und „c“ mit Zahlen kannst Du „a“ errechnen…(mit Text(string) funktioniert das nicht …

Boolean = Ja/nein
long/integer= nur Ganzzahlen
Double= Zahlen
String = Text
usw.
die Größenbeschränkungen kannst Du im Internet finden.

Ergänze in Word das Menüband mit dem Register „Entwicklertools“

Unter „Entwicklertools“ findest Du „Steuerelemente“
und fügst dem Word-dokument zwei „Textfelder“ ein und anschließend eine „Befehlsschaltfläche“

jetzt machst du eine doppelklick auf die „Befehlsschaltfläche“ und solltest automatisch in die VBA-Progammumgebung kommen.

und fügst bitte ein:
Private Sub CommandButton1_Click()

If Me.TextBox2.Text = 0 Or IsNumeric(Me.TextBox2.Text) = False Then
antw = MsgBox(„FEHLER“, vbOKOnly)
Me.TextBox2.Text = „“
Exit Sub
End If

MsgBox (CDbl(Me.TextBox1.Text) / CDbl(Me.TextBox2.Text))

End Sub

jetzt noch den „Enwurfsmodus“ abschalten!

gruß

manfred

Hallo,
sich hier auf www mit dem Thema auseinanderzusetzen ist mit Sicherheit nicht der richtige Weg.
Ich kann bei den Office-Versionen bis 2003 die Hilfe-Funktion sehr empfehlen. Sie gibt z.B. sehr gut auskunft über die verschiedenen Datentypen.
Zu Deinen Fragen:

  1. Datentypen werden benutzt, um Variablen einen konkreten Speicherbedarf vorzugeben. Das geht vom geringsten Speicherplatzbedarf für den Datentypen Byte bis hin zum Variant, der auf für nicht explizit dimensionierte Variablen gilt. Sie werden typischerweise zu Beginn einer Funktion oder einer Prozedur mit dem Befehl DIM verwendet: DIM X AS INTEGER. Mit diesem Befehl wird der Variable X der Ganzzahlbereich von -32.768 bis + 32.768 zugewiesen. Zuweisungen außerhalb dieses Bereichs werden mit einer Fehlermeldung quittiert, Dezimalzahlen werden in den nächsten gerundeten Wert ümgewandelt.
  2. Das und verkettet einfach, macht also in Deinem Beispiel für C=1264: Die Variable C hat den Wert:1264.
    Man kann so also Texte und Variablen oder verschiedene Texte oder verschiedene Variablen kombinieren. Man könnte so z.B. auf dem Bildschirm Die Uhrzeit und eine der Uhrzeit entsprechende Begrüßung kombinieren: "Guten Morgen, es ist " & vUhrzeit (mit Wert für vUhrzeit = 6:00:00 Uhr. Und das ganze entsprechend abgewandelt für Tagsüber und Abends. Aber ist nur ein ganz kleines Beispiel.
  3. Bitte in ein Modul kopieren und starten:
    Sub Division()

On Error GoTo err1:

Dim vZahl1, vZahl2, vRest, vQuotient As Long
Dim vErgebnis As Double
Dim vMldg1, vMldg2, vMldg3, vTitel1, vTitel2, vFehlermldg As String

vTitel1 = „Rechenaufgabe: Division“
vTitel2 = „Ergebnispräsentation“
vMldg1 = „Bitte geben Sie nacheinander zwei ganze Zahlen ein.“
vMldg1 = vMldg1 & Chr(13)
vMldg1 = vMldg1 & „Handelt es sich nicht um ganze Zahlen, wird mathematisch gerundet.“
vMldg1 = vMldg1 & Chr(13)
vMldg1 = vMldg1 & „Achten Sie bitte darauf, dass die zweite Zahl nicht gleich 0 (null) ist!“
vMldg1 = vMldg1 & Chr(13)
vMldg1 = vMldg1 & "Jetzt bitte die erste Zahl: "
vMldg2 = "Und jetzt bitte die zweite Zahl: "

Eingabe1:
vZahl1 = CLng(inputbox(vMldg1, vTitel1))
Eingabe2:
vZahl2 = CLng(inputbox(vMldg2, vTitel1))

If vZahl2 = 0 Then
vFehlermldg = „Sie haben für die zweite Zahl eine 0 (null) eingegeben, das entspricht nicht der Vorgabe!“
vFehlermldg = vFehlermldg & Chr(13)
vFehlermldg = vFehlermldg & „Bitte geben sie deshalb die Zweite Zahl erneut ein!“
MsgBox vFehlermldg, vbCritical + vbExclamation, „FEHLER!“
GoTo Eingabe2:
End If

vErgebnis = vZahl1 / vZahl2
vQuotient = vZahl1 \ vZahl2
vRest = vZahl1 Mod vZahl2

vMldg3 = „Vielen Dank für Ihren Input.“
vMldg3 = vMldg3 & Chr(13)
vMldg3 = vMldg3 & Chr(13)
vMldg3 = vMldg3 & "Sie haben uns folgende Zahlen genannt: " & vZahl1 & " und " & vZahl2
vMldg3 = vMldg3 & Chr(13)
vMldg3 = vMldg3 & Chr(13)
vMldg3 = vMldg3 & „Dividiert man die erste Zahl durch die Zweite, so erhält man“
vMldg3 = vMldg3 & Chr(13)
vMldg3 = vMldg3 & "Als Fließkommazahl: " & vErgebnis & Chr(13)
vMldg3 = vMldg3 & "Als ganzzahligen Quotient: " & vQuotient & " mit Rest " & vRest
vMldg3 = vMldg3 & Chr(13)
vMldg3 = vMldg3 & Chr(13)
vMldg3 = vMldg3 & „Noch viel Spaß und beehren Sie uns bald wieder!“

MsgBox vMldg3, vbInformation, vTitel2

Exit Sub

err1:
Select Case Err.Number
Case 13
MsgBox „Wie schade, abgebrochen!“, vbCritical, „Abbruchunternehmen“
Case Else
MsgBox "Die Ausführung wurde mit folgendem Fehler abgebrochen: " & Chr(13) & Err.Number & " - " & Err.Description, vbCritical, „ERROR!“
End Select
End Sub

Ich danke euch allen ganz herzlich :smile: mir ist klar dass ich mich wirklich mal intensiv damit beschaeftigen sollte…

Hallo,
VBA ist eine voll funktionstüchtige Entwicklerumgebung für das MS Office. Damit kann man Prozeduren für all diese Anwendungen schreiben. Die Verwendung ähnelt der von Visual Basic nur das hier eben keine eigenständigen Programme entwickelt werden sondern die Funktionen von MS Office automatisiert werden. Zudem können auch Funktionen anderer Programme wie Adobe Raider aber auch Windows selbst verwendet werden. Um dies nutzen zu können sollte man bereits erfahrungen mit anderern Sprachen wie C oder Visual Basic haben oder sich das notwendige Grundwissen aus Büchern und so erwerben.
zu deinen Fragen:

  1. mit den Datentypen legst du fest, welche Informatiopnen in den Variabelen gespeichert werden können. Was genau hinter den einzelnen Variabelen steht, erfährst du am besten, wenn du die Hilfe dazu aufrufst. Zum Verständnis: Wenn du in Access eine Tabelle entwirfst, wirst du diese Variabelen als FRormat wiederfinden. Excel ist da sehr flexibel und du kannst das Format einer einzelnen Zelle jeweils einzeln festlegen. In Access legst du beim Tabellenentwurf fest, welches Format die Daten haben müssen. Genau so ist dies in VBA. Wenn du eine Variabele formatierst legst du fest, welche Daten darin gespeichert werden können. S kannst du zwar in eiem String auch 123 speichern aber in einem Long nicht ABC. Das mus halt eine Zahl sein. Wichtig auch wenn du später mit den Werten der Variablen arbeiten willst. So bekommst du eine menge mehr an Arbeit wenn du generell das Format String verwendest und du mit denn darin enthaltenen Werten rechnen willst.
      1. In Word läst du dir das Entwicklerribbon anzeigen. jetzt klickst du auf den Button Entwurfsmodus und fügst 2 Textfelder aus den Activ x Steuerelemente hinzu. Des weiteren noch ein Button.
        Den Button klickst du mit links an und gehst auf Code anzeigen. Da fügst du dann das folgenden ein
        Private Sub CommandButton1_Click()
        Dim lonA As Long
        Dim lonB As Long
        Dim lonC As Double
        Dim lond As Integer
        Dim lonE As Double

lonA = Val(TextBox1)
lonB = Val(TextBox2)

If IsNull(lonA) Or IsNull(lonB) Then
MsgBox „Bitte geben Sie Werte größer Null ein“
TextBox1 = „“
TextBox2 = „“
Exit Sub
End If
lonC = lonA / lonB 'Fließkommazahl

lond = lonA / lonB 'ganzzahliger Quotient

lonE = lonA Mod lonB 'Divisionsrest

MsgBox lonC & " " & lond & " " & lonE

End Sub

Wenn du dir jetzt die vorletzte Zeile ansiehst, siehst du auch was es mit dem & auf sich hat. Sie dient in diesem Fall dazu Texte und Variabelen miteinander zu verbinden und eine neue Variable/Text zu bilden.
Ach so die Berechnungen stimmen noch nicht ganz. Da musst du selber noch mal suchen.