the application of excel to geographic...

20
2009 數位典藏地理資訊學術研討會 Digital Archives GISci Conference 1 數位典藏地理資訊 數位典藏地理資訊 數位典藏地理資訊 數位典藏地理資訊之全民數位學習 全民數位學習 全民數位學習 全民數位學習 Excel 的空間思維 的空間思維 的空間思維 的空間思維 The Application of Excel to Geographic Information 林志重 林志重 林志重 林志重 * 林彥伶 林彥伶 林彥伶 林彥伶 ** Lin, Chih-Chung Lin, Yen-Ling 摘要 摘要 摘要 摘要 提升全民數位學習素養為「數位典藏與數位學習國家型科技計畫」目標之一,且研 發地理資訊教學應用教材,也列為「地理資訊應用推廣」子計畫工作項目之一。有鑑於 地圖、地理資訊和程式設計已普及到國中小及高級中學之「地理教育」和「資訊教育」 等相關課程,Excel軟體在教育、辦公及家用的電腦均非常普及,其數值運算及圖表展 示之功能強大,最新的2007版本工作表儲存格欄列及顏色數量均大幅擴增,該儲存格型 態類似地理資訊的網格式資料結構。 本文將Excel融入空間思維,透過Excel VBA程式設計和巨集功能,利用實際的分區 屬性和數值地形模型等地理資訊,分析展現分區面量圖、立體面量圖、地形分層設色圖、 剖面圖、3D透視跡線圖,與計算地形面積。除可為空間分析工具多一種選擇之外,並期 以提升全民數位學習興趣及推廣數位典藏地理資訊的應用。 關鍵字 關鍵字 關鍵字 關鍵字:資訊教育 資訊教育 資訊教育 資訊教育、地理教育 地理教育 地理教育 地理教育、數值地形模型 數值地形模型 數值地形模型 數值地形模型、分層 分層 分層 分層設色圖 設色圖 設色圖 設色圖、EXCEL VBA 程式 程式 程式 程式 * 建國科技大通識教育中心兼任助理教授,國立彰化師範大秘書簡任門委員。 Assistant Professor of General Education Center, Chienkuo Technology University. Senior Executive Officer, Secretariat, National Changhua University of Education. ** 國立政治大資訊管理系生。 Student, Department of Management of Information Systems, National Chengchi University.

Upload: others

Post on 13-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    1

    數位典藏地理資訊數位典藏地理資訊數位典藏地理資訊數位典藏地理資訊之之之之全民數位學習全民數位學習全民數位學習全民數位學習

    ----Excel的空間思維的空間思維的空間思維的空間思維

    The Application of Excel to Geographic Information

    林志重林志重林志重林志重* 林彥伶林彥伶林彥伶林彥伶**

    Lin, Chih-Chung Lin, Yen-Ling

    摘要摘要摘要摘要

    提升全民數位學習素養為「數位典藏與數位學習國家型科技計畫」目標之一,且研

    發地理資訊教學應用教材,也列為「地理資訊應用推廣」子計畫工作項目之一。有鑑於

    地圖、地理資訊和程式設計已普及到國中小及高級中學之「地理教育」和「資訊教育」

    等相關課程,Excel軟體在教育、辦公及家用的電腦均非常普及,其數值運算及圖表展

    示之功能強大,最新的2007版本工作表儲存格欄列及顏色數量均大幅擴增,該儲存格型

    態類似地理資訊的網格式資料結構。

    本文將Excel融入空間思維,透過Excel VBA程式設計和巨集功能,利用實際的分區

    屬性和數值地形模型等地理資訊,分析展現分區面量圖、立體面量圖、地形分層設色圖、

    剖面圖、3D透視跡線圖,與計算地形面積。除可為空間分析工具多一種選擇之外,並期

    以提升全民數位學習興趣及推廣數位典藏地理資訊的應用。

    關鍵字關鍵字關鍵字關鍵字::::資訊教育資訊教育資訊教育資訊教育、、、、地理教育地理教育地理教育地理教育、、、、數值地形模型數值地形模型數值地形模型數值地形模型、、、、分層分層分層分層設色圖設色圖設色圖設色圖、、、、EXCEL VBA程式程式程式程式

    * 建國科技大學通識教育中心兼任助理教授,國立彰化師範大學秘書室簡任專門委員。

    Assistant Professor of General Education Center, Chienkuo Technology University.

    Senior Executive Officer, Secretariat, National Changhua University of Education.

    ** 國立政治大學資訊管理學系學生。 Student, Department of Management of Information Systems, National Chengchi University.

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    2

    Abstract

    Maps, geographic information system, and program designing have already popularized

    to courses related to geography education and information education. Also, Excel software is

    generalized in education, office, and home-used computer. Its function of numerical operation

    and diagram presentation is very powerful. In the newest 2007 version, the worksheets’

    columns and rows and the number of colors increase a lot, make the cells’ type similar to the

    raster data type of geographic information.

    Through Excel VBA programming and macro function, this article use some geographic

    information such as real district property and numerical topography model to analyzes and

    presents 3D theme map, Layer tinting, profile, and perspective traces as well as calculates

    topography square measure. Besides providing another choice for space analysis tool, this

    method expects to raise general e-learning interest and promote the application of geographic

    information.

    Keywords: Information education, Geography education, Digital terrain model (DTM),

    Layer tinting, EXCEL VBA

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    3

    一一一一、、、、前言前言前言前言

    「提升全民數位學習素養」為「數位典藏與數位學習國家型科技計畫」目標之一,

    並且「研發地理資訊教學應用教材」也列為「數位典藏與學習之學術與社會應用推廣」

    分項計畫下「地理資訊應用推廣」子計畫的工作項目之一。賴進貴(2008)提到「當數

    位典藏素材出現在中小學的教室和課本中…,數位典藏與數位學習的理想與目標也就圓

    滿達成」,有鑑於地圖、地理資訊和程式設計已普及到國中小及高級中學相關課程,因

    此,本文試圖運用普及的 Excel 軟體,透過 VBA 程式的設計來推廣應用地理資訊,也

    期望能以地理資訊來普及全民的資訊學習興趣。

    國民中小學九年一貫課程綱要將「資訊教育」列為七個重大議題之一,強調資訊融

    入各學習領域中。在國中階段以學習程式語言基本概念、圖表製作及資料庫概念等資料

    的處理與分析核心能力,「儘量設計資訊科技與各學習領域整合之教學或主題式資訊科

    技融入教學,讓學生將所學之資訊能力充分應用於學習活動中,並介紹幾種常用的程式

    語言及運用程式設計工具,進行簡單之程式設計,而且讓學生熟悉試算表軟體的功能及

    基本操作,瞭解資料的處理程序,並可對資料進行計算與分析」。在融入「社會」學習

    領域方面,則「利用地圖、數據和其它資訊,來描述和解釋地表事象及其空間組織」。

    在數學學習領域的細目詮釋提到:「能引導學生使用電腦軟體,如具電子試算表或基本

    計算功能的程式語言,處理較大筆資料的計算,也可以附加的繪圖功能來製作統計圖形」

    (教育部國民教育司,2008)。由此可見,試算表之應用、程式語言及設計已經普及到

    國中小教育階段。

    在普通高級中學地理課程綱要的高一「通論地理」,列有地理資訊蒐集及處理、地

    理資訊系統的主題,其具體目標在於能運用地理資訊系統查詢,或展示生活週遭地理議

    題,並配合以 ArcView、Super GIS 或 MapInfo 等相關地理資訊軟體來實施課程(教育

    部中等教育司,2008)。雖然在地理教學上,可以利用 GIS 軟體查詢展示空間資料與屬

    性資料的關係,繪製主題地圖,並呈現疊圖、環域等空間分析功能的地理現象(張春蘭、

    莊昀,2009),然而,運用前述地理資訊軟體的學習環境,受限於技術和經費,連大多

    數的人文社會領域科系都難以有此學習環境(郭俊麟,2008),更遑論全民的普及學習。

    依據資策會 FIND(2009)調查 2008 年台灣家戶電腦普及率為 82.9%,家戶平均擁

    有電腦數量為 2.0 台。此外,在全球統計調查機構(StatCounter Global Stats,2009)調

    查顯示,台灣地區 2009 上半年電腦 Windows 作業系統(含 XP、Vista、2000)占有率

    為 98.6%,因此,Windows 其核心軟體-Microsoft Office 已深入到台灣大多數的家戶、

    校園和辦公室,由此可見,隨附於 Microsoft Office 的 Excel 軟體之全民普及性可見一斑。

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    4

    從教學功能來看,Excel 軟體大多應用於數學教學,以促進數學理解的功能,例如

    應用於直角座標與函數的圖形及統計圖表方面的輔助教材,以及機率與統計教學,也可

    以設計互動式代數例子,幫助學生學習基礎代數的函數及其意義(林威昇,1999;陳義

    汶,2004;阮宏展,2006)。在地理學科的應用,則主要運用內建的「函數功能」與「圖

    表類型」製作統計圖表、人口金字塔或計量分析(譚柏雄,2002;李金國,2002),Lin

    和 Lin(2009)則以數值地形模型透過 VBA 程式製作地形分層設色圖。

    本文試圖結合「資訊教育」與「地理教育」的內涵,透過 Excel 軟體的 VBA 程式

    設計,詳細說明程式的編寫流程和語法,展現實際空間屬性的地理資訊,期能為全民地

    理資訊的教育與學習略盡推廣之力,並作為地理資訊軟體運用的多一項選擇。

    二二二二、、、、EXCEL 的工作表的工作表的工作表的工作表及其及其及其及其 VBA特性特性特性特性

    Excel 也稱為試算表軟體,具有強大的計算功能和圖表工具,可用以建立表格、計

    算、分析資料,並以精美的版面配置列印表格、建立圖表,豐富地展現資料視覺化,以

    利於使用者進行決策。因為大多數電腦上已有安裝,而且坊間亦不少相關書籍介紹,所

    以廣受一般人的使用。

    該工作表是以橫列(row)和直欄(column)所構成的儲存格,這如同 GIS 的網格

    式(grid)空間資料結構,最新的 2007 版本儲存格增加到 1,048,576 列及 16,384 欄,色

    彩更為豐富,達到 1,677 萬色可供選擇,儲存格的列高和欄寬最小為 1 像素(Pixel),

    於 100%列印時為 1/40 公分。此外,為了增進 Excel 的效能,記憶體管理已經從 Excel

    2003 中的 1 GB 記憶體增加到 Excel 2007 中的 2 GB(Microsoft Office Online,2007)。

    Excel 軟體並支援 VBA(Visual Basic for Applications,就是內含在應用軟體內的免

    費專用 VB1 開發工具),使得 Excel 形成獨立的編程環境,以利使用者應用一連串指令

    集合而成的巨集(marco)來控制其他應用程式,或自動執行重複性的程序步驟,擴展

    Windows 的應用程式功能,而且巨集錄製器可以將操作步驟翻譯成 VBA 語言供初學者

    修改,是非常方便的學習輔助工具。有關 Excel VBA 的基本用法於坊間的書籍或該軟體

    的幫助檔都有介紹,本文不再贅述,僅著重於地理資訊的處理步驟及語法說明,為使語

    法更易懂,並利於閱讀、學習,所以本文將程式中的變數大多以中文命名2。

    1 Visual Basic,BASIC 是程式語言的一種,英文名稱的全名是 "Beginner's All-Purpose Symbolic

    Instruction Code",取其首字字母簡稱 "BASIC",就名稱的含意來看,是「適用於初學者的多

    功能符號指令碼」。 2 將本文所設計之指令寫到程式碼視窗中,Sub Macro 和 End Sub 之間,一樣可以順利執行。

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    5

    三三三三、、、、面量圖面量圖面量圖面量圖的製作的製作的製作的製作

    本文利用 Excel 繪製面量圖,步驟如下:

    (一)先在工作表以「插入\圖案\手繪多邊形」方式,來產生各分區圖,這也是類

    似一般 GIS 軟體數化「面圖徵」的工作。

    (二)各分區圖加以命名。

    (三)在工作表選擇欄位輸入屬性資料。

    (四)在屬性資料下方格依指定方式輸入圖例,如圖 1。

    (五)最後利用巨集將各分區圖依名稱及其屬性填滿對應的顏色。

    其程式語法及說明如下:

    ' 取得繪製主題之欄值

    格欄值 = ActiveCell.Column

    ' 將運算暫存區清空,以利填入圖例的類別(組下限)值和顏色值

    Range(Cells(61, 2), Cells(80, 20)).Delete

    ' 將圖例區(該欄之 41~60 列)的類別(組下限)值和顏色值,分成兩欄填到運算暫存區(該

    欄之 61~80 列)

    For 圖例 = 41 To 60 Step 2

    ' 左欄為類別(組下限)值

    Cells(圖例 + 20, 格欄值) = Cells(圖例 + 1, 格欄值)

    ' 右欄為顏色值

    Cells(圖例 + 20, 格欄值 + 1) = ActiveSheet.Cells(圖例, 格欄值).Interior.Color

    Next 圖例

    ' 選取類別(組下限)值和顏色值兩欄,依類別(組下限)值由小到大排列

    Range(Cells(61, 格欄值), Cells(80, 格欄值 + 1)).Sort key1:=Cells(61, 格欄值),

    order1:=xlAscending, Header:=xlNo

    ' 取得圖案總數量

    圖案數 = ActiveSheet.Shapes.Count

    ' 將全部圖案依圖案名稱填滿對應的顏色

    For 圖案 = 1 To 圖案數

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    6

    ' 取得圖案名稱

    圖案名稱 = Cells(圖案 + 1, 2)

    ' 利用內建函數 VLookup,取得類別(組下限)值之對應顏色值

    圖案顏色 = Application.WorksheetFunction.VLookup(Cells(圖案 + 1, 格欄值),

    Range(Cells(61, 格欄值), Cells(80, 格欄值 + 1)), 2)

    ' 在該圖案名稱的圖案填滿對應之顏色

    ActiveSheet.Shapes(圖案名稱).Fill.ForeColor.RGB = 圖案顏色

    Next 圖案

    以台北市各行政區普查 18 歲大學生常住人口數的屬性資料為例,執行上述巨集程

    式後,可以產生如圖 2 之面量圖。

    圖圖圖圖 1 台北市各行政區屬性資料圖例設定圖台北市各行政區屬性資料圖例設定圖台北市各行政區屬性資料圖例設定圖台北市各行政區屬性資料圖例設定圖

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    7

    屬性資料來源:林志重(2008),168頁。

    圖圖圖圖 2 台北市各行政區普查台北市各行政區普查台北市各行政區普查台北市各行政區普查 18歲大學生常住人口數的屬性資料執行結果圖歲大學生常住人口數的屬性資料執行結果圖歲大學生常住人口數的屬性資料執行結果圖歲大學生常住人口數的屬性資料執行結果圖

    經過上述繪製的面量圖,再利用圖案的群組、格式化圖案深度、立體旋轉功能的操

    作,可以得到立體化的效果。例如以 2009 年 8 月 7~9 日莫拉克颱風在各縣市 3 日最高

    雨量(mm)的屬性資料,設定圖例(如圖 3 的 C 欄),執行下列程式後,可產生如圖

    4 之立體化面量圖,其立體化效果的程式語法及說明如下:

    圖案數 = ActiveSheet.Shapes.Count

    ActiveSheet.Shapes.SelectAll ' 圖形全選

    Selection.ShapeRange.Group ' 將選擇的圖案群組成 1 個圖案

    ActiveSheet.Shapes(1).Flip msoFlipHorizontal ' 水平翻轉

    ActiveSheet.Shapes.SelectAll

    Selection.ShapeRange.Ungroup ' 將選擇的圖案取消群組

    For 圖案 = 1 To 圖案數 ' 依據雨量的大小,繪製各圖案的適合高度

    圖案名稱 = Cells(圖案 + 1, 2)

    ActiveSheet.Shapes(圖案名稱).ThreeD.Depth = Cells(圖案 + 1, 3) * Cells(35, 16)

    Next 圖案

    ActiveSheet.Shapes.SelectAll

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    8

    Selection.ShapeRange.Group

    ' 從颱風登陸的角度(宜蘭外海)鳥瞰台灣

    With ActiveSheet.Shapes(1).ThreeD

    .RotationX = Cells(36, 16) ' 旋轉的角度

    .RotationY = Cells(37, 16)

    .RotationZ = Cells(38, 16)

    .PresetLightingDirection = msoLightingBottom

    End With

    圖圖圖圖 3 台灣各縣市屬性資料圖例設定圖台灣各縣市屬性資料圖例設定圖台灣各縣市屬性資料圖例設定圖台灣各縣市屬性資料圖例設定圖

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    9

    屬性資料來源:交通部中央氣象局 \ 天氣觀測 \ 雨量觀測 \ 各縣市最大值 \ 前 2日 0時至最

    近整時各縣市最大值雨量站資料。

    圖圖圖圖 4 莫拉克莫拉克莫拉克莫拉克颱風在各縣市颱風在各縣市颱風在各縣市颱風在各縣市 3日日日日最高最高最高最高雨量雨量雨量雨量((((mm))))的屬性資料執行結果圖的屬性資料執行結果圖的屬性資料執行結果圖的屬性資料執行結果圖

    四四四四、、、、地形圖的製作地形圖的製作地形圖的製作地形圖的製作

    地形圖的表現方式主要有等高線圖、分層設色圖、暈渲圖、剖面圖和透視跡線圖

    (perspective traces,即漁網圖 fishnets)等(賀忠儒,2002),本文設計撰寫 VBA 程

    式處理數值地形模型資料,來繪製分層設色圖、剖面圖和透視跡線圖等三種地形圖。

    數值地形模型(digital terrain model, DTM)是以數值化XYZ座標格式來描述地表

    三度空間地形起伏變化情形。「台灣地區數值地形模型資料」,是以每 40×40 公尺相等

    間距的規則網格取樣,此 DTM 之平面坐標系統採用二度分帶橫麥卡脫投影,平面坐標

    單位為公尺,高程單位亦為公尺,原始資料以 ASCII 碼逐點儲存三維坐標,該循序模式

    檔案樣本如下:

    150120. 2801840. -19.900

    150160. 2801840. -19.900

    350920. 2419680. -24.900

    350960. 2419680. -24.900

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    10

    總計 X 軸為 5,022 點(即 5,022 直欄),Y 軸為 9,555 點(即 9,555 橫列),全部計

    47,985,210 個座標點(即 47,985,210 儲存格),檔案大小為 1,265MB。

    GIS 空間資料結構有兩大類:網格式(raster)與向量式(vector)。這兩種結構各

    有優劣,以網格式而言,空間單元資料劃分成規則的網格來表達,網格數越多越小,所

    呈現的影像就越清晰,資料越精緻,相對的資料量也就越大。因為網格式的資料結構簡

    單明瞭,易於學習,所以也大多用於表達高程、土壤、土地利用等資料, Excel 的儲

    存格形式就如同網格式空間資料結構。

    ((((一一一一))))繪製分層設色圖繪製分層設色圖繪製分層設色圖繪製分層設色圖

    雖然 Lin 和 Lin(2009)以「台灣地區數值地形模型資料」利用 VBA 程式製作地形

    分層設色圖,但是,其數值地形模型資料係逐筆讀取同時繪製顏色,因此執行效率不高

    缺乏彈性,而且資料庫的連線過久。本文加以改良整體的流程,利用二維陣列的方式全

    部讀完檔案,關閉資料庫後,再依陣列位置來繪製顏色,不但可增加程式的執行速度,

    而且可因應不同解析度的需求來繪製地形分層設色圖,其處理流程如圖 5:

    圖圖圖圖 5 以以以以 DTM繪製分層設色圖之流程圖繪製分層設色圖之流程圖繪製分層設色圖之流程圖繪製分層設色圖之流程圖

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    11

    在分層顏色的圖例方面,Lin 和 Lin(2009)以顏色索引代碼(colorindex)來填顏

    色,因顏色索引代碼只有 56 種顏色,所以分層顏色較難以表現漸層效果,本文利用顏

    色值來填顏色,該顏色值有 1,677 萬色,所以比較容易分層。分層顏色及組距參考內政

    部(2009)台灣全圖之分層設色圖表,海平面以上的高度分 12 層,海平面以下的高度

    分 4 層,各分層組距、顏色及顏色值如表 1。

    表表表表 1 採用採用採用採用 16層之組距層之組距層之組距層之組距、、、、顏色及顏色值一覽表顏色及顏色值一覽表顏色及顏色值一覽表顏色及顏色值一覽表

    分層組距(公尺) 顏色 顏色值

    3000 以上 5539580

    2000~3000 5873917

    1500~2000 6207741

    1000~1500 8635389

    700~1000 8048637

    500~700 9955326

    300~500 12058623

    200~300 7271911

    100~200 7334607

    60~100 6021047

    20~60 6149792

    0~20 4901510

    -10~0 16777164

    -20~ -10 14922893

    -50~ -20 13995603

    -50 以下 12611584

    利用 Excel 繪製地形分層設色圖,為展現精緻的網格,首先將工作表儲存格的寬及

    高設定為最小的 1 像素;並且為能夠展現整體台灣地形圖在整個電腦螢幕的上,本文採

    用 360 公尺解析度的 DTM,其 x 軸方向為 558 點,y 軸方向為 1,062 點,總計 592,596 高

    度值,經執行下列的程式碼,可得到如圖 6 的分層設色圖。

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    12

    Dim 高度(10000, 10000) As Integer

    Open Application.GetOpenFilename() For Input As #1

    原解析度 = Cells(26, 2) ' 讀取原 DTM 檔案之解析度 40

    While Not EOF(1) ' 檔案逐筆讀入 x,y,z 座標值,直到檔案結束 end of file

    Input #1, x 座標, y 座標, z 座標

    x 之欄 = 1 + (x 座標 - 150120) / 原解析度 ' 將座標轉換為儲存格的欄列

    y 之列 = 1 + (2801840 - y 座標) / 原解析度

    高度(x 之欄, y 之列) = z 座標

    Wend

    Close #1 ' 關閉檔案。

    繪解析度 = Cells(27, 2) ' 讀取所需繪製分層設色圖之解析度 360

    跳值 = 繪解析度 / 原解析度

    Sheets("繪圖區").Select: Cells(10000, 1).Select ' 隱藏繪製畫面,以增進執行速度

    列值 = 0

    For 選列 = 1 To y 之列 Step 跳值

    列值 = 列值 + 1: 欄值 = 0

    For 選欄 = 1 To x 之欄 Step 跳值

    欄值 = 欄值 + 1

    Cells(列值, 欄值).Interior.Color = Application.WorksheetFunction.VLookup(高度(選

    欄, 選列), Sheets("設定").Range("m1:o20"), 3)

    Next 選欄

    Next 選列

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    13

    圖圖圖圖 6 以以以以 excel繪製台灣繪製台灣繪製台灣繪製台灣 DTM之之之之 360公尺解析度分層設色圖公尺解析度分層設色圖公尺解析度分層設色圖公尺解析度分層設色圖

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    14

    另外一種「台灣地區數值地形模型資料」是以五千分之一基本圖的圖幅為名稱,每

    圖幅一個資料檔(如 94171005dem.grd,… 97234096dem.grd),總計 5,390 個檔,解析度

    為 100 公尺,每一網格點是一組 E、N、H 三個坐標值,組成右旋坐標系的三個 X、Y、

    Z 坐標(如 250000 2670000 123.0,坐標之間以一空格隔開)依序由圖幅西南角開始由

    西向東排完一列後再向北由第二列排起,最後一個點為圖幅之東北角。

    執行程式之前,參考水土保持法、國土復育條例(草案)、台灣主要生態帶所規範

    之高度,製作分層圖例,如圖 7,再將各個圖幅的 DTM 檔的名稱列在同一欄,並把各

    個 DTM 檔置放在與程式相同的目錄。程式處理流程上,主要以每個圖幅利用二維陣列

    的方式,依座標對應之欄列位址填滿指定的顏色,經過執行 5,390 個迴圈完成全部圖幅

    後,就可呈現 100 公尺解析度的台灣地形分層設色圖,如圖 8。

    圖圖圖圖 7 參考實際規範高度製作之分層圖例參考實際規範高度製作之分層圖例參考實際規範高度製作之分層圖例參考實際規範高度製作之分層圖例

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    15

    圖圖圖圖 8 以以以以 5,390幅幅幅幅台灣台灣台灣台灣 DTM繪製繪製繪製繪製 100公尺解析度的分層設色圖公尺解析度的分層設色圖公尺解析度的分層設色圖公尺解析度的分層設色圖((((富貴角富貴角富貴角富貴角----關山部分關山部分關山部分關山部分))))

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    16

    繪製上述圖形的 VBA 程式語法如下:

    ' 將運算暫存區清空,以利填入圖例的類別(組下限)值和顏色值

    Range(Cells(41, 1), Cells(80, 10)).Delete

    ' 將圖例區(2~38 列)的類別(組下限)值和顏色值,分成兩欄填到運算暫存區(41~)

    For 圖例 = 2 To 38 Step 2

    ' 左欄為類別(組下限)值

    Cells(圖例 + 39, 1) = Cells(圖例 + 1, 1)

    ' 右欄為顏色值

    Cells(圖例 + 39, 2) = ActiveSheet.Cells(圖例, 1).Interior.Color

    Cells(圖例, 2) = Cells(圖例 + 39, 2)

    Next 圖例

    ' 選取類別(組下限)值和顏色值兩欄,依類別(組下限)值由小到大排列

    Range(Cells(41, 1), Cells(80, 2)).Sort key1:=Cells(41, 1), order1:=xlAscending,

    Header:=xlNo

    Cells(8, 8) = Now() ' 顯示目前時間,以利計算繪製時間

    Sheets("分層設色圖").Select: Cells(6000, 1).Select

    Dim z As Single

    For pic = 1 To 5390 ' 執行 5,390 個迴圈,以完成全部圖幅

    grdfile = Left(Sheets("5390 幅圖").Cells(pic + 2, 2), 15)

    Open ThisWorkbook.Path & "\" & grdfile For Input As #1

    Do Until EOF(1) ' 處理一張圖幅的所有點座標,直到 end of file

    Input #1, x, y, z

    xa = (x - 150000) / 100 ' 轉換並調整座標到適當的儲存格

    ya = (y - 2400000) / 100

    Cells(4200 - ya, xa).Interior.Color = Application.WorksheetFunction.VLookup(z,

    Sheets("設定").Range("A41:B60"), 2)

    Loop

    Close #1

    Next pic

    Cells(9, 8) = Now() ' 顯示目前時間

    除了前述利用儲存格填入不同顏色來展現空間地形之外,另外也可以運用 Excel 的

    統計圖功能(例如直條圖、折線圖、散佈圖、曲面圖、雷達圖…等),來表達空間的思

    維。

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    17

    ((((二二二二))))利用散佈圖繪製地形剖面圖利用散佈圖繪製地形剖面圖利用散佈圖繪製地形剖面圖利用散佈圖繪製地形剖面圖

    本文以北迴歸線所經的台灣地形剖面圖為例,在工作表第一列填入嘉義縣東石港到

    花蓮縣石梯港之 DTM 適當解析度高度值,再從統計圖表中選定「帶有平滑線及資料標

    記的 XY 散佈圖」的來源資料即可,其核心程式語法如下:

    ActiveSheet.UsedRange.Select ' 選取使用中的儲存格範圍

    ActiveSheet.Shapes.AddChart.Select

    ActiveChart.ChartType = xlXYScatterSmooth '使用 XY 散佈圖

    經巨集執行結果,可得到如圖 9 的剖面圖。

    圖圖圖圖 9 以散佈以散佈以散佈以散佈圖圖圖圖的統計圖功能繪製的統計圖功能繪製的統計圖功能繪製的統計圖功能繪製剖面剖面剖面剖面圖圖圖圖

    ((((三三三三))))利用曲面圖利用曲面圖利用曲面圖利用曲面圖繪製繪製繪製繪製地形透視跡線地形透視跡線地形透視跡線地形透視跡線圖圖圖圖

    在工作表依 DTM 欄列填入 DTM 適當解析度高度值後,再指定曲面圖的來源資料

    及曲面圖類型,其程式語法如下:

    ActiveSheet.UsedRange.Select ' 選取使用中的儲存格範圍

    ActiveSheet.Shapes.AddChart.Select

    ActiveChart.ChartType = xlSurface '使用曲面圖類型

    本文設定五種高度分層的不同顏色,經巨集執行結果後,再視實際需要調整 Z 座標

    的比例,則可得到如圖 10 的曲面圖,亦即 3D 立體地形透視跡線圖。

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    18

    圖圖圖圖 10 以以以以曲面圖曲面圖曲面圖曲面圖的圖表功能繪製一公里解析度之的圖表功能繪製一公里解析度之的圖表功能繪製一公里解析度之的圖表功能繪製一公里解析度之地形透視跡線圖地形透視跡線圖地形透視跡線圖地形透視跡線圖

    五五五五、、、、地形面積的計算地形面積的計算地形面積的計算地形面積的計算

    本節利用分層設色圖來計算分層的面積,以程式語言來說主要是「計算儲存格的數

    量」。以圖 8 的分層設色圖為例,因為該 DTM 解析度是 100 公尺,所以一個儲存格的

    面積就是 0.01 平方公里,只要計算出各顏色儲存格的總數量,再乘以每個儲存格的面積

    (0.01 平方公里),就可以得到各分層的面積,以計算圖 8 的「平原」面積而言,其程

    式語法如下。

    Sheets("分層設色圖").Select

    With ActiveSheet

    For Each 格 In .UsedRange

    If 格.Interior.Color = Sheets("設定").Cells(12,2) Then

    格數 = 格數 + 1

    End If

    Next 格

    End With

    面積 = 格數 * 0.01 ' 單位:平方公里

  • 2009數位典藏地理資訊學術研討會 Digital Archives GISci Conference

    19

    計算結果平原面積為 10,449.09 平方公里,占該 DTM 陸域面積(36,075.14 平方公

    里)的 28.96%。

    六六六六、、、、結論結論結論結論

    地圖、地理資訊、試算表之應用和程式設計已普及到國中小及高級中學的「資訊教

    育」和「地理教育」等相關課程,Excel 軟體也普及到家戶、校園和辦公室,本文所提

    出的 Excel VBA 巨集程式,經存檔為 Excel 2007 的 xlsm 格式,只要在 Excel 軟體巨集

    啟用的設定下,均可順利執行。

    透過易懂的 VBA 程式設計,處理 Excel 的多邊形圖案、儲存格和統計圖表,可以

    繪製呈現地理資訊的圖形,除了多一項地理資訊簡易軟體的選擇之外,並有利於地理、

    數學和資訊的教育與學生的學習興趣。如能加以運用更方便靈活的表單使用介面、在圖

    面加入比例尺、圖例和指北針,以及設計進一步的空間分析功能,將可更提升 Excel 的

    空間思維。

    參考參考參考參考文獻文獻文獻文獻

    Lin, C. C., and Lin, Y. L.(2009)Apply Excel VBA to Terrain Visualization, The 22th IPPR

    Conference on Computer Vision, Graphics, and Image Processing, pp.1707~1711.

    Microsoft Office Online (2007), Microsoft Office Excel 2007 的最新訊息,

    http://office.microsoft. com/zh-tw/excel/HA100738731028.aspx。

    StatCounter Global Stats (2009), Top 5 operating systems in Taiwan from 1 Jan to 30 Jun 09,

    http://gs.statcounter.com/#os-TW-daily-20090101-20090630-bar。

    內政部(2009),台灣行政區域圖,

    http://taiwanarmap.moi.gov.tw/moi/adminImg.aspx?Admin Name = 臺 灣 全 圖

    &para1=2。

    李金國(2002)運用 Excel 輔助地理圖表教學,地理教育,01:53。

    阮宏展(2006)融入試算表於九年一貫數學領域學習之探討,教學科技與媒體,76:

    92-105。

    林志重(2008)台灣地區大學校院與學生來源之空間分析,國立彰化師範大學地理學系

    博士論文。

    林威昇(1999)利用 Excel 圖表功能實施國中數學科輔助教學,資訊與教育雜誌,74:

  • 數位典藏與數位學習國家型科技計畫 Taiwan e-Learning and Digital Archives Program

    20

    50-56。

    張春蘭、莊昀(2009)地理資訊系統如何融入高中地理教學,2009 年中國地理學會地理

    教育研討會,52-66。

    教育部中等教育司(2008)普通高級中學課程綱要(地理部份),教育部中華民國 97 年

    12 月 18 日台中(一)字第 0970251611B 號令修正,

    http://www.edu.tw/files/site_content/ B0035/地理-必修.pdf。

    教育部國民教育司(2008)97年國民中小學九年一貫課程綱要(資訊教育、數學學習領

    域部份),教育部中華民國 97 年 5 月 23 日台國(二)字第 0970082874B 號令修

    正,http://www.edu.tw/eje/content.aspx?site_content_sn=15326。

    郭俊麟(2008)台灣數位典藏地理資訊在教育與資料提供機制之探討—從學程與工作坊

    的規劃談起,數位典藏地理資訊,臺北市:臺灣大學地理環境資源學系,67-85。

    陳義汶(2004)資訊融入教學:應用 Excel 試算表軟體融入國中數學課程,研習資訊,

    21(4):104-113。

    賀忠儒(2002)地圖學通論,臺北:國立編譯館。

    資策會 FIND(2009)2008年我國家庭寬頻、行動與無線應用現況與需求調查─家戶指

    標,http://www.find.org.tw/find/home.aspx?page=many&id=214。

    賴進貴(2008)數位典藏地理資訊的下一哩路—挑戰與機會,數位典藏地理資訊,臺北

    市:臺灣大學地理環境資源學系,3-12。

    譚柏雄(2002)Excel 在地理教學上的應用,建中學報,8:147-160。