• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      如何運用vba繪制游標卡尺

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

      張小建

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

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

      1 Word的對象及坐標系

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

      1.1 Shapes集合對象

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

      1.2 word的坐標系

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

      2 Addline方法和AddTextbox方法

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

      2.1 Addline方法

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

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

      各參數解釋:

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

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

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

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

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

      2.2 AddTextbox方法

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

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

      各參數解釋:

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

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

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

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

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

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

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

      3 算法及主程序

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

      ybcgs=10′游標尺格數.

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

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

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

      zkds=7+ybcgs′ 主尺總刻度數.

      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′畫整數厘米刻度線.

      docActive.Shapes.AddTextbox

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

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

      bzckd=bzckd+1

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

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

      docActive.Shapes.AddTextbox

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

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

      zcl=3′因為一般主尺的第一條刻度線是zcl-3,而讀數值小于6mm的第一條刻度線是零,故要給zcl重新賦值,根據算法推算為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格標一個格數值

      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 結束語

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

      猜你喜歡
      游標卡尺文本框刻度
      一種新型游標卡尺設計
      巧用文本框實現PPT多圖片排版
      關于游標卡尺讀數問題易錯點的剖析
      PPT文本框的另類應用
      歐姆表的刻度真的不均勻嗎?
      ——一個解釋歐姆表刻度不均勻的好方法
      被吃掉刻度的尺子
      誰大誰小
      測量三字歌
      文本框酷變3D效果
      文本框在地理課件中的應用
      子洲县| 富蕴县| 乐昌市| 烟台市| 尉氏县| 长武县| 普兰店市| 榕江县| 唐河县| 乌拉特前旗| 万年县| 正镶白旗| 上思县| 拉孜县| 长泰县| 新源县| 阿坝县| 洪湖市| 泰州市| 通榆县| 镇原县| 阜南县| 都兰县| 视频| 新邵县| 绵阳市| 隆林| 聂荣县| 阜平县| 西丰县| 河西区| 施甸县| 娄烦县| 镇安县| 仙游县| 且末县| 从化市| 慈溪市| 望江县| 治多县| 固始县|