Macro for simple scoring on a form
Select the fields where numbers are to be entered
Make them into Combo Boxes
Click on Tstring
Type the numbers to be used in the field
Make the box for total score an edit and Read Only and change background colour so it’s greyed out
Open Macro editor for the form
Add new Macro and give it a name
Use the example macro and edit as needed ( see UBC Sleep Clinic as an example of editing the Macro)
Click on the blue checkmark (1)
Save the Macro (2 - will be live for a new Macro)

In Object Inspector, click on events
Macro Calculation
'macro Calculation
Sub Main()
' Col1
Set ComboBox1 = Form.Controls_("ComboBox1")
Set ComboBox2 = Form.Controls_("ComboBox2")
Set ComboBox3 = Form.Controls_("ComboBox3")
Set ComboBox4 = Form.Controls_("ComboBox4")
Set ComboBox5 = Form.Controls_("ComboBox5")
Set ComboBox6 = Form.Controls_("ComboBox6")
Set ComboBox7 = Form.Controls_("ComboBox7")
Set Edit10= Form.Controls_("Edit10")
Edit10.text = cnull(ComboBox1.text) + cnull(ComboBox2.text) +
cnull(ComboBox3.text) + cnull(ComboBox4.text)+ cnull(ComboBox5.text) + cnull(ComboBox6.text)
+ cnull(ComboBox7.text)
End Sub
FUNCTION cnull(var)
Dim var1
if not isnumeric(var) then var1 = 0 else var1 = cint(var)
cnull = var1
END function
Macro Calculation for UBC Sleep Clinic
'macro Calculation [for UBC Sleep Clinic Referral]
Sub Main()
' Col1
Set ComboBox1 = Form.Controls_("ComboBox1")
Set ComboBox2 = Form.Controls_("ComboBox2")
Set ComboBox3 = Form.Controls_("ComboBox3")
Set ComboBox4 = Form.Controls_("ComboBox4")
Set ComboBox5 = Form.Controls_("ComboBox5")
Set ComboBox6 = Form.Controls_("ComboBox6")
Set ComboBox7 = Form.Controls_("ComboBox7")
Set ComboBox8 = Form.Controls_("ComboBox8")
Set ComboBox9 = Form.Controls_("ComboBox9")
Set Edit21= Form.Controls_("Edit21")
Edit21.text = cnull(ComboBox1) + cnull(ComboBox2) + cnull(ComboBox3) +
cnull(ComboBox4)+ cnull(ComboBox5) + cnull(ComboBox6) + cnull(ComboBox7) +cnull(ComboBox8)
+cnull(ComboBox9)
End Sub
FUNCTION cnull(var)
Dim var1
if not isnumeric(var) then var1 = 0 else var1 = cint(var)
cnull = var1
END function
Macro AutoCalc
'macro AutoCalc
Sub Main()
' Col1
Set Edit3 = Form.Controls_("Edit3")
Set Edit4 = Form.Controls_("Edit4")
Set Edit5 = Form.Controls_("Edit5")
Set Edit6 = Form.Controls_("Edit6")
Set Edit7 = Form.Controls_("Edit7")
Set Edit8 = Form.Controls_("Edit8")
Set Edit9 = Form.Controls_("Edit9")
Set Edit10 = Form.Controls_("Edit10")
Set Edit11 = Form.Controls_("Edit11")
Set Edit12= Form.Controls_("Edit12")
Set Edit13= Form.Controls_("Edit13")
Set Edit97= Form.Controls_("Edit97")
Edit97.text = cnull(Edit3.text) + cnull(Edit4.text) + cnull(Edit5.text)
+ cnull(Edit6.text)+ cnull(Edit7.text) + cnull(Edit8.text) + cnull(Edit9.text)
+cnull(Edit10.text) + cnull(Edit11.text) + cnull(Edit12.text) + cnull(Edit13.text)
'Col2
Set Edit14 = Form.Controls_("Edit14")
Set Edit15 = Form.Controls_("Edit15")
Set Edit16 = Form.Controls_("Edit16")
Set Edit17 = Form.Controls_("Edit17")
Set Edit18 = Form.Controls_("Edit18")
Set Edit19 = Form.Controls_("Edit19")
Set Edit20 = Form.Controls_("Edit20")
Set Edit21 = Form.Controls_("Edit21")
Set Edit22 = Form.Controls_("Edit22")
Set Edit23= Form.Controls_("Edit23")
Set Edit24= Form.Controls_("Edit24")
Set Edit98= Form.Controls_("Edit98")
Edit98.text = cnull(Edit14.text) + cnull(Edit15.text) + cnull(Edit16.text)
+ cnull(Edit17.text)+ cnull(Edit18.text) + cnull(Edit19.text) + cnull(Edit20.text)
+cnull(Edit21.text) + cnull(Edit22.text) + cnull(Edit23.text)+ cnull(Edit24.text)
' Col3
Set Edit25 = Form.Controls_("Edit25")
Set Edit26 = Form.Controls_("Edit26")
Set Edit27 = Form.Controls_("Edit27")
Set Edit28 = Form.Controls_("Edit28")
Set Edit29 = Form.Controls_("Edit29")
Set Edit30 = Form.Controls_("Edit30")
Set Edit31 = Form.Controls_("Edit31")
Set Edit32 = Form.Controls_("Edit32")
Set Edit33 = Form.Controls_("Edit33")
Set Edit34= Form.Controls_("Edit34")
Set Edit35= Form.Controls_("Edit35")
Set Edit99= Form.Controls_("Edit99")
Edit99.text = cnull(Edit25.text) + cnull(Edit26.text) + cnull(Edit27.text)
+ cnull(Edit28.text)+ cnull(Edit29.text) + cnull(Edit30.text) + cnull(Edit31.text)
+cnull(Edit32.text) + cnull(Edit33.text) + cnull(Edit34.text) + cnull(Edit35.text)
' Col4
Set Edit36 = Form.Controls_("Edit36")
Set Edit37 = Form.Controls_("Edit37")
Set Edit38 = Form.Controls_("Edit38")
Set Edit39 = Form.Controls_("Edit39")
Set Edit40 = Form.Controls_("Edit40")
Set Edit41 = Form.Controls_("Edit41")
Set Edit42 = Form.Controls_("Edit42")
Set Edit43 = Form.Controls_("Edit43")
Set Edit44 = Form.Controls_("Edit44")
Set Edit45= Form.Controls_("Edit45")
Set Edit46= Form.Controls_("Edit46")
Set Edit100= Form.Controls_("Edit100")
Edit100.text = cnull(Edit36.text) + cnull(Edit37.text) + cnull(Edit38.text)
+ cnull(Edit39.text)+ cnull(Edit40.text) + cnull(Edit41.text) + cnull(Edit42.text)
+cnull(Edit43.text) + cnull(Edit44.text) + cnull(Edit45.text) + cnull(Edit46.text)
End Sub
FUNCTION cnull(var)
Dim var1
if not isnumeric(var) then var1 = 0 else var1 = cint(var)
cnull = var1
END function