Fonología
PLON-R. Fonología (IV)
En la [entrada anterior] quedó clara la opción de trabajo con el test en su fase input. Esto nos permite diferenciar entre esa fase, ni digitalizada ni informatizada, de las del análisis de datos, aunque si queremos evitar la pérdida de esa información que hemos descrito como de máximo interés, deberíamos proceder a registrarla digitalizada de forma íntegra.
Pero esa es una cuestión que no tiene por qué ocuparnos ahora y que, además, se puede resolver fácilmente con un sistema de recogida de datos basado en Calc, a modo de base de datos, y que no tiene por qué ser demasiado sofisticado.
Lo que sí puede serlo, por lo que no me resigno a dejarlo pendiente, es desarrollar la opción que rechacé por inconveniente en la entrada precedente y que implica desarrollar lo que la [opción primera] nos ofrece.
Que conste que este paréntesis en el que planteo la automatización del input de PLON-R. Fonología, o si se prefiere de la reformulación de este test con objetivos específicos, que es lo que en realidad trato de desarrollar aquí, es sólo eso, un paréntesis, del cual nos olvidaremos en la entrada siguiente, porque no es en realidad la opción más adecuada.
No lo es, es cierto, pero sí es la más interesante desde el punto de vista de la automatización de la evaluación. Por eso no me resisto a plantearla ahora para que no quede en el tintero. Y lo haré de un modo sencillo, sin pensar demasiado en lo que exigiría un recurso finalizado y plenamente funcional. Empezando por trabajar ahí donde lo dejamos con el soporte Calc inicial, con todos los ítem de la prueba y sin más pretensión que automatizar la presentación y la puntuación. Y también ahí donde quedó la explicación de la creación de una presentación automatizada sobre Draw (ver entrada). Con estas advertencias quiero decir que no me voy a prodigar en explicaciones que se pueden dar por sabidas. Es una cuestión de economía de tiempos.
Retomo el soporte Calc tal y como lo vimos en [esta entrada]
Añado un módulo al IDE del documento y copio en él el código relevante de la automatización de la presentación. Además copio en una carpeta (img) todas las imágenes que necesito, configurando así el paquete de la documentación necesaria.
Ahora, sobre la hoja realizo las siguientes modificaciones:
- Reduzco la hoja Portada a lo que muestra esta captura de pantalla. El botón de comando me servirá en su momento para acceder al script principal.
- Modifico las fórmulas de la identificación de respuesta (SI(E4="";"";SI(E4="1";D4;"Error"))) y de los sumatorios parciales en Fonología para adaptarlas al tipo de dato que introduce el procedimiento de automatización (fórmula CONTAR.SI(E$4:E$24;"1")).
- Añado una nueva hoja (Matrices) que contiene la estructura matricial de categorización de los ítem de la prueba (sin modificar su contenido). El resultado no es muy diferente al que mostramos al final de la [entrada anterior].
Sub AccesoDim oHoja As ObjectDim sHoja As StringDim oCelda As ObjectDim col As StringDim i As Integer'Matrices para acceso a datosDim mEdad(60) As IntegerDim edad As IntegerDim mPal(60) As stringDim Pal As string'Matriz para puntuar la pruebaDim mPtos(60) As StringDim r As Integer'Acceso al libro (ThisComponent), y a la hoja (sHoja)sHoja = "Matrices"oHoja =ThisComponent.getSheets().getByName(sHoja)'Acceso al contenidos de las listasFor i = 0 to UBound(mEdad())'Acceso a los datos de edadoCelda = oHoja.getCellRangeByName( "B" & i+1)edad = oCelda.getValue()mEdad(i) = edad'Acceso a los datos PalabrasoCelda = oHoja.getCellRangeByName( "J" & i+1)Pal = oCelda.getString()mPal(i) = PalNext'Muestra imágenes y puntuación de ítem en función de la edadDim edad_sujeto As Integeredad_sujeto = CInt(InputBox("Edad del alumno o alumna (sólo años)"))For i = 0 To UBound(mEdad())If mEdad(i) <= edad_sujeto ThenAbrirImagen(mPal(i))r = MsgBox ("Puntuación del ítem", 4 + 32 , "PLON-R. FONOLOGÍA")If r = 6 ThenmPtos(i) = "1"ElseIf r = 7 ThenmPtos(i) = "0"ElsemPtos(i) = "-"End IfEnd IfNext'Pasar la puntuación a la hoja FonologíasHoja = "Fonologia"oHoja =ThisComponent.getSheets().getByName(sHoja)For i = 0 To UBound(mPtos())oCelda = oHoja.getCellRangeByName( "E" & i+4)oCelda.setString(mPtos(i))Next
End Sub
Al código del script de base se le han añadido los siguientes componentes:
- Una nueva matriz para recoger las puntuaciones (Dim mPtos(60) As String)
- Un procedimiento de puntuación basado en MsgBox() en el bucle que recorre las imágenes que se muestran al alumno:
r = MsgBox ("Puntuación del ítem", 4 + 32 , "PLON-R. FONOLOGÍA")
If r = 6 Then
mPtos(i) = "1"ElseIf r = 7 ThenmPtos(i) = "0"ElsemPtos(i) = "-"End If
- Y, al final del script, un procedimiento para acceder a la hoja Fonología y para pasar la puntuación de cada ítem a las celdas de la columna E, este último basado en un bucle (For i = 0 To UBound(mPtos())).
Además he modificado la ruta absoluta que da acceso a la colección de imágenes en la subrutina AbrirImagen() para adaptarla al actual posicionamiento de las imágenes (sDocum = "D:/Docap/Presenta_PLONR/img/" & img &".png")
Materiales.
Entre otras posibilidades de cambio, pero esta no como opción, debes incluir una carpeta (img) en la que incluir las imágenes asociadas a las palabras del test. También puedes aumentar el tiempo en que se muestra la imagen (ahora wait 1000) y realizar todas las modificaciones del código que consideres pertinentes. Yo por mi parte cumplo dejándote [acceso a este documento].









