Ejemplo de código fuente VBA (Visual Basic for Application), para Office (Access, Excel, Word), que calcula, a partir de la edad, el peso, el sexo y la actividad física, el gasto termogénico de la dieta (GT), el gasto energético basal (GEB o también llamado Tasa Metabólica Basal TMB), según la fórmula de Harris-Benedict, y el gasto energético total (GET) o gasto energético total en reposo (GER).
En el siguiente cálculo, se suma al GET (Gato Energético Total) el GT (Gasto Termogénico de la dieta), que es, en resumen, el gasto calórico que necesita el cuerpo para hacer la digestión de los alimentos ingeridos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
Dim peso As Single Dim altura As Single Dim Edad As Integer Dim gastoActividadFisica As Single Dim gastoTermogenicoDieta As Single Dim gastoEnergeticoBasal As Single Dim gastoEnergeticoTotal As Single Dim continuar As Boolean On Error GoTo Error continuar = True If IsNull(txtPeso.Value) Then MsgBox "Debe introducir el peso del paciente.", _ vbExclamation, "Faltan datos..." continuar = False ElseIf IsNull(txtAltura.Value) Then MsgBox "Debe introducir la altura (en centímetros) del paciente.", _ vbExclamation, "Faltan datos..." continuar = False ElseIf IsNull(txtEdad.Value) Then MsgBox "Debe introducir la fecha de nacimiento del paciente para obtener la edad.", _ vbExclamation, "Faltan datos..." continuar = False ElseIf IsNull(lsActivdadFisica.Value) Then MsgBox "Debe indicar la actividad física del paciente en la medición.", _ vbExclamation, "Faltan datos..." continuar = False End If If continuar Then peso = Val(txtPeso.Value) altura = Val(txtAltura.Value) Edad = Val(txtEdad.Value) gastoActividadFisica = 0 'Cálculo del Gasto Energético Basal (GEB) según Morris-Benedict ' Si es hombre If txtSexo.Value = "Hombre" Then gastoEnergeticoBasal = 66.47 + (13.75 * peso) + (5 * altura) - (6.74 * Edad) If lsActivdadFisica.Value = "Muy ligera" Then gastoActividadFisica = 1.3 End If If lsActivdadFisica.Value = "Ligera" Then gastoActividadFisica = 1.55 End If If lsActivdadFisica.Value = "Moderada" Then gastoActividadFisica = 1.78 End If If lsActivdadFisica.Value = "Alta" Then gastoActividadFisica = 2.1 End If If lsActivdadFisica.Value = "Muy alta" Then gastoActividadFisica = 2.4 End If End If ' Si es mujer If txtSexo.Value = "Mujer" Then gastoEnergeticoBasal = 655.1 + (9.56 * peso) + (1.85 * altura) - (4.68 * Edad) If lsActivdadFisica.Value = "Muy ligera" Then gastoActividadFisica = 1.3 End If If lsActivdadFisica.Value = "Ligera" Then gastoActividadFisica = 1.56 End If If lsActivdadFisica.Value = "Moderada" Then gastoActividadFisica = 1.64 End If If lsActivdadFisica.Value = "Alta" Then gastoActividadFisica = 1.82 End If If lsActivdadFisica.Value = "Muy alta" Then gastoActividadFisica = 2.2 End If End If 'Cálculo del Gasto Termogénico de la dieta (GT) gastoTermogenicoDieta = 0.1 * gastoEnergeticoBasal * gastoActividadFisica 'Cálculo del Gasto Energético Total (GET) gastoEnergeticoTotal = gastoEnergeticoBasal * _ gastoActividadFisica + gastoTermogenicoDieta txtGEB.Value = gastoEnergeticoBasal txtGT.Value = gastoTermogenicoDieta txtFA.Value = gastoActividadFisica txtGET.Value = gastoEnergeticoTotal End If Exit Sub Error: MsgBox "Se ha producido un error al calcular el GET: " & Err.Description, vbExclamation + vbOKOnly Resume Next End Sub |
Como podemos observar en el código VBA, toma los siguientes valores de campos que se supone que tenemos en un formulario Access:
- txtPeso: peso en kilogramos de la persona.
- txtAltura: altura en centímetros de la persona.
- txtEdad: edad en años de la persona.
- txtSexo: si es hombre o mujer.
- lsActivdadFisica: se elige los valores «Muy ligera, «Ligera», «Moderada», «Alta» o «Muy alta».
El código VBA muestra en los siguientes campos de un formulario el resultado de los cálculos:
- txtGEB: el gasto energético basal (GEB) (kilocalorías diarias), obtenido de la fórmula (altura en centímetros, peso en kilogramos):
- Si es Hombre: GEB = 66,47 + (13,75 * Peso) + (5 * Altura) – (6,74 * Edad)
- Si es Mujer: GEB = 655,1 + (9,56 * Peso) + (1,85 * Altura) – (4,68 * Edad)
- txtFA: gato de actividad física (FA), se obtiene en base a la siguiente tabla:
Actividad física | Descripción | FA Hombre | FA Mujer |
Muy ligera | Poco o ningún ejercicio, trabajo de oficina, sedentario | 1,3 | 1,3 |
Ligera | Ejercicio físico de 1 a 3 días por semana | 1,55 | 1,56 |
Moderada | Ejercicio físico de 3 a 5 días por semana | 1,78 | 1,64 |
Alta | Ejercicio físico de 6 a 7 días a la semana | 2,1 | 1,82 |
Muy alta | Ejercicio físico 2 veces al día | 2,4 | 2,2 |
- txtGT: gasto termogénico de la dieta (GT) (kilocalorías diarias), obtenido de la fórmula: GT = 0.1 * GEB * FA
- txtGET: gasto energético total (GET) o gasto energético total en reposo (GER) (kilocalorías diarias): GET = GEB * FA + GT
En el cálculo del GET, el GEB y el GT se obtienen kilocalorías diarias.
Un ejemplo de formulario Access que mostrará estos cálculos: