VBA in MS Word: ActiveX Checkboxes

Status
Niet open voor verdere reacties.

dbe

Gebruiker
Lid geworden
6 feb 2010
Berichten
15
Hoi,

Ik heb op dit moment een probleem met een Word document, waar een VBA code achter schuil moet gaan.

De bedoeling van het document is een soort van Checklist maken, die stap voor stap moet doorlopen worden.
Dit document zal worden gebruikt door onze HR dienst, die bij de aanwerving van een nieuwe medewerker, een aantal documenten moet afdrukken.

Ik heb dus een lijst gemaakt, waar ActiveX Checkboxes aan toegevoegd zijn.
Deze controls heb ik toegevoegd met behulp van de Control Toolbox Toolbar in Word 2003.
Ik heb tevens ook een CommandButton toegevoegd, onderaan het document.

Nu wil ik het klaarspelen dat, wanneer iemand de CommandButton aanklikt, er een macro gestart wordt die
alle geselecteerde Checkboxes gaat afdrukken, in de juiste volgorde (top - down).

De Checkboxes zijn uiteraard zo opgebouwd dat de Caption van deze controls de juiste Hyperlink bevat.

Mijn idee was om als volgt te werken:

For Each <control> in ThisDocument

If <control type> = "Checkbox" Then

If <control value> = True Then

Print Document to Default Printer

End If​

End If​

Next <control>


Ik krijg het echter niet voor elkaar. :confused:

Kan iemand me op weg helpen? Ik zou dit zéér op prijs stellen.

Het is een vrij dringende vraag, omdat ik het klaar moet hebben voor aanstaande woensdag.
Google heeft me niet verder geholpen.

In bijlage een test-document

Alvast bedankt voor alle tips die ik kan krijgen.. :)
 

Bijlagen

  • Checklist.doc
    84 KB · Weergaven: 64
Code:
Private Sub CommandButtonPrint_Click()
  For Each cb In ActiveDocument.InlineShapes
    If TypeName(cb.OLEFormat.Object) = "CheckBox" Then
      If cb.OLEFormat.Object.value=true then Application.PrintOut , , , , , , , , , , , , cb.OLEFormat.Object.Caption
    End If
  Next
End Sub
 
Code:
Private Sub CommandButtonPrint_Click()
  For Each cb In ActiveDocument.InlineShapes
    If TypeName(cb.OLEFormat.Object) = "CheckBox" Then
      If cb.OLEFormat.Object.value=true then Application.PrintOut , , , , , , , , , , , , cb.OLEFormat.Object.Caption
    End If
  Next
End Sub

WOW Thanks!
Werkt perfect!!

Ikzelf zat vast hoe ik de ActiveX controls kon doorlopen in een Loop.
Ik had niet gedacht aan het .InlineShapes commando...

SUPER! :thumb:
 
Nog één vraagje:

Als ik een hyperlink wil afdrukken die achter de checkbox schuil gaat, hoe doe ik dit dan?

Ik heb geprobeerd met volgende code, maar deze werkt niet.

Code:
Private Sub CommandButtonPrint_Click()

    For Each cb In ActiveDocument.InlineShapes
        If TypeName(cb.OLEFormat.Object) = "CheckBox" Then
            If cb.OLEFormat.Object.Value = True Then
            Application.PrintOut , , , , , , , , , , , , cb.OLEFormat.Object.Hyperlinks.Address
            End If
        End If
    Next
    
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan