林志重建国科技大学.docx
- 文档编号:1634692
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:11
- 大小:280.69KB
林志重建国科技大学.docx
《林志重建国科技大学.docx》由会员分享,可在线阅读,更多相关《林志重建国科技大学.docx(11页珍藏版)》请在冰豆网上搜索。
林志重建国科技大学
應用ExcelVBA於人口金字塔及正三角座標圖之繪製
TheapplicationofExcelVBAtopopulationpyramidsandtriangulardiagram
林志重
Chih-ChungLin
摘要
有鑑於Excel軟體在教育、辦公及家用的電腦均非常普及,其數值運算及圖表展示之功能強大,最新的2007版本工作表儲存格欄列及顏色數量均大幅擴增,本文利用ExcelVBA語法和巨集功能,設計可繪製地理學常用圖形的程式。
只要在Excel介面下,透過數據資料的輸入和繪製參數的設定,執行程式即可自動繪製並呈現台閩地區單一年齡組人口金字塔圖(1974~2009年),與台灣地區及縣市的三級產業結構正三角座標圖,並動態展示歷年變化。
關鍵詞:
人口金字塔、產業結構、正三角座標圖、EXCELVBA程式設計
Abstract
Excelsoftwareispopularizedineducation,office,andhome-usedcomputer.Itsfunctionofnumericaloperationanddiagrampresentationisverypowerful.Inthenewest2007version,theworksheets’columnsandrowsandthenumberofcolorsincreasealot.
ThisarticleusestheExcelVBAprogrammingandmacrofunctions,designingprogramswhichcandrawgeographicdiagramthatareincommonuse.OntheEXCELinterface,throughinputtingdataandsettingparameter,theprogramscanautomaticallydrawpopulationpyramidsandtriangulardiagram,andpresentanimation.
Keywords:
populationpyramids,industrialstructure,triangulardiagram,EXCELVBA
前言
地圖、地理圖表、圖片可說是地理的第二語言,其中地理圖表是以統計數據的形式展示地理現象,可解讀資料的含義、比較差異等,最為簡明。
在普通高級中學地理課程綱要提到:
地理課程欲達成之核心能力包含能有系統以圖表展現資料,並表達意見。
在教學方法除了利用地圖、標本等教具之外,並輔以統計圖表,使學生能了解教材內容、發生學習興趣,進而啟發其自動研習的精神(教育部中等教育司,2008)。
國民中小學九年一貫課程綱要將「資訊教育」列為七個重大議題之一,強調資訊融入各學習領域中。
在國中階段以學習程式語言基本概念、圖表製作及資料庫概念等資料的處理與分析核心能力,「儘量設計資訊科技與各學習領域整合之教學或主題式資訊科技融入教學,讓學生將所學之資訊能力充分應用於學習活動中,並介紹幾種常用的程式語言及運用程式設計工具,進行簡單之程式設計,而且讓學生熟悉試算表軟體的功能及基本操作,瞭解資料的處理程序,並可對資料進行計算與分析」。
在融入「社會」學習領域方面,則「利用地圖、數據和其它資訊,來描述和解釋地表事象及其空間組織」(教育部國民教育司,2008)。
由此可見,試算表之應用、程式語言及設計已經普及到國中小教育階段。
依據資策會FIND(2009)調查2008年台灣家戶電腦普及率為82.9%,家戶平均擁有電腦數量為2.0台。
此外,在全球統計調查機構(StatCounterGlobalStats,2009)調查顯示,台灣地區2009上半年電腦Windows作業系統(含XP、Vista、2000)占有率為98.6%,也因此Windows其核心軟體-MicrosoftOffice已安裝到台灣大多數的家戶、校園和辦公室,由此可見,隨附於MicrosoftOffice的Excel軟體之全民普及性可見一斑。
以教學的功能來看,Excel軟體大多應用於數學教學,以促進數學理解的功能,例如應用於直角座標與函數的圖形及統計圖表方面的輔助教材,以及機率與統計教學,也可以設計互動式代數例子,幫助學生學習基礎代數的函數及其意義(林威昇,1999;陳義汶,2004;阮宏展,2006)。
在地理方面的應用則不多見,例如以Excel的內建函數和統計圖表功能,分別處理降雨、氣溫和人口等地理資料,並製作統計圖(譚柏雄,2002;李金國,2002),林志重和林彥伶(2009)則利用ExcelVBA程式,設計繪製人口及颱風雨量分布的地理資訊面量圖,並以數值地形模型繪製地形分層設色圖、剖面圖及立體圖。
因此,本文試圖結合「資訊教育」與「地理教育」的內涵,運用普及的Excel軟體,透過VBA程式的設計,來處理繪製地理教學或分析常用到的「人口金字塔圖」與「產業結構正三角座標圖」,期望能以資訊軟體的應用來提升對地理學習的興趣。
EXCEL的工作表及其VBA特性
Excel也稱為試算表軟體,具有強大的計算功能和圖表工具,可用以建立表格、計算、分析資料,並以精美的版面配置列印表格、建立圖表,豐富地展現資料視覺化,以利於使用者進行決策。
因為大多在電腦購置時已隨附安裝,而且坊間及網路上亦有很多相關書籍和資訊介紹其操作方法,所以廣受一般人的使用。
該軟體工作表是以橫列(row)和直欄(column)所構成的儲存格,最新的2007版本儲存格擴增達1,048,576列及16,384欄,列高和欄寬最小為1像素(Pixel),於100%列印時為1/40公分。
儲存格的色彩更為豐富,增加到1,677萬色可以選用。
此外,為了增進Excel的效能,記憶體管理已經從Excel2003中的1GB記憶體增加到Excel2007中的2GB(MicrosoftOfficeOnline,2007),這些功能的提升,都有利於資料處理和圖形展現的優勢。
Excel軟體並內含支援VB開發工具(VBA,VisualBasicforApplications),BASIC是程式語言的一種,英文全名是"Beginner'sAll-PurposeSymbolicInstructionCode",取其首字字母簡稱"BASIC",意指「適用於初學者的多功能符號指令碼」,因此使得Excel形成獨立的編程環境,以利使用者應用一連串指令集合而成的巨集(marco)來控制其他應用程式,或自動執行重複性的程序步驟,擴展Windows的應用程式功能,而且巨集錄製器可以將操作步驟翻譯成VBA語言供初學者修改,是非常方便的學習輔助工具。
程式繪製圖形之程序及語法
有關ExcelVBA的基本用法於坊間的書籍或該軟體的幫助檔都有介紹,本文不再贅述,僅著重於數據資料的讀取、處理步驟、程式的編寫流程及語法說明;為使程式容易說明和閱讀,所以將設計的變數名稱採用中文命名,但是,這並不會影響巨集程式的順利執行。
(1)人口金字塔圖之繪製
「人口金字塔圖」是一種可清晰反映某一地區男女比例與年齡人口組成的圖表,並具體地呈現出一特定人口在過去80年以上的時間中,所發生的重要人口事件,是各種涉及人口之發展或規劃的重要基礎。
雖然採用插入Excel內建「圖表類型」中的「群組橫條圖」(ClusteredBar)方式,可以繪製人口金字塔圖(譚柏雄,2002;TheOhioStateUniversityAEDE,2002),但仍受到其內建圖表功能的限制,例如年齡組名稱的擺放位置、繪金字塔邊線、不同年代金字塔的疊圖比較等。
本文以內政部戶政司(2010)1974~2009年臺閩地區現住人口數年齡分配按單齡組資料為例,應用ExcelVBA繪製人口金字塔圖,其步驟如下:
1.在「人口資料」工作表B4:
BU104建立1974~2009年各年之0~100歲單一年齡組男女性人口資料,如圖1。
B105:
BU105則運算加總該欄之人口數。
圖1人口資料輸入格式之視窗圖
2.依所需金字塔圖形寬和高,設定人口百分比0.01%為一欄,並以150欄為最大長度(即1.5%),各欄寬為2像素,以及各年齡組之列高為5像素。
3.依所設定之軸線顏色、刻度間距,繪製各縱軸線為點線(LineStyle=xlDot)。
4.依所設定繪製年(以1992年為例),求算應讀取男女性人口資料之欄位置,及總人口數。
5.在年齡組別之左右兩側,以For…Next指令,由最高年齡層(100歲)由上往下到0歲,求算男女人口百分比的起迄儲存格,並填滿該儲存格顏色和邊框顏色。
步驟4和5的主要程式語法為:
'求算應讀取人口資料之儲存格欄的位置
男格=(年-1973)*2
女格=男格+1
總人口=Worksheets("人口資料").Cells(105,男格)+Worksheets("人口資料").Cells(105,女格)
'繪填塔的顏色和框色
For齡=1To101
男=Int(0.5+Worksheets("人口資料").Cells(105-齡,男格)*10000/總人口)
Range(Cells(齡+3,150-男),Cells(齡+3,150)).Interior.Color=男填色'塗塔顏色
Range(Cells(齡+3,150-男),Cells(齡+3,150)).Borders(xlInsideVertical).LineStyle=xlNone
Call畫男邊框線(齡,男,男齡欄,男框色)
女=Int(0.5+Worksheets("人口資料").Cells(105-齡,女格)*10000/總人口)
Range(Cells(齡+3,152),Cells(齡+3,152+女)).Interior.Color=女填色'塗塔顏色
Range(Cells(齡+3,152),Cells(齡+3,152+女)).Borders(xlInsideVertical).LineStyle=xlNone
Call畫女邊框線(齡,女,女齡欄,女框色)
Call標寫齡級數值(齡)
Next齡
6.最後畫中間軸線和塔底的圖名,即可在「繪圖區」工作表呈現1992年人口金字塔圖,如圖2。
圖2繪製1992年人口金字塔之結果圖
7.當需要呈現多年之金字塔疊圖(以2009和1974兩年為例)時,則以DoWhile…Loop指令,於繪製完2009年人口金字塔圖後,繼續讀取第二年(1974年)的資料,並重覆上述4和5步驟,但僅繪製邊框顏色,不填滿儲存格顏色,則可在「繪圖區」工作表呈現兩年人口金字塔圖,如圖3。
圖3繪製2009和1974兩年人口金字塔之結果圖
8.為連續展示1974~2009年的36年間人口金字塔圖動態變化,在1974~2009的For…Next迴圈內,首先利用Application.ScreenUpdating=False不更新螢幕,在執行完成第一年(1974年)人口金字塔圖後,始更新螢幕呈現繪製結果,重覆步驟繼續繪製下一年。
(2)產業結構正三角座標圖繪製
平面正三角形坐標圖(triangulardiagram)是屬於結構圖的一類,是在一個正三角形內,作若干條三邊的平行線
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 林志重 建国 科技大学
![提示](https://static.bdocx.com/images/bang_tan.gif)