邱駿挺,余心起,李春麟,楊赫鳴
中國(guó)地質(zhì)大學(xué)(北京)地球科學(xué)與資源學(xué)院,北京 100083
使用VBA處理地質(zhì)數(shù)據(jù)的方法及步驟
——以Excel二次編程為例
邱駿挺,余心起,李春麟,楊赫鳴
中國(guó)地質(zhì)大學(xué)(北京)地球科學(xué)與資源學(xué)院,北京 100083
VBA是一類(lèi)適用面廣、功能強(qiáng)大的編程語(yǔ)言,能通過(guò)控制應(yīng)用程序運(yùn)行而實(shí)現(xiàn)辦公自動(dòng)化,因而在處理地質(zhì)數(shù)據(jù)和繪制圖形等方面擁有很大的開(kāi)發(fā)前景。筆者提出一種編程步驟及編程技巧,非常適于沒(méi)有編程經(jīng)驗(yàn)的地質(zhì)工作者使用。操作者不僅可以自行發(fā)開(kāi)和發(fā)布工作程序,也可以使用和修改他人的程序,從而使地質(zhì)工作的自動(dòng)化水平得到整體的提升。
地質(zhì)數(shù)據(jù);VBA;編程技巧
VBA (Visual Basic For Application)是美國(guó)微軟公司開(kāi)發(fā)的一類(lèi)應(yīng)用程序控制語(yǔ)言[1]。它可以定義一系列規(guī)則以便替換一定的文本模式,從而實(shí)現(xiàn)辦公軟件的自動(dòng)化。目前,已有多款應(yīng)用程序集成了VBA模塊(如Excel、Word、AutoCAD等)[2-5],用戶(hù)可根據(jù)需要對(duì)工作進(jìn)行預(yù)安排和自動(dòng)化處理,從而提高工作效率。
Excel使用VBA語(yǔ)言編制出的程序叫做“宏”?!昂辍辈粌H可以實(shí)現(xiàn)Excel對(duì)數(shù)據(jù)的自動(dòng)處理,而且非常便于發(fā)布和共享。著名的GeoKit就是一款基于VBA構(gòu)建的宏程序[6]。它已成為許多地球化學(xué)研究者必備的工具。簡(jiǎn)單、快捷、小巧、易共享的特點(diǎn)使VBA編程在處理復(fù)雜地質(zhì)學(xué)問(wèn)題的過(guò)程中始終占有一定的優(yōu)越性。以VBA為基礎(chǔ)編寫(xiě)的宏程序必將在地質(zhì)學(xué)領(lǐng)域發(fā)揮重大的作用。
雖然VBA具有諸多優(yōu)勢(shì),許多地質(zhì)學(xué)家對(duì)此依然望而卻步,考慮到使用VBA可能需要具備一定的編程基礎(chǔ),而且非常耗費(fèi)時(shí)間,所以很多人更愿意使用Excel的編輯欄代替VBA進(jìn)行工作。這種做法并不是最好的選擇,一方面,用編輯欄編輯公式不能獨(dú)立保存,所以在共享方面存在很大制約,同時(shí)用這種方法只能處理數(shù)值數(shù)據(jù)而不能用于繪圖;另一方面,微軟公司為了推行統(tǒng)一的應(yīng)用程序編程語(yǔ)言已陸續(xù)發(fā)布很多VBA輔助工具和相關(guān)技術(shù)手冊(cè),有了它們,即便是沒(méi)有任何編程基礎(chǔ)的人同樣能寫(xiě)出非常好的宏程序。
筆者通過(guò)實(shí)際操作和研究,歸納總結(jié)出一套適用于所有非計(jì)算機(jī)類(lèi)地質(zhì)人員運(yùn)用VBA編寫(xiě)程序以處理地質(zhì)數(shù)據(jù)的方法。下文將詳細(xì)介紹這種方法,同時(shí)配合一個(gè)應(yīng)用實(shí)例闡述如何靈活運(yùn)用該方法。
引入VBA最根本的目的是更高效地解決地質(zhì)問(wèn)題,所以第一步工作就是去發(fā)現(xiàn)一個(gè)待解決或者有待改進(jìn)的問(wèn)題。對(duì)于長(zhǎng)期從事地質(zhì)專(zhuān)業(yè)的研究人員來(lái)說(shuō),發(fā)現(xiàn)問(wèn)題并不是難事,例如在野外描述線(xiàn)理的工作中,通常測(cè)定的是面的產(chǎn)狀和側(cè)伏角的大小,然后運(yùn)用解析幾何的知識(shí)換算出線(xiàn)理的產(chǎn)狀。上述問(wèn)題已在劉鶴的研究[7]中得到了解決,但該文采用的是VB編寫(xiě)?yīng)毩?yīng)用程序的工作模式,用戶(hù)需下載相關(guān)軟件且必須將數(shù)據(jù)從Excel導(dǎo)出為T(mén)XT文件后才可以運(yùn)算,使操作步驟變得異常繁瑣。如果使用VBA代替VB,不僅不用轉(zhuǎn)化數(shù)據(jù)格式,還免去了安裝應(yīng)用軟件的過(guò)程,所以從高效性原則上來(lái)講,此問(wèn)題依然有待改善。
發(fā)現(xiàn)一個(gè)問(wèn)題后,接下來(lái)要判斷該問(wèn)題是否可解。所謂可解是指問(wèn)題的結(jié)果與已知條件間存在某些確定的關(guān)系,且這種關(guān)系能用數(shù)學(xué)和邏輯語(yǔ)言描述。比如:已知某一層面的真傾角大小(a),求與該層面傾向呈一定角度(b)的觀(guān)察面上的視傾角大小(c),這個(gè)問(wèn)題就是可解的,因?yàn)橐晝A角大小與真傾角大小間存在確定關(guān)系c=arctan(tan(a)·cos(b))。又如已知某一地區(qū)巖層傾角,求另一地區(qū)巖層傾角就是不可解的,因?yàn)閮蓚€(gè)地區(qū)的巖層產(chǎn)狀間沒(méi)有確定的關(guān)系。當(dāng)代地球化學(xué)研究使用的各類(lèi)投影圖中每一個(gè)點(diǎn)的坐標(biāo)都與原始數(shù)據(jù)間存在確定的對(duì)應(yīng)關(guān)系,這也是諸如Geoplot和GeoKit等軟件可以處理圖形的根本原因。
一旦確定問(wèn)題是可解的,接下來(lái)就可以用VBA編寫(xiě)宏程序了。Excel為使用者提供了“錄制新宏”的工具。使用者可以在完全不接觸代碼的情況下讓計(jì)算機(jī)自動(dòng)完成編寫(xiě)代碼的工作,而使用者只需要將整個(gè)解題的過(guò)程操作一遍就可以了。當(dāng)然使用者也可以通過(guò)Excel自帶的Visual Basic編輯器查看并編輯剛剛錄制的過(guò)程代碼。一般情況下,對(duì)于操作步驟復(fù)雜的宏程序而言,很難一次性將所有過(guò)程代碼完整的記錄下來(lái),這時(shí)可以考慮分步錄制,直到整個(gè)操作完成后再在Visual Basic編輯器里將每一步的過(guò)程代碼拼接起來(lái)(圖1)。
一個(gè)剛編寫(xiě)好的宏程序存在不盡如人意的地方是很正常的。為提高程序的穩(wěn)定性,需要使用者對(duì)代碼進(jìn)行修改,不過(guò)由于主要的過(guò)程代碼已由計(jì)算機(jī)完成,所以只需在此基礎(chǔ)上對(duì)部分代碼進(jìn)行適當(dāng)?shù)男薷木涂梢粤?。這里強(qiáng)烈建議用戶(hù)遵循“先錄制,再修改”的原則,盡可能地讓計(jì)算機(jī)完成主要的編程工作。經(jīng)過(guò)多次調(diào)試和修改,程序穩(wěn)定性會(huì)有很大的提高,接下來(lái)用戶(hù)可以考慮發(fā)布和共享代碼。
綜上所述,地質(zhì)人員編寫(xiě)VBA程序可遵循5個(gè)步驟,首先是要能發(fā)現(xiàn)一個(gè)地質(zhì)問(wèn)題;其次需要判斷這個(gè)問(wèn)題是否可解;在可解的基礎(chǔ)上,接下來(lái)要完成整個(gè)宏編程的基本錄制工作;再經(jīng)過(guò)若干次的調(diào)試和修改以提高程序的穩(wěn)定性;最后發(fā)布宏程序(圖1a)。
圖1 程序編寫(xiě)流程圖
考慮到絕大多數(shù)人并沒(méi)有編寫(xiě)VBA的經(jīng)驗(yàn),這里我們舉一個(gè)例子對(duì)上述步驟進(jìn)行闡釋。本例將以判斷大地構(gòu)造背景工作中常用的花崗巖Hf-Rb/10-Ta×3圖解[8]作為待解決的問(wèn)題,同時(shí)嚴(yán)格遵照之前提出的方法求解。
三角圖是巖石學(xué)和地球化學(xué)領(lǐng)域解決問(wèn)題的一類(lèi)重要工具,經(jīng)常被用來(lái)劃分巖石類(lèi)型、判別構(gòu)造環(huán)境和估計(jì)巖石礦物組成等。目前已有多種計(jì)算機(jī)軟件提供了對(duì)三角圖作圖的支持(如Minpet、Sigmaplot等)。然而當(dāng)前絕大多數(shù)地質(zhì)數(shù)據(jù)都以Excel工作簿格式存儲(chǔ),使用這些軟件往往需要轉(zhuǎn)換數(shù)據(jù)格式,增加操作步驟,所以設(shè)計(jì)一種能讓Excel本身繪制三角圖的宏程序可以大大提高工作效率。
雖然三角圖比一般的直角坐標(biāo)圖多出一個(gè)坐標(biāo)軸,但它依然屬于平面坐標(biāo)的范疇,三角圖里的每一個(gè)點(diǎn)都同時(shí)具有三角坐標(biāo)和平面直角坐標(biāo)兩套坐標(biāo),只要找出兩種坐標(biāo)間的數(shù)學(xué)關(guān)系就可以將三角坐標(biāo)轉(zhuǎn)化為直角坐標(biāo)。
設(shè)空間中有一直角坐標(biāo)系(圖2),等邊三角形ABC三個(gè)頂點(diǎn)位置如圖所示。三角形邊長(zhǎng)為200(邊長(zhǎng)理論上可以取任何值,這里取200主要是為了計(jì)算方便),如將三角形三個(gè)頂點(diǎn)作為三角圖的三個(gè)端元,則A、B、C三點(diǎn)的直角坐標(biāo)分別為( 0,、(-100,0)、(100,0),對(duì)應(yīng)的三角坐標(biāo)為 (100,0,0)、(0,100,0)、(0,0,100), 設(shè) 三 角坐標(biāo)系內(nèi)有一點(diǎn)D,其直角坐標(biāo)為(Xd,Yd),三角坐標(biāo)為(a,b,c)。
圖2 三角圖坐標(biāo)轉(zhuǎn)換的證明
由比例關(guān)系可知:
即該問(wèn)題是可解的。
在這一步中,使用者需要完成兩項(xiàng)工作,首先,要把三角坐標(biāo)轉(zhuǎn)化為直角坐標(biāo),其次要把轉(zhuǎn)化好的直角坐標(biāo)繪制出來(lái)。為避免出錯(cuò),用戶(hù)可以考慮錄制兩個(gè)宏來(lái)分別處理這兩個(gè)過(guò)程。
(1)錄制坐標(biāo)轉(zhuǎn)換宏。
①將需要處理的數(shù)據(jù)輸入Excel(圖3)。
②執(zhí)行“工具”→“宏”→“錄制新宏”進(jìn)入“錄制新宏”窗口,將宏名設(shè)置為“坐標(biāo)轉(zhuǎn)換”。單擊“確定”按鈕。
③此時(shí)在Excel工作簿上會(huì)出現(xiàn)一個(gè)名為“?!钡男〈翱?,表示計(jì)算機(jī)已經(jīng)開(kāi)始記錄用戶(hù)的每一步操作。
④在A6單元格輸入字母“x”,在A7單元格輸入字母“y”,然后在B6格編輯公式“=B5-B4”,在B7格編輯公式“=1.732*B3”。
⑤單擊“?!贝翱诶锏摹巴V逛浿啤卑粹o,完成坐標(biāo)轉(zhuǎn)換的工作。
⑥使用“自動(dòng)填充”工具將6、7兩行的其他單元格完成(圖3)。
這一過(guò)程中編寫(xiě)的兩個(gè)公式會(huì)被封裝在VBA程序當(dāng)中,即使刪除B6和B7里的公式,只要執(zhí)行“工具”→“宏”→“運(yùn)行宏”,則兩個(gè)公式又會(huì)出現(xiàn)在B6和B7單元格里。所以使用VBA編程可以有效地保存用戶(hù)編輯的公式,同時(shí)用戶(hù)也可以考慮使用宏封裝公式以達(dá)到共享和發(fā)布公式的目的。
(2)錄制繪圖宏。
①執(zhí)行“工具”→“宏”→“錄制新宏”進(jìn)入“錄制新宏”窗口,將宏名設(shè)置為“繪圖”。單擊“確定”按鈕。
②按表1中的信息在指定的單元格內(nèi)填寫(xiě)指定數(shù)值。完成后如圖3所示。
③執(zhí)行“插入”→“圖表”,在“圖表向?qū)А?lèi)型”窗口中選擇圖表類(lèi)型為“X-Y散點(diǎn)圖”,子圖類(lèi)型選擇最后一個(gè),單擊“下一步”。
表1 制表數(shù)據(jù)
④在“系列”選項(xiàng)卡下設(shè)置添加六個(gè)系列。系列名稱(chēng)、取值區(qū)域參見(jiàn)表2。添加完成后點(diǎn)“完成”按鈕。
表2 系列選項(xiàng)
⑤結(jié)束宏錄制。
這時(shí)工作簿中已經(jīng)出現(xiàn)了三角圖的雛形,但此時(shí)這個(gè)三角圖還沒(méi)添加任何數(shù)據(jù)(圖3)。用戶(hù)可以對(duì)圖表進(jìn)行“添加數(shù)據(jù)源”的操作,將上一個(gè)過(guò)程結(jié)束后得到的坐標(biāo)數(shù)據(jù)錄入三角圖即可。
由于三角圖是采用直角坐標(biāo)繪制的,所以圖件上還保留有直角坐標(biāo)軸和部分刻度,用戶(hù)可以根據(jù)需要添加或去除這些元素。本過(guò)程中輸入的表1中的數(shù)據(jù)會(huì)被宏自動(dòng)錄制下來(lái),所以即便是刪除部分?jǐn)?shù)據(jù)也不會(huì)出現(xiàn)錯(cuò)誤。
圖3 過(guò)程演示
將所有宏錄制過(guò)程中生成的數(shù)據(jù)和圖表全部刪除,只保留原始數(shù)據(jù),然后依次執(zhí)行兩個(gè)宏程序,結(jié)果發(fā)現(xiàn)兩個(gè)宏在很短時(shí)間內(nèi)便將三角圖繪制完了,說(shuō)明程序運(yùn)行沒(méi)有問(wèn)題。
當(dāng)前這個(gè)三角圖還不是十分美觀(guān),為達(dá)到更好的展示效果,用戶(hù)可以繼續(xù)錄制其他針對(duì)圖表美化的操作(比如修改曲線(xiàn)的顏色,修改系列點(diǎn)的形狀等,圖4a),直到圖表變得美觀(guān)為止(圖4b)。執(zhí)行“工具”→“宏”→“Visual Basic編輯器”打開(kāi)VBA編輯窗口,在這里可以看到之前計(jì)算機(jī)自動(dòng)錄制的全部過(guò)程代碼。如果之前采用的是分步錄制的方式,此時(shí)可以將不同過(guò)程的代碼復(fù)制粘貼到一個(gè)過(guò)程代碼中,這樣就完成了對(duì)代碼的連接工作。再次對(duì)程序進(jìn)行調(diào)試,如果沒(méi)有問(wèn)題就可以發(fā)布宏程序了。
執(zhí)行“文件”→“另存為”命令,在另存為對(duì)話(huà)框中設(shè)置保存路徑和保存文件名,然后將保存類(lèi)型設(shè)置為“加載宏(.xla)”,最后點(diǎn)擊確定,這樣剛才編輯好的宏程序就被保存了。被保存宏程序可以通過(guò)互聯(lián)網(wǎng)進(jìn)行共享,也可使用移動(dòng)設(shè)備傳播。
如果另外一臺(tái)計(jì)算機(jī)的用戶(hù)打算使用這段宏代碼,只需執(zhí)行“工具”→“加載宏”命令,然后通過(guò)“瀏覽”找到宏程序所在的位置,最后單擊“確定”按鈕就可以使用宏程序了。
隨著地質(zhì)工作不斷地深入化和細(xì)致化,很多研究已從最初的定性逐漸向半定量、定量方向發(fā)展[9-10]。在此過(guò)程中如能掌握一門(mén)計(jì)算編程語(yǔ)言將會(huì)使工作變得更為簡(jiǎn)單。由于計(jì)算機(jī)可以長(zhǎng)時(shí)間、無(wú)間斷、反復(fù)地重復(fù)一項(xiàng)工作,使它非常適于處理數(shù)據(jù)量大、計(jì)算過(guò)程復(fù)雜的地質(zhì)類(lèi)問(wèn)題,如地球化學(xué)、巖石學(xué)、巖石地球化學(xué)類(lèi)的問(wèn)題。
VBA作為一類(lèi)常見(jiàn)的應(yīng)用程序編程語(yǔ)言已為許多計(jì)算機(jī)應(yīng)用程序所集成。用戶(hù)不僅可以在諸如Excel等面向數(shù)據(jù)處理一類(lèi)的應(yīng)用程序中使用VBA編程,甚至還可以在CorelDRAW這類(lèi)圖形處理程序中編寫(xiě)VBA程序以處理圖形文件??梢?jiàn)VBA是一種適用范圍廣泛、平臺(tái)支持有力的計(jì)算機(jī)編程語(yǔ)言,所以用戶(hù)完全不必為程序的兼容性和可執(zhí)行性擔(dān)憂(yōu)。不僅如此,使用VBA編寫(xiě)的宏程序非常易于共享和發(fā)布,使用者甚至可以在授權(quán)情況下對(duì)別人的代碼進(jìn)行修改,使共享程序更好地為自己的工作服務(wù)。
目前已經(jīng)有許多VBA程序用于處理地質(zhì)學(xué)的數(shù)據(jù)和圖形問(wèn)題,但這些程序僅能提供有限的功能和服務(wù),這對(duì)于一個(gè)快速發(fā)展的學(xué)科來(lái)說(shuō)顯然是不夠的。這里,鼓勵(lì)各位研究人員自行開(kāi)發(fā)VBA程序,并將源程序公開(kāi)。雖然很多地質(zhì)學(xué)家并沒(méi)有編程基礎(chǔ),但當(dāng)前的計(jì)算機(jī)技術(shù)完全可以滿(mǎn)足智能化編程的要求。用戶(hù)完全可以將復(fù)雜的代碼編寫(xiě)工作首先交給計(jì)算機(jī)處理,自己只完成對(duì)代碼的行修改和調(diào)試就可以了。在這樣一種形勢(shì)下,掌握一種正確的編程思想和方法往往比編程本身更重要。
本文提出的方法非常適合沒(méi)有編程經(jīng)驗(yàn)的人使用。如今我國(guó)有一大批工作于生產(chǎn)和科研一線(xiàn)的優(yōu)秀地質(zhì)學(xué)家,他們活躍的表現(xiàn)使地質(zhì)學(xué)在最近幾年內(nèi)迅猛發(fā)展,但同時(shí)也出現(xiàn)了一系列亟待解決的問(wèn)題。在這種情況下,努力尋找一種解決問(wèn)題的方法是當(dāng)代地質(zhì)學(xué)家必須面對(duì)的事情,而使用計(jì)算機(jī)編程解決問(wèn)題就是一種非常有效地方法。
圖4 運(yùn)行結(jié)果
然而計(jì)算機(jī)并不是萬(wàn)能的,它只能按照固定的套路行事,而不能像人一樣具備獨(dú)立思考的能力。因此,不能指望計(jì)算機(jī)自己去開(kāi)發(fā)一種解題思路,更不要期望它獨(dú)立判斷一個(gè)問(wèn)題是否可解。事實(shí)上編程人員必須首先對(duì)問(wèn)題的可解性進(jìn)行分析,然后給出具體的工作流程,最后才能讓計(jì)算機(jī)完成工作。
在編制工作流程時(shí),使用者可以充分利用VBA模塊本身提供的“錄制宏”工具進(jìn)行智能編程。對(duì)于復(fù)雜的過(guò)程最好不要一次性將所有的操作都記錄下來(lái),因?yàn)椴僮鞑襟E越多,錯(cuò)誤操作的可能性就越大,當(dāng)然計(jì)算機(jī)記錄下的無(wú)效語(yǔ)句的數(shù)目也會(huì)增加,這樣日后在調(diào)用程序的時(shí)候會(huì)使程序的工作效率大打折扣。所以正確的做法是將一個(gè)多步操作分解為若干個(gè)簡(jiǎn)單的操作過(guò)程(圖1b),然后分別對(duì)每個(gè)小過(guò)程進(jìn)行錄制,最后再把所有的過(guò)程代碼通過(guò)“Visual Basic編輯器”連接起來(lái),這樣即便其中某一個(gè)過(guò)程出現(xiàn)了錯(cuò)誤,只需要對(duì)該過(guò)程進(jìn)行修改就可以了。
程序編寫(xiě)完成后需要進(jìn)行調(diào)試,這里建議各位編程人員采用“開(kāi)源”方式共享自己的代碼,這樣其他程序員不僅可以享用程序本身所帶來(lái)的便利,同時(shí)也可以根據(jù)實(shí)際情況對(duì)代碼進(jìn)行更進(jìn)一步的修改和調(diào)試,這就相當(dāng)于一位程序員編寫(xiě)程序,多位程序員協(xié)助調(diào)試(圖1c),不僅可以節(jié)省時(shí)間,代碼本身也可以得到及時(shí)更新。
雖然遵照上述步驟和方法可以有效地編寫(xiě)VBA程序,但在編程過(guò)程中不斷積累經(jīng)驗(yàn)也是很重要的,因?yàn)殡S著地質(zhì)學(xué)的發(fā)展,未來(lái)的數(shù)據(jù)計(jì)算過(guò)程會(huì)變的更加復(fù)雜,這時(shí)就需要用使用一些特殊的編程技巧。為更好地適應(yīng)新情況,各位地質(zhì)學(xué)家在調(diào)試VBA程序時(shí)可使用“逐語(yǔ)句調(diào)試”命令,盡快地掌握每一條語(yǔ)句的作用,以便在日后的編程工作中能更加靈活地使用這些語(yǔ)句。
(1)在智能化編程的總體形勢(shì)下,使用VBA編程的關(guān)鍵不在于編程本身而在于編程方法,即便是沒(méi)有任何編程經(jīng)驗(yàn)的地質(zhì)學(xué)家只要掌握正確的方法也能編寫(xiě)程序。
(2)對(duì)于沒(méi)有任何編程經(jīng)驗(yàn)的地質(zhì)學(xué)家而言,一種行之有效地編程步驟包括:發(fā)現(xiàn)問(wèn)題、判斷問(wèn)題可解性、編寫(xiě)主要過(guò)程代碼、調(diào)試程序和發(fā)布程序5個(gè)步驟。
(3)在編寫(xiě)主要過(guò)程代碼時(shí)需充分利用VBA模塊提供的智能編程工具。
(4)對(duì)于比較復(fù)雜的過(guò)程可以考慮將一個(gè)總過(guò)程分解為多個(gè)子過(guò)程進(jìn)行錄制,最后再將所有的過(guò)程代碼連接起來(lái)。
(5)在調(diào)試階段可以考慮將程序代碼采用開(kāi)源方式共享,以借助其他編程人員的力量對(duì)程序進(jìn)行修改和優(yōu)化處理。
[1] 王芳,李波,劉慧鵬.利用Excel VBA自動(dòng)繪制物化探平剖圖[J].云南地質(zhì),2010,29(2):231-234.
[2] 劉軍.在Word下實(shí)現(xiàn)漢字注音直接輸入輸出[J].電腦編程技巧與維護(hù),2010,(15):10-14.
[3] 韓芳,牛利兵,牛利軍,等.基于AutoCAD VBA的兩圓外公切線(xiàn)編程[J].機(jī)械,2010,37(S):38-40.
[4] 朱劍君,范忠明.Excel VBA編制河道斷面觀(guān)測(cè)業(yè)內(nèi)計(jì)算程序[J].江蘇水利,2010,(6):15-17.
[5] 鐘煒.利用CorelDraw VBA開(kāi)發(fā)宏程序繪制地圖[J].江西測(cè)繪,2007,(3):4-6.
[6] 路遠(yuǎn)發(fā).GeoKit:一個(gè)用VBA構(gòu)建的地球化學(xué)工具軟件包[J].地球化學(xué),2004, (5):28-33.
[7] Hugh R Rollison.巖石地球化學(xué)[M].楊學(xué)明,楊曉勇,陳雙喜.譯.合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2000:157.
[8] 楊廣全,梁曉,王根厚.逆沖斷裂及相關(guān)褶皺的幾何學(xué)與運(yùn)動(dòng)學(xué)定量化研究進(jìn)展[J].地質(zhì)通報(bào),2010,29(1):58-61.
[9] 張艷,劉丹強(qiáng),周璐紅.地質(zhì)災(zāi)害土地資源易損性評(píng)價(jià)定量探討[J].水文地質(zhì)工程地質(zhì),2010,37(3):122-126.
Method and Steps in Geological Data Processing with a VBA Program
QIU Jun-ting, YU Xin-qi, LI Chun-lin, YANG He-ming
China University of Geosciences, Beijing 100083, China
VBA (Visual Basic For Application) is a wide, powerful programming language which contributes to office automation by controlling application.It has great prospects in rendering the processing of geological data and graphics.The authors put forward a programming method and programming techniques, which well fit geologists without much programming experience.The geologist can not only develop and release their own work, but also use and modify others’ programs, so that the automation level of geological work will generally get improved.
geological data; VBA; programming technique
G642
A
1006-9372 (2011)01-0078-06
2010-12-10;
2011-01-20。
國(guó)家自然科學(xué)基金項(xiàng)目“北武夷地區(qū)逆沖推覆構(gòu)造及其對(duì)銅鉛鋅礦床的控制作用”(40772134);浙江省第三地質(zhì)大隊(duì)、浙江省核工業(yè)二六九大隊(duì)的“江紹拼合帶中西段銅多金屬礦床成礦與成礦規(guī)律研究”項(xiàng)目;國(guó)家自然科學(xué)基金項(xiàng)目“華北克拉通晚中生代巖石圈減薄過(guò)程中的地殼拆離作用與巖石流變學(xué)約束”(90814006)。
邱駿挺,男,2010級(jí)碩士研究生,構(gòu)造地質(zhì)學(xué)專(zhuān)業(yè)。