我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁 > CAD新聞

利用VB與Excel快速生成工藝卡片的方法

時間:2011-02-26 19:31:00 來源:

引言

在進行CAPP項目開發(fā)時,最終要生成多種工藝卡片。由于VB具有極強的界面設(shè)計能力,且易學易用,支持面向?qū)ο?、事件?qū)動、ActiveX技術(shù)以及強大的數(shù)據(jù)庫處理能力,很多用戶喜歡用VB作為CAPP項目的開發(fā)語言。但VB的表格處理能力一般,特別是處理復(fù)雜表格時,顯得力不從心。而Excel作為Micro sof t公司的表格處理軟件有著強大的功能。為此,在充分利用VB諸多優(yōu)點的基礎(chǔ)上,結(jié)合Excel的表格處理能力,成功解決了CAPP項目開發(fā)中復(fù)雜表格生成這一難題。

1 解決問題的思路與方法

首先利用VB強大的界面設(shè)計能力,在其開發(fā)環(huán)境下用Label(標簽)、Textbox(文本框)、Ole(用于嵌入圖片)、MSFlexGrid(網(wǎng)格)等控件“畫出”一張空白卡片,這張卡片是由各種控件組成的,可充分利用基于VB的CAPP系統(tǒng)強大的功能,進行卡片內(nèi)容的快速填充和編輯,生成內(nèi)容上完全符合實際需要的“準工藝卡”。由于其不是真正意義上的表格,而且目的在于利用CAPP系統(tǒng)強大功能進行快速生成,所以并不適用于打印輸出和實際生產(chǎn)。

利用Excel強大的表格處理功能,根據(jù)需要事先設(shè)計出各種實用的空白工藝卡片模版,其表格組成應(yīng)與VB環(huán)境下對應(yīng)的表格完全相同。實際使用時,只需調(diào)用需要的卡片模版,然后將CAPP系統(tǒng)生成的工藝表格中相關(guān)控件的內(nèi)容傳入Excel表格對應(yīng)的單元格,即可生成真正意義上的工藝卡片。

2 VB中各控件內(nèi)容向Excel表格中的傳送

由于Excel應(yīng)用程序是外部可創(chuàng)建對象,所以能從VB應(yīng)用程序內(nèi)部來程序化操作Excel,方法是利用VB的OLE自動化技術(shù)獲取Excel的控制句柄,從而通過VB直接控制Excel的各種操作。由于對Excel的操作都是在VB的主界面下進行的,用戶感覺就像使用VB自己的表格一樣,十分方便。

2.1 利用VB啟動Excel并打開對應(yīng)的工作薄和表

a.在工程中引用Micro sof t Excel類型庫。從VB的“工程”菜單中選擇“引用”欄,選中Micro sof tExcel 11.0 Object Library(Excel 2003),然后單擊“確定”,表示在工程中引用Excel類型庫。

b.在通用對象的聲明過程中定義Excel對象。

Dim ExApp A s Excel Applicatio n

Dim ExBoo k A s Excel Wo rkBoo k

Dim ExSheet A s Excel Wo rksheet

c.在程序中打開已經(jīng)存在的Excel工件簿文件并設(shè)置活動工作表。

Set ExApp=CreateObject("Excel.Applica2tio n")’創(chuàng)建Excel對象

Set ExBoo k=ExApp.Wo rkboo ks.Open("Excel工藝模版文件名")’打開工件簿文件

ExApp.Visible=True’設(shè)置Excel對象可見

Set ExSheet=ExBoo k.Wo rksheet s("表名")’設(shè)置活動工作表

2.2 MSFlex Grid的文本向Excel單元格的傳送

在CAPP項目開發(fā)中,工藝卡片中的主要內(nèi)容是文本和圖形。其中,VB環(huán)境下的文本內(nèi)容主要存于文本框和MSFlexGrid網(wǎng)格控件中,其中又以MSFlex Grid網(wǎng)格控件為主。下面以VB的MS2Flex Grid網(wǎng)格控件向Excel單元格傳送文本為例,介紹通用的程序代碼。

以下代碼將MSFlexGrid1網(wǎng)格控件第1行、第1列至第1行、第4列的內(nèi)容傳送到Excel表的“e1”~“h1”的單元格中。i=1

Fo r j=101 To 104‘101~104為字母e~h的

A SCII碼值

r=Chr(j)&i

ExSheet.Range(r).Value=MSFlex Grid1.

Text Mat rix(i,j-100)

Next j

2.3 VB中的圖形向Excel單元格的傳送

在CAPP項目中所使用的各種工藝圖形,均以文件的形式進行保存,本文使用的圖形文件為Au2to CAD的dwg文件。若用變量Pict ure_name表示工藝卡片中插入的圖形文件名(含路徑),則可利用工作表的OLEObjects對象的Add方法,將此圖形文件插入到Excel表格的某一單元格(如"a7")中,具體代碼如下:

ExSheet.Range("a7").Activate

ExSheet.OL EObject s.Add(FileName:=Pic2

t ure_name,Link:=Fal se).Select

需要說明的是,插入到Excel表格中的圖形大小,可能與Excel模版中設(shè)定的圖形區(qū)域不一致,可以在預(yù)覽時(此時可通過代碼自動打開所生成的Excel工藝卡片)進行如下調(diào)整:選中卡片中插入的圖形;單擊右鍵,在快捷菜單中選擇“顯示‘圖片’工具欄”;利用圖片工具欄中的“裁剪”和“壓縮圖片”按鈕,將圖片調(diào)整到合適尺寸。

2.4 已生成的Excel工藝表格的保存

以下代碼將已生成的Excel工藝表格以文件的形式保存起來,供預(yù)覽、打印及實際生產(chǎn)之用,并關(guān)閉Excel以及相應(yīng)的工作薄和工作表。

Exapp.DisplayAlert s=Fal se

Exbook.SaveA s("生成的Excel工藝表格文件名")

Exbook.Close

Exapp.DisplayAlert s=True

Set Exboo k=Not hing

Set ExSheet=Not hing

Set Exapp=Not hing

3 預(yù)覽及打印功能的實現(xiàn)

在VB環(huán)境下,利用OLE容器控件,調(diào)用Cre2ateLink方法可以在運行時從已生成的工藝卡片文件中創(chuàng)建一個鏈接對象[1],從而方便地打開已生成的Excel工藝表格,實現(xiàn)預(yù)覽及打印,方法如下:在VB下建立一窗體(Name屬性設(shè)置為Frm Excel),在其上放置一OL E控件(Name屬性設(shè)置為Ole1),然后在預(yù)覽及打印菜單的相應(yīng)事件過程中編寫下列代碼。

Frm Excel.Ole1.CreateLink"生成的Excel工藝卡片文件名"

Frm Excel.Ole1.DoVerb‘運行時激活對象

4 結(jié)束語

通過VB和Excel的有機結(jié)合,充分發(fā)揮各自軟件的優(yōu)勢和特色,使編程更加簡練、實用,使復(fù)雜的表格處理更加簡便。對于表格中的圖形處理,由于采用了OLE技術(shù),故表格中既可以插入常用的AutoCAD圖形文件,也可以插入Pro2E,SoldWorkS等圖形文件,使用戶對圖形軟件的選擇處于完全開放的狀態(tài),極大地方便了用戶。