tekstvak in Word document aanpassen

Status
Niet open voor verdere reacties.

nonono

Gebruiker
Lid geworden
28 jan 2009
Berichten
289
Ik heb in een Word-document (2003) een euro/gulden calculator uitgewerkt om VBA beter te begrijpen. Wat me in Excel lukt om via macro de code te ontdekken, lukt me niet in Word. De calculator werkt , maar ik wil iets meer:

• hoe kun je getallen in tekstvakken afronden op 2 decimalen? De regel format ….. werkt niet.

Code:
Private Sub cmdEuro_Click()
…………
' bereken
  euro = gulden / 2.20371
 '  format(euro,"0.00")
…………
End Sub

• hoe kun je getallen in tekstvakken horizontal/vertikaal uitlijnen? De tekst in een opdrachtknop is gecentreerd. Als het tekstvak groter is dan van de opdrachtknop, dan wil je het getal ook gecentreerd zien
• resetknop om invoervakken leeg te maken. Om met een blanco calculator te starten wil ik de tekstvakken leeg maken (clear contents). Hoe selecteer/aktiveer ik de tekstvakken en vervolgens “Clear contents”

Alvast mijn dank, groet Nono

Bekijk bijlage Calculator.doc
 
Ik heb nog nooit een programma gemaakt met office maar heb wel ervaring met c# en dergelijke.
Hoe kan ik de code zien in word, mischien dat ik je verder kan helpen

m.v.g.
 
Ik heb het document Calculator.doc in post #1 bijgesloten.
Met ALT + F11 wordt de visual basic editor geopend. En met potlood/driehoek in de werkbalk kom je in Design Mode.
Dan in het document rechts klikken op een object en vervolgens op Properties. Hier kun je al het e.e.a. wijzigen.
Alleen ik zie geen mogelijkheid om via Properties de andere aanpassingen uit te voeren.

Rechtsklikken op de opdrachtknop en View Code dan wordt de code onder de knoppen zichtbaar. Moet hier na de berekening van euro's resp. guldens een regel toegevoegd worden om te kunnen afronden op 2 decimalen?

Groet Nono
 
Laatst bewerkt:
Het leegmaken van de tekstvakken met de resetknop is voor de helft gelukt.
“guldens” leegmaken gaat goed, maar
“euro’s” leegmaken strand op de regel: txtEuros.Text = ""

Code:
Private Sub cmdReset_Click()

' declaratie van waarden
  Dim guldenS As String
  Dim euroS As String
  
  guldenS = txtGulden.Text
  txtGulden.Text = ""

  euroS = txtEuro.Text
  txtEuros.Text = ""

End Sub

Dit begrijp ik niet
 
Foutje vanwege 4-kanten oogjes

txtEuros.Text = "" moet zijn txtEuros.Text = ""
 
Ik heb effe goed in de oogjes gewreven

txtEuros.Text = "" moet zijn txtEuro.Text = ""
 
Code:
Private Sub cmdReset_Click()
txtGulden.Text = "0"
txtEuro.Text = "0"
End Sub

dit is al genoeg.
 
Een stap verder. Het afronden op 2 decimalen is gelukt.
Bij “schrijven naar scherm” heb ik de command code aangepast met . “Format(xxxxx, "0.00")” en dit werkt.

Code:
…..
' schrijven naar scherm
  euroS = Str(euro)
' txtEuro.Text = euroS
    txtEuro.Text = Format(euroS, "0.00")
…..

Code:
…..
' schrijven naar scherm
  guldenS = Str(gulden)
' txtGulden.Text = guldenS
    txtGulden.Text = Format(guldenS, "0.00")
…..
Blijft nog over het uitlijnen in tekstvakken. Dit is denk ik toch wel iets lastiger.
 
Valt mee:
Code:
    Me.txtEuro.TextAlign = fmTextAlignLeft
 
Dit werkt inderdaad, maar ik zou de layout nog anders willen zien.
Bij een CommandButton wordt de tekst gecentreerd in de knop geplaatst (horizontaal en vertikaal).

In het voorbeeld heb ik het 2-de tekstvak groter gemaakt dan de opdrachtknop. Dan zie je dat het resultaat in de linkerboven- resp. rechterbovenhoek geplaatst wordt. Is het ook mogelijk om het resultaat gecentreerd in het tekstvak te zien?

Groet Nono
 
In html is er naast Align ook vAlign. Vervolgens heb ik gezocht voor vAlign in VBA, maar dan vind ik niets. Dan wordt vertikaal uitlijnen moeilijk.

Hoe de tekst in een opdrachtknop wel centraal (horizontal en vertikaal) geplaatst is, blijft denk ik het geheim van de smid.
 
Niet alleen geheim van de smid, geheim van Microsof. Ze hebben namelijk geen eigenschappen voor de knop waarmee je dat kunt instellen. Wil je dat wel, dan zul je zelf een knop moeten maken op basis van een rechthoek object bijvoorbeeld, en daar een Click-event aan moeten hangen. En een rechthoek kun je uiteraard wèl naar eigen behoefte laten uitlijnen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan