ผู้แต่ง: Yang Zhongxun สาขาวิชา: การพัฒนาซอฟต์แวร์คอมพิวเตอร์และการประยุกต์ใช้ ความสามารถทางภาษา: TOFEL633 GRE2140
อีเมล: [email protected]
ในการพัฒนาระบบ Mis จริง บางครั้งเราจำเป็นต้องดาวน์โหลดข้อมูลรายงานในหน้าปัจจุบันไปยังคอมพิวเตอร์ในระบบในรูปแบบของเอกสาร Word การใช้งานนี้ไม่ใช่เรื่องยาก แต่บางครั้งเราจำเป็นต้องทำการตั้งค่าบางอย่างให้กับรูปแบบของเอกสาร Word ที่ดาวน์โหลดมา เช่น สีชื่อเรื่อง ขนาดตัวอักษร ระยะห่างระหว่างคำ เป็นต้น ในกรณีนี้ เราต้องใช้ฟังก์ชันมาโครที่มาพร้อมกับ Word
ตัวอย่างเช่น เราต้องการแสดงชื่อเรื่องของรายงานนี้ในรูปแบบต่อไปนี้ในเอกสาร Word: แบบอักษร 14 พอยต์ ตัวหนา และจัดกึ่งกลาง ก่อนอื่นเราต้องบันทึกคำสั่งแมโครที่เกี่ยวข้องใน Word เปิด Word สร้างเอกสารใหม่ พิมพ์บรรทัดข้อความด้วยตนเอง จากนั้นเลือกเครื่องมือ -> มาโคร -> บันทึกคำสั่งมาโครใหม่ ตั้งชื่อมาโครใหม่เช่น Macro1 และดำเนินการข้างต้น (ขนาด 14 ตัวหนา กึ่งกลาง -aligned) Word จะบันทึกการกระทำเหล่านี้เป็นคำสั่ง Vbscript ที่เกี่ยวข้องโดยอัตโนมัติ จากนั้นเลือกเครื่องมือ -> มาโคร -> คำสั่งมาโคร เลือกมาโคร Macro1 ที่เราเพิ่งกำหนดไว้ และคุณสามารถดูเนื้อหาได้ ในตัวอย่างนี้ คำสั่งแมโครที่เราบันทึกไว้จะเป็นดังนี้:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'การจัดตำแหน่งกึ่งกลาง
Selection.Font.Bold = wdToggle 'จอแสดงผลตัวหนา
Selection.Font.Size = 14 '
เนื่องจากภาษาสคริปต์ของคำสั่งมาโครคือ Vbscript เราจึงสามารถใช้คำสั่งข้างต้นใน VB ได้โดยไม่ต้องทำการเปลี่ยนแปลงใดๆ ด้วยวิธีนี้ เราสามารถเขียนโค้ด VB ต่อไปนี้เพื่อให้บรรลุฟังก์ชันที่เราต้องการได้ รหัสจะเป็นดังนี้:
WdApp.Selection.Font.Bold = wdToggle 'ตัวหนาแสดง
WdApp.Selection.Font.Size = ฟอนต์ขนาด 14 '14
WdApp.Selection.TypeText ("ชื่อรายงาน") 'ชื่อรายงาน
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter 'จัดตำแหน่งตรงกลาง
WdApp.Selection.Font.Bold = wdToggle 'ยกเลิกการใช้ตัวหนา ใน
ทำนองเดียวกัน หากเราต้องการดำเนินการประมวลผลอื่นในเอกสาร Word เพียงทำซ้ำขั้นตอนข้างต้น ต่อไปนี้เป็นตัวอย่างที่สมบูรณ์ของการประมวลผลเอกสาร Word ของฉัน:
ฟังก์ชั่นส่วนตัว SaveAsWord(ByRef MyRecord As Recordset, ByVal DocFileName As String, ByRef OutMessage As String) As Integer
'************************************************ * ***********************
-
'คำอธิบาย: บันทึกข้อมูลในชุดข้อมูลเป็นไฟล์ DOC
-
'พารามิเตอร์:
-
'ชุดข้อมูล MyRecord
'ชื่อไฟล์ DocFileName WORD (ไม่มีเส้นทาง ดูตัวแปรอินสแตนซ์ sPath สำหรับเส้นทาง)
'ส่งคืนข้อมูลการทำงานของ OutMessage
-
'ผลตอบแทน: 1 สำเร็จ -1 ล้มเหลว'
-
'************************************************ * ***********************
'เริ่มต้นแอปพลิเคชัน Word
ผิดพลาด เคลียร์
เมื่อเกิดข้อผิดพลาด GoTo Err_All
หรี่ WdApp เป็น Word.Application
ตั้งค่า WdApp = CreateObject("Word.Application")
'แทรกข้อมูล
Dim colloop As Integer 'หมายเลขคอลัมน์
Dim rowloop As Integer 'หมายเลขแถว
Dim colMax As Integer 'จำนวนคอลัมน์
Dim rowMax As Integer 'จำนวนแถว
หรี่ wdcell เป็นความกว้างของจำนวนเต็ม
Dim UnitEnd As Integer 'ตัดจุดสิ้นสุด
Dim UnitName As String 'ชื่อยูนิต'
Dim BbDate As String 'รอบระยะเวลารายงาน
wdcell=12
colMax = MyRecord.Fields.count
rowMax = MyRecord.RecordCount
WdApp.Documents.Add
'รับหน่วยรายงาน'
UnitEnd = InStr(sBBDetail, "จุด")
UnitName = Mid(sBBDetail, 1, UnitEnd - 2)
BbDate = กลาง(sBBDetail, UnitEnd, Len(sBBDetail))
ถ้า MyRecord.Fields.count >= 10 จากนั้น
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
อื่น
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientPortrait
สิ้นสุดถ้า
'รายงานชื่อ.
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.Font.Size = 14
WdApp.Selection.TypeText (sbbmc)
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.TypeParagraph
'ชื่อหน่วยการรายงาน
WdApp.Selection.Font.color = wdColorBlack
WdApp.Selection.Font.Size = 11
WdApp.Selection.TypeText (ชื่อหน่วย)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
'ช่วงรายงานตัว
WdApp.Selection.TypeText (BbDate)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
WdApp.Selection.TypeParagraph
'สร้างส่วนหัวของคอลัมน์
'wdApp.Selection.HomeKey wdLine, wdExtend
'dApp.Selection.Font.Bold = wdToggle
WdApp.ActiveDocument.Tables.Add WdApp.Selection.Range, rowMax, colMax
หรี่ฉันเป็นจำนวนเต็ม
ทำ
สำหรับ colloop = 0 ถึง colMax - 1
WdApp.Selection.Font.Size = 9
ถ้าฉัน = 0 แล้ว
'ชื่อในตารางจะแสดงเป็นตัวหนา
WdApp.Selection.Font.Bold = wdToggle
'ตั้งค่าสีพื้นหลังของแถวชื่อตารางให้เป็นสีเทา โดยให้ระดับสีเทาเท่ากับ 30
ด้วย WdApp.Selection.Cells
ด้วยการแรเงา
.พื้นผิว = wdTextureNone
.ForegroundPatternColor = wdColorอัตโนมัติ
.BackgroundPatternColor = wdColorGray30
จบด้วย
จบด้วย
สิ้นสุดถ้า
'บรรทัดสุดท้ายจัดชิดขวาและส่วนที่เหลือจัดชิดซ้าย
ถ้าฉัน > 0 แล้ว
ถ้า MyRecord.Fields.Item(colloop).Name = "ZBMC" หรือ MyRecord.Fields.Item(colloop).Name = "Indicator Name" จากนั้น
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
อื่น
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
สิ้นสุดถ้า
สิ้นสุดถ้า
ถ้า i = 0 And (MyRecord.Fields.Item(colloop).Name = "SXH" หรือ MyRecord.Fields.Item(colloop).Name = "Sequence Number") จากนั้น
WdApp.Selection.TypeText ("หมายเลขซีเรียล")
อื่น
WdApp.Selection.TypeText (CStr(MyRecord.Fields.Item(colloop).value))
สิ้นสุดถ้า
ถ้า (i <> rowMax - 1 หรือ (i = rowMax - 1 และ colloop < colMax - 1)) จากนั้น
WdApp.Selection.MoveRight (wdcell)
สิ้นสุดถ้า
ต่อไป
ฉัน = ฉัน + 1
MyRecord.MoveNext
วนซ้ำจนกระทั่ง MyRecord.EOF
WdApp.ActiveDocument.SaveAs DocFileName, 0, เท็จ, "", จริง, "", เท็จ, เท็จ, เท็จ, เท็จ, เท็จ
WdApp.ออก
บันทึกเป็นเวิร์ด = 1
ออกจากฟังก์ชัน
ข้อผิดพลาด_ทั้งหมด:
ตั้งค่า WdApp = ไม่มีเลย
บันทึกเป็นWord = -1
OutMessage = ข้อผิดพลาดคำอธิบาย
ออกจากฟังก์ชัน
End Function
เอาล่ะ ฉันคิดว่าคุณมีความเข้าใจในการใช้คำสั่งแมโคร Word เพื่อพัฒนาส่วนประกอบ ASP ใน VB แล้ว ตราบใดที่คุณใช้มันมากขึ้น คุณจะคุ้นเคยกับมันอย่างรวดเร็ว