我是一名中學教師,學生參加中考要進行資訊技術考試,有一套考試系統,可以進行發卷、判分等作業,但是平常學生練習操作題的時候,學生做完保存之后并不知道對錯與否,我想做一個判分系統,從網上找了很多資料,發現自己的知識能力有限,很難達到,所以我想一步一步的來,先撰寫一些只針對某一個題目、一個檔案的操作判斷,逐步的提高。
我學過一點VC的編程知識,但是網上的資料顯示,最好是用VB來撰寫比較好,并且用office里的vba宏來實作就更簡單了。學了一段時間,對vba多少有了些了解,但是在具體應用的時候還是碰到了些問題,希望高人指點一二。
如下是關于一個WORD操作題的題目要求:
1.將第一行標題文字設定為:“居中”、“三號”、“藍色”,并將底紋顏色設定為:“綠色”。(5分)
2.將正文所有段落設定為:首行縮進2個字符,行距為:固定值18磅。(3分)
3.將檔案的頁面設定為:A4紙型,上下頁邊距都為2.1cm,左右頁邊距都為2.5cm(5分)
4.在文中最后插入一個2行3列的表格,外邊框線為1.5磅紅色雙線,內邊框線為0.5磅綠色單線。(2分)
進行到第三步時出現了問題,錄制宏時的代碼是:
With ActiveDocument.Styles(wdStyleNormal).Font
If .NameFarEast = .NameAscii Then
.NameAscii = ""
End If
.NameFarEast = ""
End With
With ActiveDocument.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientPortrait
.TopMargin = CentimetersToPoints(2.1)
.BottomMargin = CentimetersToPoints(2.1)
.LeftMargin = CentimetersToPoints(2.5)
.RightMargin = CentimetersToPoints(2.5)
.Gutter = CentimetersToPoints(0)
.HeaderDistance = CentimetersToPoints(1.5)
.FooterDistance = CentimetersToPoints(1.75)
.PageWidth = CentimetersToPoints(21)
.PageHeight = CentimetersToPoints(29.7)
.FirstPageTray = wdPrinterDefaultBin
.OtherPagesTray = wdPrinterDefaultBin
.SectionStart = wdSectionNewPage
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.VerticalAlignment = wdAlignVerticalTop
.SuppressEndnotes = False
.MirrorMargins = False
.TwoPagesOnOne = False
.BookFoldPrinting = False
.BookFoldRevPrinting = False
.BookFoldPrintingSheets = 1
.GutterPos = wdGutterPosLeft
.LayoutMode = wdLayoutModeLineGrid
End With
根據錄制宏的代碼,判斷正確的代碼就可以寫成如下:
'str為輸出結果
'判斷紙型
If ActiveDocument.PageSetup.PageWidth = CentimetersToPoints(21) and ActiveDocument.PageSetup..PageHeight = CentimetersToPoints(29.7) Then
str = str & vbCrLf & "3 將檔案的頁面設定為 A4紙型 -------------------正確"
Else
str = str & vbCrLf & "3 將檔案的頁面設定為 A4紙型 -----------------不正確"
End If
'判斷頁邊距,只是實驗先判斷一個上邊距
If ActiveDocument.PageSetup.TopMargin = CentimetersToPoints(2.1) Then
str = str & vbCrLf & "3 頁邊距 ----------------------正確"
Else
str = str & vbCrLf & "3 頁邊距 -------------------不正確"
End If
判斷紙型結果輸出不正確,從網上找了點資料,最后把if陳述句的條件改成ActiveDocument.PageSetup.PaperSize = wdPaperA4就可以正確進行判斷,但是設定頁邊距卻怎么也解決不了,使用那個條件怎么也得不出正確的輸出結果,不知道是該用什么樣的條件來進行判斷,請各位高手支招。
uj5u.com熱心網友回復:
QQ:5507350本人曾經供職于ATA,專門制作試題。
可以合作合作。
uj5u.com熱心網友回復:
不是留QQ了嘛。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/85520.html
標籤:VBA
上一篇:vb用api創建子執行緒。
