{"id":7827,"date":"2015-04-16T11:45:14","date_gmt":"2015-04-16T09:45:14","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=7827"},"modified":"2015-04-16T11:51:42","modified_gmt":"2015-04-16T09:51:42","slug":"automatizacion-de-tareas-en-excel-seguridad-en-las-macros","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/automatizacion-de-tareas-en-excel-seguridad-en-las-macros\/","title":{"rendered":"Automatizaci\u00f3n de tareas en Excel. Seguridad en las macros."},"content":{"rendered":"<p style=\"text-align: justify;\">Como muchos ya sab\u00e9is, <strong>Excel<\/strong> es un programa bastante potente y vers\u00e1til. Forma parte de la suite <strong>Office de Microsoft<\/strong>.<br \/>\nEn esta entrada voy a comentar algunos aspectos sobre la <strong>automatizaci\u00f3n<\/strong> de tareas empleado el lenguaje de programaci\u00f3n que lleva incorporado. Excel posee un <strong>editor<\/strong> para realizar tareas, adem\u00e1s de proporcionarnos muchas herramientas para administrar informaci\u00f3n, mediante las macros podremos crear aplicaciones a medida en el lenguaje de programaci\u00f3n Visual Basic.<\/p>\n<p>Tambi\u00e9n os comentar\u00e9\u00a0aspectos relacionados con la seguridad y centros de confianza.<\/p>\n<p>Para ello, voy a basarme en la hoja de c\u00e1lculo <strong>Excel versi\u00f3n 2013<\/strong>.<\/p>\n<p><!--more--><\/p>\n<p>No obstante\u00a0 desde la versi\u00f3n 2013, existe en el <strong>ribbon<\/strong> o cinta de opciones un nuevo apartado denominado <span style=\"color: #800000;\"><strong>DESARROLLADOR<\/strong><\/span> (<strong>oculto por defecto, ver imagen<\/strong>) que nos va a permitir realizar las aplicaciones a medida.<\/p>\n<p>Esta barra se llamaba <strong>PROGRAMADOR<\/strong> en las <strong>versiones 2007 y 2010<\/strong>. Por defecto <strong>no se encuentra visible OJO<\/strong>.<\/p>\n<p>Lo primero que tenemos que realizar para trabajar con ella es <strong>activarla<\/strong>. En Excel 2013, desde el men\u00fa <strong>archivo, opciones, personalizar cinta de opciones, pesta\u00f1as principale<\/strong>s, es preciso activar la<strong> casilla ficha Desarrollador\u00a0<\/strong> y pulsar aceptar.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Barra-de-desarrollador.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7830\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Barra-de-desarrollador.jpg\" alt=\"Barra-de-desarrollador\" width=\"1086\" height=\"663\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Barra-de-desarrollador.jpg 1086w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Barra-de-desarrollador-300x183.jpg 300w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Barra-de-desarrollador-1024x625.jpg 1024w\" sizes=\"auto, (max-width: 1086px) 100vw, 1086px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Visual Basic para Aplicaciones (<strong>VBA<\/strong>) es un lenguaje de programaci\u00f3n que incorpora la suite Office.<\/p>\n<p style=\"text-align: justify;\">En las primeras versiones, las macros en Excel se escrib\u00edan en <strong>hojas separadas<\/strong> para este prop\u00f3sito. La extensi\u00f3n de los archivos que se generaban eran .<strong>XLM<\/strong>. En la versi\u00f3n 5.0 de 1993, la empresa de <a href=\"http:\/\/es.wikipedia.org\/wiki\/Redmond_%28Washington%29\" target=\"_blank\">Redmond<\/a> incorpor\u00f3 VBA. Aunque en sus inicios las macros se escrib\u00edan en m\u00f3dulos, se comenz\u00f3 a usar el editor de programaci\u00f3n desde la versi\u00f3n 97. El editor es muy parecido al IDE Visual Studio.<\/p>\n<p>Un dato bastante relevante es que a partir de la versi\u00f3n 2007, los libros que contienen c\u00f3digo VBA se almacenan en un formato de archivo diferente .<strong>XLSM<\/strong>. La M significa Macros. El formato est\u00e1ndar es <strong>XLSX<\/strong>, ya quedo en el pasado el xls, desde la incorporaci\u00f3n del XML como estructura interna de archivo. Los beneficios del XLSX son en aras de una mayor <strong>compatibilidad<\/strong>, <strong>recuperaci\u00f3n mejorada de archivos da\u00f1ados<\/strong>, y <strong>espacio<\/strong> (ancho de banda).<\/p>\n<p>Me gustar\u00eda diferenciar un matiz entre lo que es <strong>VBA y VB<\/strong>. Visual Basic es un lenguaje de programaci\u00f3n de objetos (<strong>OOP<\/strong>) y VBA es un lenguaje embebido dentro de cada programa que forma la suite. La sintaxis es pr\u00e1cticamente id\u00e9ntica, pero el conjunto de objetos que podemos usar dentro de VBA es diferente.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Hola-mundo-desde-vba-excel.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7833\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Hola-mundo-desde-vba-excel.jpg\" alt=\"Hola-mundo-desde-vba-excel\" width=\"605\" height=\"486\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Hola-mundo-desde-vba-excel.jpg 605w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Hola-mundo-desde-vba-excel-300x241.jpg 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/a><\/p>\n<p>\u00bfPero esto en que me afecta a mi?, yo s\u00f3lo uso macros.<\/p>\n<p>La respuesta es bastante, puesto que aunque no toquemos una l\u00ednea de c\u00f3digo con las macros generadas, estas se encuentran desarrolladas en VB. De hecho podemos ver el c\u00f3digo de una macro y modificarlo, en el editor. VBA no es un lenguaje aparentemente complicado, pero si es necesario disponer de una serie de conocimientos de programaci\u00f3n b\u00e1sicos.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Modificar-macro.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7836\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Modificar-macro.jpg\" alt=\"Modificar-macro\" width=\"389\" height=\"370\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Modificar-macro.jpg 389w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Modificar-macro-300x285.jpg 300w\" sizes=\"auto, (max-width: 389px) 100vw, 389px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Mi-Macro.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7835\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Mi-Macro.jpg\" alt=\"Mi-Macro\" width=\"358\" height=\"295\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Mi-Macro.jpg 358w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Mi-Macro-300x247.jpg 300w\" sizes=\"auto, (max-width: 358px) 100vw, 358px\" \/><\/a><\/p>\n<p>Una macro no es m\u00e1s que una serie de <strong>instrucciones escritas en VBA que se almacenan en un m\u00f3dulo<\/strong>. Este aspecto es importante. Cuando se crea una macro y se pulsa sobre el bot\u00f3n Visual Basic, se puede ver un procedimiento sub sobre la carpeta m\u00f3dulos.<\/p>\n<p>Recuerda que con las macros podemos agilizar todas nuestras tareas frecuentes, ampliando las capacidades de Excel. Para grabar una macro tendremos que emplear la utilidad grabar macros.<\/p>\n<p>Un gran consejo que os puedo dar es\u00a0el siguiente. <strong>Si no conoces el c\u00f3digo de algo o no te has aprendido el DOM, puedes usar el examinador de objetos. Pero lo mejor de todo es estudiar el c\u00f3digo generado autom\u00e1ticamente por una macro que tengamos almacenada. De esta forma podremos conocer muchos comportamientos y m\u00e9todos que posee VBA.<\/strong><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Formulario-excel.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7832\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Formulario-excel.jpg\" alt=\"Formulario-excel\" width=\"693\" height=\"726\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Formulario-excel.jpg 693w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Formulario-excel-286x300.jpg 286w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/a><\/p>\n<p>Dentro del editor, tenemos la posibilidad de incorporar <strong>breakpoints<\/strong> y realizar <strong>depuraci\u00f3n paso a paso<\/strong>. Usando la <strong>ventana inmediato<\/strong> mostrar resultados. Podremos ver el estado de las variables en la<strong> ventaja de inspecci\u00f3n<\/strong>.<\/p>\n<p>Todas las macros poseen un nombre. Podremos grabar una determinada macro con el bot\u00f3n de grabar macro. Nos pedir\u00e1 un nombre, tecla abreviada de funcionamiento y una descripci\u00f3n. Para detenerla es necesario pulsar <strong>stop<\/strong>. Un nombre de la macro no puede ser mayor de 255 caracteres, es necesario que comience por una letra.<\/p>\n<p>Dentro del editor VBA podemos usar un conjunto de <strong>objetos<\/strong> y llamar a sus <strong>m\u00e9todos<\/strong>. En <strong>POO<\/strong> un objeto es una instancia real que queda identificado por sus <strong>estado<\/strong> (<strong>propiedades<\/strong>) y las\u00a0 acciones que se pueden realizar. Y digo esto, porque en Excel, cada elemento se puede considerar un objeto.<\/p>\n<p>El libro (<strong>workbook<\/strong>), las hojas de cada libro (<strong>worksheet<\/strong>), los rangos (<strong>range<\/strong>), las tablas din\u00e1micas (<strong>PivotTable<\/strong>), gr\u00e1ficos (<strong>charts<\/strong>), etc&#8230;\u00a0son todo ellos tratados como objetos.<\/p>\n<p>Curioso, pero actualmente en numerosos programas inform\u00e1ticos todo se trata en objetos. Y el sentido no es mas que la b\u00fasqueda de la <strong>reutilizaci\u00f3n<\/strong> del c\u00f3digo y la adaptaci\u00f3n del mundo program\u00e1tico a la realidad visible. Que usamos. Al abstraernos y pensar en objetos, todo es m\u00e1s sencillo. Por otro lado el c\u00f3digo se encapsula y se protege para su <strong>reutilizaci\u00f3n<\/strong>. Bueno, esto es otra historia y no quiero extenderme demasiado. Pero existen cientos de libros que hablan sobre la filosof\u00eda POO.<\/p>\n<p>Continuemos\u2026<\/p>\n<p>Los objetos en Excel se agrupan y clasifican en colecciones o categor\u00edas. En Excel, la clase sheet contiene todas las celdas de esa hoja, as\u00ed como el objeto workbook todas las hojas.<\/p>\n<p>Existe pues una jerarqu\u00eda de <strong>192 objetos en Excel.<\/strong> \u00bfMuchos no?, no me he puesto a contarles pero que lo que figura en la documentaci\u00f3n.<\/p>\n<p>Pero esto se complica, puesto que los objetos pueden a su vez contener otros objetos y sucesivamente formando una jerarqu\u00eda con 1 solo padre para cada clase.<\/p>\n<p>El objeto aplicaci\u00f3n (<strong>Application<\/strong>) es el m\u00e1s anciano por decirlo de alguna manera, de \u00e9l cuelgan los libros, hojas y celdas. Todos estos objetos forman lo que se conoce como <strong>DOM<\/strong> o modelo de objetos de documento. Seguro que en otros lenguajes tambi\u00e9n lo has o\u00eddo o le\u00eddo.<\/p>\n<p>La interfaz de documento en Excel (el tipo de ventanas) es <strong>SDI<\/strong>, lo que supone que cada libro posee su propia ventaja de aplicaci\u00f3n con su correspondiente ribbon o cinta de opciones. Una peque\u00f1a aclaraci\u00f3n, tambi\u00e9n existe el <strong>MDI<\/strong>. La principal desventaja de MDI es la escasez de informaci\u00f3n sobre las ventanas abiertas: Para ver una lista de ventanas abiertas de una aplicaci\u00f3n MDI, el usuario normalmente tiene que seleccionar un men\u00fa espec\u00edfico (&#8220;lista de ventanas&#8221; o algo parecido), si esta opci\u00f3n est\u00e1 disponible.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Examinador-de-objetos.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7831\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Examinador-de-objetos.jpg\" alt=\"Examinador-de-objetos\" width=\"691\" height=\"722\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Examinador-de-objetos.jpg 691w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/Examinador-de-objetos-287x300.jpg 287w\" sizes=\"auto, (max-width: 691px) 100vw, 691px\" \/><\/a><\/p>\n<p>Dentro del explorador de objetos pueden existir clases y miembros. Dentro de las clases (se diferencian por los iconos), propiedades y m\u00e9todos.<\/p>\n<p>Esto es importante.<strong> Para hacer referencia o usar un determinado objeto<\/strong> (que en muchas ocasiones ya esta creado y no es necesario instanciarle puesto que Excel lo crea por nosotros autom\u00e1ticamente y luego se encarga de destruirlo cuando se cierra el programa), <strong>se emplea la notaci\u00f3n<\/strong>:<\/p>\n<p><strong>TipoDeObjeto.Metodo(par\u00e1metros)<\/strong><\/p>\n<p>Por ejemplo para referenciar un libro:<\/p>\n<p><em>Application.workbooks(\u201cEl-Archivo.xlsm\u201d)<\/em><\/p>\n<p>Para acceder a una celda:<\/p>\n<p><em>Application.Workbooks(\u201cEl-Archivo.xlsm\u201d).Worksheets(\u201choja-de-datos\u201d).Range(\u201cB1\u201d).Select<\/em><\/p>\n<p>Que se puede resumir en:<\/p>\n<p><em>Worksheets(\u201choja-de-datos\u201d).Range(\u201cB1\u201d).Select<\/em><\/p>\n<p>Puesto que si estamos con el libro abierto se puede acceder directamente. Y m\u00e1s a\u00fan, si nos encontramos sobre la hoja \u201cHoja-de-datos\u201d, simplemente con: <em>Range(\u201cB1\u201d).Select<\/em><\/p>\n<p>Recuerda que todos los objetos y m\u00e9todos son en ingl\u00e9s.<\/p>\n<p>Algunos objetos si son del mismo tipo se pueden agrupar en forma de <strong>colecciones<\/strong>. Gracias a las colecciones podremos referenciar un conjunto de objetos. Por ejemplo, la colecci\u00f3n <strong>Worksheets<\/strong> en plural contiene todas las hojas o <strong>worksheet<\/strong>. Por lo que podremos automatizar tareas mediante alguna estructura de control para realizar ciertas acciones tediosas o que nos llevar\u00edan bastante tiempo realizarlas.<\/p>\n<p>Para hacer referencia a un objeto determinado de una colecci\u00f3n existen diversas t\u00e9cnicas.<\/p>\n<p><strong>Coleccion![Objeto]<\/strong><\/p>\n<p><strong>Colecci\u00f3n!Objeto<\/strong><\/p>\n<p><strong>Coleccion(objeto)<\/strong><\/p>\n<p><strong>Coleccion(variable)<\/strong><\/p>\n<p><strong>Coleccion (\u00edndice)<\/strong><\/p>\n<p>Algunos ejemplos:<\/p>\n<p>Workwooks(1).worsheets(1)<\/p>\n<p>Respecto a los objetos, estos poseen propiedades, m\u00e9todos y eventos que definen su<strong> comportamiento y caracter\u00edsticas<\/strong>. Por ejemplo, algunas propiedades de una hoja pueden ser range, name, value, column, etc.<\/p>\n<p>Muchas propiedades las podemos cambiar a pelo, pero recuerda que si no sabes como realizar algo, puedes grabar una macro y estudiar su c\u00f3digo.<\/p>\n<p>Por ejemplo, me gustar\u00eda cambiar el color del contenido de una celda activa a negrita, fuente 14 y color rojo. Como no se las propiedades, creo una macro llamada temporal.<\/p>\n<p>Este es el c\u00f3digo:<\/p>\n<pre class=\"lang:vb decode:true\">Sub Temporal2()\r\n\r\n' Temporal2 Macro\r\n\r\nSelection.Font.Bold = True\r\n\r\nWith Selection.Font\r\n\r\n.Name = \"Calibri\"\r\n\r\n.Size = 14\r\n\r\n.Strikethrough = False\r\n\r\n.Superscript = False\r\n\r\n.Subscript = False\r\n\r\n.OutlineFont = False\r\n\r\n.Shadow = False\r\n\r\n.Underline = xlUnderlineStyleNone\r\n\r\n.ThemeColor = xlThemeColorLight1\r\n\r\n.TintAndShade = 0\r\n\r\n.ThemeFont = xlThemeFontMinor\r\n\r\nEnd With\r\n\r\nWith Selection.Font\r\n\r\n.Color = -16776961\r\n\r\n.TintAndShade = 0\r\n\r\nEnd With\r\n\r\nEnd Sub<\/pre>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/macro-temporal.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7834\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/macro-temporal.jpg\" alt=\"macro-temporal\" width=\"674\" height=\"726\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/macro-temporal.jpg 674w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/macro-temporal-279x300.jpg 279w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/a><\/p>\n<p>Ahora estudio el c\u00f3digo y trato de entender los objetos y sus propiedades.<\/p>\n<p>Recuerda que con <strong>with<\/strong> nos simplifica tener que repetir la misma sintaxis para cada l\u00ednea. Por eso se emplea.<\/p>\n<p><em>With Selection.Font<\/em><\/p>\n<p><em>.Color = -16776961<\/em><\/p>\n<p>es lo mismo que:<\/p>\n<p><em>Selection.Font .Color=-16776961<\/em><\/p>\n<p>Es muy importante conocer la sintaxis VBA, y nos servir\u00e1 de gran ayuda conocer Visual Basic. Mas que de ayuda, lo considero casi esencial, para sacar m\u00e1s partido y potencia a nuestras hojas.<\/p>\n<p>Recuerda que algunos objetos tambi\u00e9n poseen <strong>eventos<\/strong>. Existen eventos diferentes en funci\u00f3n del objeto de donde se apliquen.<\/p>\n<p>Otro truco. Para acceder a la ventaja macros de forma r\u00e1pida pulsa la tecla <strong>Alt-F8<\/strong>. Para acceder al editor VB las teclas <strong>Alt-f11<\/strong>.<\/p>\n<p>Podemos crear tambi\u00e9n formularios dentro de Excel y que sean llamados como si fuesen \u201caplicaciones nativas\u201d Windows o con su look. Esto es realmente potente y la imagen permite hacernos una idea de lo que hablo. Posibilita crear aplicaciones realmente potentes en nuestras hojas.<\/p>\n<p><strong>Seguridad en archivos VBA de Excel.<\/strong><\/p>\n<p>Debido a la posibilidad de crear aplicaciones realmente potentes que permitan acceder al sistema mediante VB, fue preciso para evitar ataques inform\u00e1ticos producidos por virus o c\u00f3digo malicioso, crear una serie de medidas relacionadas con la seguridad.<\/p>\n<p>El principal motivo para almacenar un archivo con extensi\u00f3n diferente es para diferenciar y ofrecer mayor seguridad. Adem\u00e1s Microsoft ha incluido varios niveles de protecci\u00f3n.<\/p>\n<p>Las <strong>extensiones<\/strong> de los archivos (v\u00e9ase un buscador de <a href=\"http:\/\/www.telecentros.info\/extensiones\" target=\"_blank\">extensiones <\/a>que he desarrollado) nos brindan informaci\u00f3n importante sobre las caracter\u00edsticas que definen el tipo de archivo, el formato, el tipo de datos que contiene y el programa necesario para abrirlo o visualizarlo.<\/p>\n<p><strong>Excel 2007, 2010 y 2013<\/strong> almacena la informaci\u00f3n en formato Office Open XML y Excel en concreto asigna a sus archivos la extensi\u00f3n .XLSX. Este formato es seguro, ya que no almacena c\u00f3digo VBA, no admite grabaci\u00f3n de macros ni de controles <strong>ActiveX<\/strong>.<\/p>\n<p>Para almacenar las macros, repito, es preciso utilizar el formato .XLSM.<\/p>\n<p>Esto es interesante, puesto que para evitar tener que seleccionar el tipo de archivo tipo macros cada vez que guardemos un libro con macros, podemos predeterminar el formato .XSLM realizando las siguientes acciones:<\/p>\n<p><strong>Ficha Archivo, Opciones de Excel, Guardar, secci\u00f3n guardar libros, men\u00fa desplegable, seleccionar Guardar archivos en formato *.xlsm, aceptar.<\/strong><\/p>\n<p>En las versiones anteriores a Excel 2007, la presencia de macros en la hoja era imperceptible a menos que tuvi\u00e9ramos habilitados los niveles de seguridad referentes a las macros.<\/p>\n<p>Siempre que abramos un archivo con c\u00f3digo VBA Excel nos mostrar\u00e1 un mensaje debajo del ribbon indic\u00e1ndonos\u00a0 que se ha deshabilitado parte del contenido activo.<\/p>\n<p>El motivo de esto es que hace cierto tiempo se pusieron de moda los virus de Macro.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/opciones-excel-2013.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7837\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/opciones-excel-2013.jpg\" alt=\"opciones-excel-2013\" width=\"950\" height=\"685\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/opciones-excel-2013.jpg 950w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2015\/04\/opciones-excel-2013-300x216.jpg 300w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/a><\/p>\n<p>Excel toma en cuenta que los con macros pueden no ser de confianza. Excel considera que el fichero que estamos abriendo es poco seguro debido a que no se encuentra almacenado en una de las ubicaciones que la hoja califica de confianza.<\/p>\n<p>Una ubicaci\u00f3n de confianza es una carpeta de nuestro disco cuyo contenido consideramos se encuentra libre de amenazas. Cualquier archivo con c\u00f3digo VBA y almacenado en esa ubicaci\u00f3n abrir\u00e1 con las macros habilitadas autom\u00e1ticamente, sin mostrar advertencias.<\/p>\n<p>Para crear una <strong>ubicaci\u00f3n de confianza<\/strong> tendremos que hacer los siguientes pasos:<\/p>\n<p>En el bot\u00f3n de <strong>seguridad de Macros<\/strong> dentro de la ficha <strong>Desarrollador<\/strong>, cuadro de di\u00e1logo<strong> centro de confianza<\/strong>, opci\u00f3n ubicaciones de confianza. Pulsar sobre agregar nueva ubicaci\u00f3n\u2026, y en la ventana ubicaci\u00f3n de confianza de Microsoft Office, pulsar examinar. Tendremos que aceptar los cambios. Recuerda que las modificaciones de seguridad de macros realizadas en Excel no afectan a otras aplicaciones.<\/p>\n<p>Podemos observar la configuraci\u00f3n de seguridad de Macros en Excel 2013 desde el bot\u00f3n Seguridad de Macros del grupo C\u00f3digo de la ficha desarrollador. Existen diversas opciones para distintas configuraciones.<\/p>\n<p>Otra forma de ofrecer seguridad en hojas es mediante el empleo de certificados digitales. Mediante la firma del libro (precisa certificado). Para firmar el c\u00f3digo si estamos realizando desarrollos para empresa es necesario hacer clic en el bot\u00f3n de Visual Basic de la ficha desarrollador. Luego dirigirnos al men\u00fa herramientas, seleccionamos firma digital, y escogemos una firma, y luego el certificado.<\/p>\n<p>Volviendo al tema del desarrollo, es importante conocer las estructuras de control necesarias en VB para automatizar las tareas.<\/p>\n<p>En el enlace inferior aparecer\u00e1n todas las necesarias para realizar cosas interesantes y sus respectivos ejemplos. Contiene extensa documentaci\u00f3n al respecto.<\/p>\n<p><a href=\"http:\/\/www.excel-avanzado.com\/estructuras-control-vba\" target=\"_blank\">http:\/\/www.excel-avanzado.com\/estructuras-control-vba<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como muchos ya sab\u00e9is, Excel es un programa bastante potente y vers\u00e1til. Forma parte de la suite Office de Microsoft. En esta entrada voy a comentar algunos aspectos sobre la automatizaci\u00f3n de tareas empleado el lenguaje de programaci\u00f3n que lleva incorporado. Excel posee un editor para realizar tareas, adem\u00e1s de proporcionarnos muchas herramientas para administrar informaci\u00f3n, mediante las macros podremos crear aplicaciones a medida en el lenguaje de programaci\u00f3n Visual Basic. Tambi\u00e9n os comentar\u00e9\u00a0aspectos relacionados con la seguridad y centros de confianza. Para ello, voy a basarme en la hoja de c\u00e1lculo Excel versi\u00f3n 2013.<\/p>\n","protected":false},"author":1,"featured_media":7790,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[624,32,102],"tags":[593,626,671,629],"class_list":["post-7827","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-excel","category-formacion","category-microsoft","tag-automatizacion","tag-excel","tag-microsoft","tag-vba"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=7827"}],"version-history":[{"count":15,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7827\/revisions"}],"predecessor-version":[{"id":7850,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7827\/revisions\/7850"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/7790"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=7827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=7827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=7827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}