零基础学Excel VBA-WE015【一键生成KML文件】

一、简单演示

零基础学Excel VBA-WE015【一键生成KML文件】

零基础学Excel VBA-WE015【一键生成KML文件】

零基础学Excel VBA-WE015【一键生成KML文件】

二、关键对象/方法的分析

FileSystemObject

FileSystemObject,俗称 fso 对象,提供对计算机文件系统的访问。像我们这种非专业的人员,是没必要深究的,知道有这么个用法,是怎么用的就够了。

接着,我们用到了 fso 的三个方法:

  • fileExists,看名字就可以知道,是判断指定文件是否已经存在。
  • OpenTextFile,打开文件,注意参数 8 ,表示追加写入内容到文件的尾部。
  • CreateTextFile,创建一个文件,参数 True 表示覆盖同名文件。其实在我们已经通过 If 进行判断,这个 True 是没有意义的。

后面还有 writeline,这个其实是 TextStream 的方法,但我们可以不管它,知道这么个用法就够了。

三、执行思路及过程分析

【1】Savefile 函数是干嘛的

其实非常简单,就是创建或者打开一个文件,然后对这个文件进行追加写入。

【2】看看最简单的 KML 文件包括什么内容

我们打开 Google Earth,随便增加一个坐标点,然后,将位置另存为。OK,我们丢在桌面。

接着,我们来到桌面,找到我们刚才存的 KML 文件,右键,打开方式,选择其它方式,在其他程序这里,有个箭头,点开,选记事本。KML 文件,我们还是保留默认用 Google Earth 打开,所以,左下角 始终使用什么的,去掉,然后确定。

零基础学Excel VBA-WE015【一键生成KML文件】

【3】对着 KML 完成宏的录入

我们回到宏这里,看看 Getpoint() 这个子过程,这是我们创建坐标点的 KML 文件的宏。

前面是一些定义,来到 cont 这行,发现了没有?这里的内容,其实跟我们刚刚创建的 KML 文件的内容,其实是一样的。

就是说,每个 KML 文件,都是这样的架构,像一些 回车符 Chr(10) 没有关系,增加了,可以让我们生成的 KML 文件更加易读一些。

我们看一下 “未命名地标.kml”,它前面是,在宏里面对应的是 kname,前面是,我试过,都能用,目前找到的区别仅仅是文件夹的图标上。kml 所用的语言,应该是 JavaScript,没有研究,只能凑合随便试试。

接着又是一大段内容,有些什么 pin.png 的,其实是关于坐标点图标样式的设置的,就是那个大头针的样子、大小什么的。

有兴趣的,多弄几个不同的坐标,然后保存起来看看,对比一下。

我们来到“未命名地标”,这里开始对坐标点进行定义了。

我们宏这里,对应到一个 For 循环,名字取的是 Excel 表格第一列的内容。

我们发现,打开的 KML 文件,又比我们的宏多了一段,从到这一整段,我试过,删掉也一样打开。

关键是 coordinates 这里,经纬度,按这个格式填上就完事了。

【4】延伸的分类功能

我们宏这里,还有一个 If 的判断,是对 [J1] 进行匹配的,这个功能用于坐标点很多的时候,我们往往会把它们归类为不同的分组。

我们在WE008 用到的自动获取列表的方法,可以在这里应用上。

【5】线的 KML 文件生成

我们 Excel 表格这里,还有一个 生成线 的按钮, D,E,F 列,还有 3 列填坐标点的地方,这就是我们用来生成线的 KML 文件的。

其实跟生成点一样,也是先在地图上画条线,然后用 记事本 打开,对着写就可以了,具体怎么写我就不再累赘,会把代码发出来供大家直接学习。

四、本期代码文字版

代码将通过另一篇文章来分享给有需要的朋友,敬请关注。

零基础学Excel VBA-WE015【一键生成KML文件】


分享到:


相關文章: