{"id":4945,"date":"2013-06-04T08:17:36","date_gmt":"2013-06-04T08:17:36","guid":{"rendered":"https:\/\/www.viafirma.com\/blog-xnoccio\/?p=4945"},"modified":"2026-01-21T10:51:26","modified_gmt":"2026-01-21T10:51:26","slug":"geolocalizacion-con-coordenadas-en-excel-i","status":"publish","type":"post","link":"https:\/\/www.viafirma.com\/es\/geolocalizacion-con-coordenadas-en-excel-i\/","title":{"rendered":"Google Geocoding API en Excel (I)"},"content":{"rendered":"\r\n<p>Leyendo un post sobre c\u00f3mo la geolocalizaci\u00f3n puede utilizarse como evidencia electr\u00f3nica se me vino a la mente una tarea que hace poco tuve la suerte de iniciar, quiz\u00e1s poco relevante, pero bastante atractiva, ya que, aunque en una segunda fase fuese algo autom\u00e1tica, siempre se agradece hacer trabajos donde al final acabas con nuevas ideas y\/o conocimientos.<\/p>\r\n<p>El objetivo de la tarea era obtener a partir de las <strong>direcciones de un documento Excel <\/strong>(direcciones completas, nombres de pa\u00edses, comunidades, provincias o municipios&#8230;) sus coordenadas en el mapa. A esta transformaci\u00f3n se le conoce con el nombre de <strong>Geolocalizaci\u00f3n<\/strong> y a pesar de que en un principio pudiese pensar que ser\u00eda algo complicado o costoso de obtener, lo cierto es que es bastante r\u00e1pido y por los resultados efectivos.<\/p>\r\n<p>Todo esto gracias a la<strong> API de Google para Geolocalizaci\u00f3n<\/strong>, con la cual conseguimos que, realizando una consulta en la que<strong> enviamos una URL con los datos de la direcci\u00f3n que queremos, <\/strong>obtenemos un XML con toda la informaci\u00f3n de esa localizaci\u00f3n, entre ellas las que nosotros necesit\u00e1bamos: <strong>latitud y longitud<\/strong>.<\/p>\r\n<p>Si pulsamos sobre el siguiente enlace veremos que obtenemos la geolocalizaci\u00f3n de la oficina d\u00f3nde me encuentro \ud83d\ude42<\/p>\r\n<p><a href=\"http:\/\/maps.googleapis.com\/maps\/api\/geocode\/xml?address=Glorieta%20Fernando%20Qui%C3%B1ones&amp;sensor=false\" target=\"_blank\" rel=\"noopener\">http:\/\/maps.googleapis.com\/maps\/api\/geocode\/xml?address=Glorieta%20Fernando%20Qui%C3%B1ones&amp;sensor=false<\/a><\/p>\r\n<p>A continuaci\u00f3n, voy a explicar los pasos que debemos dar para obtener nuestro documento con todas las coordenadas necesarias.<\/p>\r\n<p>Para ello, primero indicar que usaremos la versi\u00f3n<strong> 2010 de Excel.<\/strong><\/p>\r\n<p>Necesitaremos <strong>tener visible la pesta\u00f1a \u00abProgramador\u00bb<\/strong> puesto que es aqu\u00ed donde vamos a iniciar el proceso de geolocalizaci\u00f3n.<\/p>\r\n<p>Para habilitar esta pesta\u00f1a, nos dirigimos al <strong>men\u00fa Archivo, Opciones<\/strong>.<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4957\" title=\"Archivo_Opciones\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/Archivo_Opciones.png\" alt=\"\" width=\"1084\" height=\"459\" \/><\/p>\r\n<p style=\"text-align: center;\">\u00a0<\/p>\r\n<p>Pulsamos sobre \u201c<strong>Personalizar cinta de opciones<\/strong>\u201d, en el men\u00fa desplegable bajo el ep\u00edgrafe del mismo nombre seleccionamos \u201c<strong>Fichas principales<\/strong>\u201d, seleccionamos el checkbox de \u201c<strong>Programador<\/strong>\u201d y pulsamos sobre el bot\u00f3n \u201c<strong>Aceptar<\/strong>\u201d.<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4958\" title=\"Opciones_Programador\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/Opciones_Programador.png\" alt=\"\" width=\"952\" height=\"684\" \/><\/p>\r\n<p>Una vez realizados estos pasos ya podemos ver como una pesta\u00f1a m\u00e1s la opci\u00f3n <strong>Programador<\/strong>.<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4964\" title=\"Tab_Programador\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/Tab_Programador.png\" alt=\"\" width=\"638\" height=\"25\" \/><\/p>\r\n<p>Necesitamos ahora <strong>ejecutar el comando VisualBasic de Excel<\/strong> para crear nuestra funci\u00f3n.<\/p>\r\n<p>Por tanto, pulsamos sobre el icono que nos da esta opci\u00f3n:<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4959\" title=\"Visual_Basic_Programador\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/Visual_Basic_Programador.png\" alt=\"\" width=\"1067\" height=\"237\" \/><\/p>\r\n<p>Se nos abre una nueva pantalla.<\/p>\r\n<p>Seleccionamos <strong>\u201cInsertar<\/strong>\u201d y posteriormente <strong>\u201cM\u00f3dulo<\/strong>\u201d.<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4960\" title=\"VB_Module\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/VB_Module.png\" alt=\"\" width=\"734\" height=\"770\" \/><\/p>\r\n<p>Y <strong>copiamos el siguiente c\u00f3digo<\/strong> en el m\u00f3dulo que se haya creado.<\/p>\r\n<p>En internet existen muchas variantes de c\u00f3digo para obtener lo que queremos. Yo us\u00e9 este y puedo decir que me funcion\u00f3 bastante bien.<\/p>\r\n<pre><code>Function GoogleGeocode(address As String) As String\r\n  Dim strAddress As String\r\n  Dim strQuery As String\r\n  Dim strLatitude As String\r\n  Dim strLongitude As String\r\n\r\n  strAddress = URLEncode(address)\r\n\r\n  'Assemble the query string\r\n  strQuery = \"http:\/\/maps.googleapis.com\/maps\/api\/geocode\/xml?\"\r\n  strQuery = strQuery &amp;amp; \"address=\" &amp;amp; strAddress\r\n  strQuery = strQuery &amp;amp; \"&amp;amp;sensor=false\"\r\n\r\n  'define XML and HTTP components\r\n  Dim googleResult As New MSXML2.DOMDocument\r\n  Dim googleService As New MSXML2.XMLHTTP\r\n  Dim oNodes As MSXML2.IXMLDOMNodeList\r\n  Dim oNode As MSXML2.IXMLDOMNode\r\n\r\n  'create HTTP request to query URL - make sure to have\r\n  'that last \"False\" there for synchronous operation\r\n\r\n  googleService.Open \"GET\", strQuery, False\r\n  googleService.send\r\n  googleResult.LoadXML (googleService.responseText)\r\n\r\n  Set oNodes = googleResult.getElementsByTagName(\"geometry\")\r\n\r\n  If oNodes.Length = 1 Then\r\n    For Each oNode In oNodes\r\n      strLatitude = oNode.ChildNodes(0).ChildNodes(0).Text\r\n      strLongitude = oNode.ChildNodes(0).ChildNodes(1).Text\r\n      GoogleGeocode = strLatitude &amp;amp; \",\" &amp;amp; strLongitude\r\n    Next oNode\r\n  Else\r\n    GoogleGeocode = \"Not Found (try again, you may have done too many too fast)\"\r\n  End If\r\nEnd Function\r\n\r\nPublic Function URLEncode(StringVal As String, Optional SpaceAsPlus As Boolean = False) As String\r\n  Dim StringLen As Long: StringLen = Len(StringVal)\r\n\r\n  If StringLen&amp;gt;0 Then\r\n    ReDim result(StringLen) As String\r\n    Dim i As Long, CharCode As Integer\r\n    Dim Char As String, Space As String\r\n\r\n    If SpaceAsPlus Then Space = \"+\" Else Space = \"%20\"\r\n\r\n    For i = 1 To StringLen\r\n      Char = Mid$(StringVal, i, 1)\r\n      CharCode = Asc(Char)\r\n\r\n      Select Case CharCode\r\n      Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126\r\n        result(i) = Char\r\n      Case 32\r\n        result(i) = Space\r\n      Case 0 To 15\r\n        result(i) = \"%0\" &amp;amp; Hex(CharCode)\r\n      Case Else\r\n        result(i) = \"%\" &amp;amp; Hex(CharCode)\r\n      End Select\r\n    Next i\r\n    URLEncode = Join(result, \"\")\r\n  End If\r\nEnd Function\r\n\r\n&lt;img class=\"alignnone size-full wp-image-4963\" title=\"Module_1_Code\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/Module_1_Code.png\" alt=\"\" width=\"1346\" height=\"1033\" \/&gt;<\/code><\/pre>\r\n<p style=\"text-align: justify;\">El c\u00f3digo hace uso de la biblioteca de XML de Microsoft por lo que <strong>tendremos que agregar una referencia a la misma<\/strong>. Para ello hacemos <strong>clic en la opci\u00f3n del men\u00fa \u00abHerramientas\u00bb y seleccionamos \u00abReferencias\u00bb<\/strong>.<\/p>\r\n<p lang=\"es-ES\">\u00a0<\/p>\r\n<p lang=\"es-ES\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4961     alignnone\" title=\"Herramientas_Referencias\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/Herramientas_Referencias.png\" alt=\"\" width=\"723\" height=\"226\" \/><\/p>\r\n<p lang=\"es-ES\">\u00a0<\/p>\r\n<p lang=\"es-ES\">Una lista de casillas de verificaci\u00f3n aparecer\u00e1n. <strong>Necesitamos encontrar \u00abMicrosoft XML v6.0\u00bb<\/strong> en la lista y comprobar que funciona. Pulsamos \u201c<strong>Aceptar<\/strong>\u201d.<\/p>\r\n<p lang=\"es-ES\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4962\" title=\"referencias_MXML_6\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2013\/05\/referencias_MXML_6.png\" alt=\"\" width=\"465\" height=\"374\" \/><\/p>\r\n<p lang=\"es-ES\">\u00a0<\/p>\r\n<p lang=\"es-ES\">Guardamos el documento como \u00ab<strong>Libro de excel habilitado para macros<\/strong>\u00ab.<\/p>\r\n<p lang=\"es-ES\">Si hemos realizado todos los pasos correctamente deberemos ser capaces de usar las nuevas funciones creadas tal y como usar\u00edamos las funciones cargadas por defecto de Excel.<\/p>\r\n<p lang=\"es-ES\">Es decir, coloc\u00e1ndonos en una celda cualquiera y tecleando lo siguiente:<\/p>\r\n<p lang=\"es-ES\"><strong>=GoogleGeocode(A646)<\/strong><\/p>\r\n<p lang=\"es-ES\">Sirva el c\u00f3digo de arriba como ejemplo.<\/p>\r\n<p>Por su puesto, en este proceso de geolocalizaci\u00f3n me encontr\u00e9 con algunos problemas, unos perfectamente evitables y otros con los que no podremos hacer absolutamente nada, al menos que me conste. Pero eso ser\u00e1 cosa de otro d\u00eda, ya que el post me est\u00e1 quedando un poco largo ya :).<\/p>\r\n<p><span style=\"font-weight: 400;\"><div class=\"vf_related_posts_wrapper\"><h2 class=\"vf_related_posts_title\">Informaci\u00f3n relacionada<\/h2><div class=\"vf_related_posts\"><article class=\"vc_gitem-post-data-source-post\"><a href=\"https:\/\/www.viafirma.com\/es\/esignature-google\/\"><div class=\"vc_gitem-post-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"475\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2023\/09\/img_blog_firmadigital_google-768x475.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"eSignature Google\" srcset=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2023\/09\/img_blog_firmadigital_google-768x475.webp 768w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2023\/09\/img_blog_firmadigital_google-300x186.webp 300w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2023\/09\/img_blog_firmadigital_google-1024x634.webp 1024w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2023\/09\/img_blog_firmadigital_google-jpg.webp 1228w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/div><\/a><div class=\"vc_gitem-post-data\"><h3 class=\"vc_gitem-post-data-source-post_title\"><a href=\"https:\/\/www.viafirma.com\/es\/esignature-google\/\">eSignature de Google<\/a><\/h3><p>Todo sobre la firma digital de Google y su funcionamiento<\/p><\/div><\/article><article class=\"vc_gitem-post-data-source-post\"><a href=\"https:\/\/www.viafirma.com\/es\/borrar-cache-en-cualquier-navegador-web\/\"><div class=\"vc_gitem-post-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"475\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2020\/10\/blog_navegador-768x475.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"Borrar cach\u00e9 en cualquier navegador web\" srcset=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2020\/10\/blog_navegador-768x475.webp 768w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2020\/10\/blog_navegador-300x186.webp 300w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2020\/10\/blog_navegador-1024x634.webp 1024w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2020\/10\/blog_navegador.webp 1228w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/div><\/a><div class=\"vc_gitem-post-data\"><h3 class=\"vc_gitem-post-data-source-post_title\"><a href=\"https:\/\/www.viafirma.com\/es\/borrar-cache-en-cualquier-navegador-web\/\">Borrar cach\u00e9 en cualquier navegador web<\/a><\/h3><p>Para borrar la cach\u00e9 de Google Chrome, sigue estos pasos:<\/p><\/div><\/article><article class=\"vc_gitem-post-data-source-post\"><a href=\"https:\/\/www.viafirma.com\/es\/que-es-firma-electronica-avanzada\/\"><div class=\"vc_gitem-post-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"512\" src=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2021\/05\/Que-es-la-firma-electronica-avanzada-768x512.webp\" class=\"attachment-medium_large size-medium_large wp-post-image\" alt=\"\u00bfQu\u00e9 es la firma electr\u00f3nica avanzada?\" srcset=\"https:\/\/www.viafirma.com\/wp-content\/uploads\/2021\/05\/Que-es-la-firma-electronica-avanzada-768x512.webp 768w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2021\/05\/Que-es-la-firma-electronica-avanzada-300x200.webp 300w, https:\/\/www.viafirma.com\/wp-content\/uploads\/2021\/05\/Que-es-la-firma-electronica-avanzada.webp 1024w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/div><\/a><div class=\"vc_gitem-post-data\"><h3 class=\"vc_gitem-post-data-source-post_title\"><a href=\"https:\/\/www.viafirma.com\/es\/que-es-firma-electronica-avanzada\/\">\u00bfQu\u00e9 es la firma electr\u00f3nica avanzada?<\/a><\/h3><p>\u00bfTe preguntas qu\u00e9 es la firma electr\u00f3nica avanzada? En este<\/p><\/div><\/article><\/div><\/div><\/span><\/p>\r\n<p>&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"Aprende a usar coordenadas de geolocalizaci\u00f3n en Excel...","protected":false},"author":1,"featured_media":35628,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[40],"class_list":["post-4945","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-miscelanea"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts\/4945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/comments?post=4945"}],"version-history":[{"count":2,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts\/4945\/revisions"}],"predecessor-version":[{"id":97427,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/posts\/4945\/revisions\/97427"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/media\/35628"}],"wp:attachment":[{"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/media?parent=4945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.viafirma.com\/es\/wp-json\/wp\/v2\/categories?post=4945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}