国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

如何運用vba繪制游標卡尺

2011-05-18 11:42張小建
物理教師 2011年2期
關(guān)鍵詞:游標卡尺文本框刻度

張小建

(江蘇省木并茶高級中學,江蘇 如東 226406)

游標卡尺作為基本測量工具之一,自然是考查的熱點.物理教師在編制試卷時,最困難的就是繪制游標卡尺.很多教師就采用其他軟件繪制然后以圖片的形式復制到word里,再經(jīng)過縮放等操作后往往會出現(xiàn)模糊、變形、鋸齒等現(xiàn)象.實際上用word里嵌套的vba編程工具就可很準確的畫出游標卡尺.下面就把筆者在實際工作中積累的一點經(jīng)驗介紹給大家,以供參考.

1 Word的對象及坐標系

運用vba畫游標卡尺主要用到一個集合對象:Shapes.其方法又與Word坐標系有關(guān)系.

1.1 Shapes集合對象

Shapes集合對象是隸屬于 Document對象.Shapes集合對象代表文檔中或者文檔頁眉和頁腳中的所有圖形.本文運用Shapes集合對象的兩個方法添加形狀.Addline方法添加直線,AddTextbox方法添加文本框.

1.2 word的坐標系

Word坐標系的坐標原點在Document對象的左上角,橫向向右為x軸正方向,縱向向下為y軸正方向.量度值為磅,允許兩位小數(shù),可以滿足一般用戶的精度要求.

2 Addline方法和AddTextbox方法

運用vba繪制游標卡尺主要就是用Shapes集合對象的這兩種方法.

2.1 Addline方法

在文檔中添加一條直線.返回一個代表該直線的Shape對象,并將其添加到Shapes集合.

語法:expression.AddLine(BeginX,BeginY,EndX,EndY)

各參數(shù)解釋:

expression 必需.該表達式返回一個Shapes對象.

BeginX Single 類型,必需.直線起點相對于鎖定標記的水平位置,以磅為單位.

BeginY Single 類型,必需.直線起點相對于鎖定標記的垂直位置,以磅為單位.

EndX Single 類型,必需.直線終點相對于鎖定標記的水平位置,以磅為單位.

EndY Single 類型,必需.直線終點相對于鎖定標記的垂直位置,以磅為單位.

2.2 AddTextbox方法

在文檔中添加一個文本框.返回一個代表該文本框Shape對象,并將其添加到Shapes集合.

語法:expression.AddTextbox(Orientation,Left,Top,Width,Height)

各參數(shù)解釋:

expression 必需.該表達式返回“應用于”列表中的一個對象.

Orientation MsoTextOrientation 必需.指定文本的方向.

Left Single 類型,必需.文本框左側(cè)邊緣的位置,以磅為單位.

Top Single 類型,必需.文本框上部邊緣的位置,以磅為單位.

Width Single 類型,必需.文本框的寬度,以磅為單位.

Height Single 類型,必需.文本框的高度,以磅為單位.

提示:在編寫vba代碼時,要充分利用好vba的幫助.

3 算法及主程序

以10格游標卡尺為例進行算法說明,20格、50格游標卡尺算法類似.

ybcgs=10′游標尺格數(shù).

l=TextBox1.Text′ 通過文本框獲取需要繪制游標卡尺的讀數(shù)值,以mm單位.

zcl=Int(l)′ 需要繪制游標卡尺的讀數(shù)值的整數(shù)部分,主尺上的第一條刻度是zcl-3.

zczxfd=10′ 主尺最小分度的屏幕長度,以磅為單位.相當于游標卡尺主尺的最小分度1 mm.

zkds=7+ybcgs′ 主尺總刻度數(shù).

zccd=80+ybcgs*zczxfd′ 主尺總長度(磅).

If zcl<6 Then′ 通過以下算法返回主尺整厘米刻度值的第1個刻度值.

bzckd=Round((zcl/10),0)

Else

bzckd=Round((zcl/10)+0.1,0)

End If

ybzxfd=zczxfd*(1-(1/ybcgs))′ 游標卡尺最小分度的屏幕長度(磅).

Set docActive=ActiveDocument

docActive.Shapes.AddLine(80,180,80+zccd,180).Select′ 畫主尺橫線.

再利用line的屬性設置直線的格式(代碼略).

For i=1 To zkds′ 畫主尺刻度線.

If(zcl-4+i)/10=bzckd Then

docActive.Shapes.AddLine(80+zczxfd*i,172,80+zczxfd*i,180).Select′畫整數(shù)厘米刻度線.

docActive.Shapes.AddTextbox

(msoTextOrientationHorizontal,80+zczxfd*i-2,162,8,10).Select′在整數(shù)厘米刻度線位置添加一個文本框.再利用TextFrame屬性設置文本框的格式(代碼略).

Selection.TypeText Text:=bzckd′ 寫整數(shù)厘米刻度值.

bzckd=bzckd+1

ElseIf l<6 And i=1 Then′ 讀數(shù)值小于6mm,主尺的第一個刻度線為零值.

docActive.Shapes.AddLine(80+zczxfd*i,172,80+zczxfd*i,180).Select′ 畫整數(shù)厘米刻度線

docActive.Shapes.AddTextbox

(msoTextOrientationHorizontal,80+zczxfd*i-2,162,8,10).Select′在整數(shù)厘米刻度線位置添加一個文本框.再利用TextFrame屬性設置文本框的格式(代碼略).Selection.TypeText Text:=bzckd′ 寫整數(shù)厘米刻度值

bzckd=bzckd+1′ 刻度值加 1,返回下一個整厘米刻度值.

zcl=3′因為一般主尺的第一條刻度線是zcl-3,而讀數(shù)值小于6mm的第一條刻度線是零,故要給zcl重新賦值,根據(jù)算法推算為zcl=3.

Else

docActive.Shapes.AddLine(80+zczxfd*i,175,80+zczxfd*i,180).Select′ 畫主尺刻度線.

End If Next

′畫游標尺刻度線

n=0

If l<6 Then′ 通過以下算法返回游標尺零刻度線的位置.

ybl=zczxfd*(l+1)

Else

ybl=zczxfd*(l-Int(l)+4)

End If

For II=0 To ybcgs ′畫游標尺的刻度線.

If II=5*n Then ′每 5格標一個格數(shù)值

n=n+1

docActive.Shapes.AddLine(80+ybl+ybzxfd*II,180,80+ybl+ybzxfd*II,187).Select

docActive.Shapes.AddTextbox (msoTextOrientationHorizontal,80+ybl+ybzxfd*II-2,188,15,10).Select

再利用TextFrame屬性設置文本框的格式(代碼略).

Selection.TypeText Text:=II

Else

docActive.Shapes.AddLine

(80+ybl+ybzxfd*II,180,80+ybl+ybzxfd*II,185).Select

End If

Next

With docActive.Shapes′ 畫游標尺的邊框.

AddLine(75+ybl,180,75+ybl,200).Select

AddLine(88+ybl+ybzxfd*ybcgs,180,88+ybl+ybzxfd*ybcgs,200).Select

AddLine(75+ybl,200,88+ybl+ybzxfd*ybcgs,200).Select

End With

繪制游標卡尺的效果如圖1所示:

圖1

4 結(jié)束語

利用vba編程能拓展office辦公軟件的功能和提升工作效率,提高教學質(zhì)量.此代碼也可移植到PPT中制作交互性很強的課件,也可仿照著繪制其他基本測量工具的讀數(shù)練習,如螺旋測微器、電表讀數(shù)等.

猜你喜歡
游標卡尺文本框刻度
巧用文本框?qū)崿F(xiàn)PPT多圖片排版
關(guān)于游標卡尺讀數(shù)問題易錯點的剖析
PPT文本框的另類應用
淺析游標卡尺的讀數(shù)策略
歐姆表的刻度真的不均勻嗎?
——一個解釋歐姆表刻度不均勻的好方法
被吃掉刻度的尺子
誰大誰小
測量三字歌
文本框酷變3D效果
文本框在地理課件中的應用