Friday, December 27, 2019

VBA Macro en Excel para analizar diálogos de Whatsapp.


     Esta macro permite importar cualquier archivo de texto exportado por Whatsapp (versión 2.19 para Diciembre 2019) y crear una estadística de la cantidad y porcentajes de mensajes enviados por cada persona que se encuentre en grupo.

>>> Descargue aquí <<<

     Para obtener el diálogo de un grupo de Whatsapp, simplemente desde su celular entre en el grupo deseado, abra el menú (en Android son los tres puntos en la esquina superior derecha del grupo) y seleccione las opciones:

     >Más
     >Exportar chat
     >Sin Multimedia

     Finalmente seleccione el cliente de email de su preferencia (Outlook, Gmail, etc) y envíese usted mismo el archivo .TXT anexo en un email. Puede descartar los otro anexos que Whatsapp envía, como los archivo .VCF de contactos (no son usados por esta macro).

     Una vez que reciba por email el archivo .TXT colóquelo en la misma carpeta donde descargó la macro (estos pasos son en su computadora PC de escritorio o laptop). Puede renombrarlo para que le sea más fácil recordar posteriormente el nombre del archivo.

     Abra el archivo de Excel que contiene la macro. Es posible que primero requiera habilitar en Excel la ejecución de macros (en Google hay varios métodos de acuerdo a cada versión). La ejecución de macros viene desactivada en las últimas versiones.

     Escriba el nombre del archivo de texto que desea analizar.

     Haga click en el botón ANALIZAR. Los resultados serán mostrados en las hojas "RESULTADOS" y  "GRÁFICOS".



     Para enviar los resultados al grupo en cuestión se recomienda usar Whatsapp Web desde su PC. Después de correr la macro se pueden seleccionar y copiar (CTRL-C) las zonas de interés (grupo de celdas y/o gráfico con los resultados) y pegar directamente (CTRL-V) en la zona de enviar texto al grupo en Whatsapp Web. Inclusive se puede seleccionar la tabla completa de resultados y pegar en Whatsapp Web. La tabla seleccionada en Excel pasará como imagen al grupo en Whatsapp Web (se probó Whatsapp Web con Google Chrome sin problemas).

     Notas:

1) Debe conservar cierto historial del grupo a fin de obtener resultados interesantes (un mes o un año). Si el grupo envía mucho contenido multimedia ud. puede regularmente borrar solo los mensajes de video, voz e imágenes que le ocupan espacio desde la opción "Group Media" (aquí se selecciona esos mensajes rápidamente y luego se envía a la papelera). De esta manera quedará registro de que la persona envió ese mensaje y no se borrará del historial del chat.

2) Si usted no tiene suficiente espacio de memoria en el celular es posible que whatsapp solo exporte una fracción del chat. Por ejemplo, Ud. tiene dos años de historial del chat pero whatsapp solo le exporta 8 meses. Si esto le ocurre, libere espacio de su celular y vuelva a exportar.

3) Si una misma persona ha escrito desde varios números telefónicos (por ejemplo cuando ha cambiado de número) podría aparecer varias veces en el diálogo y ser reconocido como personas diferentes. Para resolver esto, integre dentro de un solo nombre de contacto (en su celular) todos los números de esa persona antes de exportar el diálogo.

4) Esta macro está escrita en VBA (Visual Basic para Aplicaciones) para Excel 2013 (en Inglés). Es probable que no corra en versiones anteriores de Excel. No la he probado. El diálogo exportado y enviado por Whatsapp en el archivo de texto no está codificado en el estándar ANSI común sino en UTF-8 (contiene emojis) y se hace necesario tener en la computadora y en Excel la librería:

"Microsoft ActiveX Data Objects 2.8 Library"

para que sea cargada cuando se ejecute la macro. Ciertas funciones de esta librería son utilizadas para cargar en Excel adecuadamente los archivos de texto codificados en UTF-8. Cada vez que se corre la macro se observarán unos breves segundos mientras se carga la librería antes de que se haga el análisis del archivo de texto con el diálogo.

     Para identificar si tiene disponible esta librería, siga los siguientes pasos:

a) Abra Excel y cree un archivo nuevo en blanco.

b) Seleccione la opción del menú "Developer" (si no la tiene disponible, deberá activarla, en Google están los pasos).


c) Abra la opción "View Code". Se abrirá una ventana nueva con el editor de macros.


d) Selecciones la opción del menú "Tools" y luego "References". Se abrirá una ventana de diálogos.


e) En la lista alfabética de librerías, baje hasta "Microsoft ActiveX DataObjects" y verifique que tiene disponible la versión 2.8 (no tiene que seleccionarla).



f) Si no aparece disponible, descárguela e instálela desde el sitio web de Microsoft aquí (usualmente para Windows 2000 o anteriores).


     Esta macro fue escrita simplemente como hobby y para divertirme un poco con algunos grupos "intensos, terribles y divertidos" a los que pertenezco. Me he reído muchísimo con la reacción de la gente.

     Se agradecen feedback y comentarios!!!.

R. Gil