หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 3 1 7 8 8 9

7 ธันวาคม พ.ศ.2549
651 Users On-Line.
Visitors - Page views
 8 6 5 1 5 4 7
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

MS Visual Basic 6 กับ MS Excel - ตอนการทำเครื่องคิดเลขมหัศจรรย์

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 18/8/2553   เวลา: 10:21
(อ่าน : 27087) 
ก็ไม่อยากสาธยายมากนักครับ ว่ากันง่ายๆ เว้ากันซื่อๆ ตามประสาของผู้ชายไม่เจ้าชู้ เปรียบเหมือนงูไม่มีพิษ 55555+ ... หลักการของโปรแกรมไม่ได้มีอะไรมากเลย เป็นการเขียนโค้ดผ่านทาง VB6 เพื่อเข้าไปขอใช้งานเซลล์ที่อยู่ใน MS Excel ... ก็คือ การขอใช้สูตร หรือ สมการต่างๆของ Excel นั่นเอง (หรือที่เราเขียนขึ้นมาเองก็ได้) ... อันดับแรกต้องสร้างตัวแปร Object สำหรับ Excel ก่อน จากนั้นก็สั่งให้เปิด WorkBook และ WorkSheet ตามลำดับ พอเข้าถึง WorkSheet ได้แล้ว ก็ระบุสูตร สมการ ลงในช่องเซลล์ที่ต้องการ โดยต้องมีเครื่องหมายเท่ากับ (=) นำหน้า เช่น =(5 ^ 2) + 10 / 4 ... สุดท้ายก็ส่งผลการคำนวณในเซลล์นั้นๆกลับมายัง VB6 ... เป็นอันจบพิธีการ ... เรื่องประโยชน์ของการนำไปใช้งาน More Than Word ... เหนือคำบรรยายครับ ... พี่น้อง
ดาวน์โหลด Source Code สำหรับผู้ใช้งาน Visual Basic 6
ดาวน์โหลด Source Code สำหรับ MS Visual Basic 6.0 - Service Pack 6
 ดาวน์โหลด Visual Basic 6.0 SP5: Run-Time Redistribution Pack
 ดาวน์โหลด Microsoft Data Access Object (MDAC) และ Jet 4.0 Update
 ดาวน์โหลด Microsoft Visual Basic Service Pack 6
เริ่มต้นกระบวนการทำงาน

Design Time


การคำนวณไม่ได้ผิดน่ะครับ ... ผมเลยถือโอกาสยกตัวอย่างเรื่องของ ลำดับความสำคัญของ Operator มาไว้ให้ได้รับชมกันด้วย นั่นคือ เครื่องหมายการคูณ และ การหาร จะมีความสำคัญที่สูงกว่าเครื่องหมายบวก และ ลบ ... คือ 5 ยกกำลัง 2 เท่ากับ 25 แต่มันยังไม่ได้บวกต่อน่ะครับ เพราะติดเครื่องหมายหาร คือ 10 ต้องหารด้วย 4 ก่อน ก็เท่ากับ 2.5 (โดยที่ไม่ต้องใส่วงเล็บก็ได้) จากนั้นค่อยนำเอา 25 + 2.5 คำตอบคือ 27.5 ... ต้องระวังเรื่องลำดับความสำคัญเอาไว้ด้วยน่ะขอรับกระผม


Option Explicit

' #####################################################
' การประมวลผลของสูตร หรือ สมการต่างๆ
' รายละเอียดเพิ่มเติม อ่านได้ที่ ... วิธีการทำให้ Microsoft Excel ทำงานอัตโนมัติจาก Visual Basic
' งานนี้ผมไม่เรียก Excel Object Library (Reference) มาใช้งาน เพราะขี้เกียจคลิ๊ก ... อิอิอิอิอิ
' #####################################################
Private Sub cmdEquation_Click()
    
    On Error GoTo ErrorHandler

    ' ไม่มีการป้อนสูตร สมการใดๆเข้ามาก็ให้ออกไปจากโปรแกรมย่อยเลย
    If Trim(txtEquation.Text) = "" Or Len(Trim(txtEquation.Text)) = 0 Then Exit Sub
    
    ' ประกาศตัวแปรใช้งาน Excel Object
    Dim ExcelApp As Object
    
    ' ประกาศตัวแปรใช้งาน WorkSheet ของ ExcelApp Object
    Dim ExcelSheet As Object

    ' สร้าง Excel Object ขึ้นมาใช้งาน ในชื่อ ExcelApp
    Set ExcelApp = CreateObject("Excel.Application")

    ' สร้าง Workbook ขึ้นมา ... ก็ไฟล์ XLS ตัวใหม่นั่นแหละครับ เป็น Temporary File (ชั่วคราว)
    ' หากต้องการเปิด WorkBook เดิม ก็ใช้ Open Method ตามด้วยไฟล์ที่ต้องการเอาครับ
    ExcelApp.Workbooks.Add
    
    ' กำหนดให้ใช้งาน Sheet ใดๆ ... เช่น Sheet1, Sheet2
    Set ExcelSheet = ExcelApp.ActiveSheet
    
    ' การคำนวณใน Excel จะต้องมีเครื่องหมาย = นำหน้าเสมอครับ
    ' ก็จะมีลักษณะดังนี้ =(5 ^ 2) + 10 / 4
    ' ใส่สูตร หรือ สมการ ที่ต้องการเอาไปไว้ที่หลักใด หรือ แถวใดก็ได้ครับ ... เช่น
    ExcelSheet.Cells(1, 1) = "=" & txtEquation.Text

    ' ตอนนี้ Excel มันก็ทำงานอยู่ฉากหลังแทนแล้วล่ะครับ โดยที่ไม่ต้องไปกำหนดค่าใดๆให้มันเลย

    ' รับค่าผลลัพธ์ที่ได้ใส่ลงใน TextBox เพื่อแสดงคำตอบ
    txtAnswer.Text = ExcelSheet.Cells(1, 1)

    ' ปิดการใช้งาน Workbook โดยไม่ต้องมีการบันทึกไฟล์
    ExcelApp.ActiveWorkbook.Close False

    ' ปิดการใช้งาน MS Excel
    ExcelApp.Quit
    
    ' ล้างให้ออก ... จาก Memory ของฉัน ... 55555+
    Set ExcelSheet = Nothing:    Set ExcelApp = Nothing
    
ExitProc:
    Exit Sub
    
ErrorHandler:
    
    ' ขณะโปรแกรมกำลังทำงาน (Run Time) ดัก Error จาก On Error GoTo ErrorHandler
    If Err.Number <> 0 Then MsgBox "Error " & Err.Number & vbCrLf & Err.Description
    Resume ExitProc
    
End Sub

Private Sub Form_Load()
    Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
    
    ' เคลียร์ค่าการแสดงผล
    txtAnswer.Text = ""
    
    ' ใส่สูตร สมการตัวอย่างเพื่อทำการทดสอบ
    txtEquation.Text = "(5 ^ 2) + 10 / 4"
    
    ' นอกจากนี้ก็ยังสามารถใช้พวกสูตรต่างๆที่อยู่ใน MS Excel ได้ด้วยเหมือนกันครับ ... พี่น้อง
    
    ' Excel 2003 := คำนวณหากำลังสองของห้า (5 ^ 2 = 25)
    ' txtEquation.Text = "POWER(5,2)"
    
    ' Excel 2003 := ค่าแฟกทอเรียลของ 6 หรือ 6 * 5 * 4 * 3 * 2 * 1  = 720
    ' txtEquation.Text = "FACT(6)"
    
    ' เกี่ยวกับวันที่ เช่น หากวันนี้เป็นวันที่ 15/08/2553
    ' Excel 2003 := แสดงรูปแบบวันที่ คือ 15/08/2553
    ' txtEquation.Text = "DATE(2010,8,15)"
    ' Excel 2003 :=  ลบจำนวนวันออกไป 2 วัน จะได้ 13/08/2553
    ' txtEquation.Text = "TODAY() - 2"
    
    ' อื่นๆอีกมากมายครับ ... ลองนำมาใช้ประโยชน์ดูกันเอาเลย

End Sub

Private Sub cmdExit_Click()
    Set frmVB6ExcelCalculator = Nothing
    End
End Sub
Conclusion:
บทความนี้ก็ไม่มีอะไรมากมายครับ มันก็เรื่องง่ายๆใกล้ตัว ที่นำเอามาคิดจินตนาการ เพื่อการเรียนรู้ และ พัฒนาฝีมือ รวมไปถึงการนำไปประยุกต์ดัดแปลงใช้งาน ในชีวิตประจำวันของเราก็ได้ ไม่ว่าจะเป็นเรื่องชีวิตจริงของการทำงาน เช่น ใช้ในการคำนวณทางตัวเลข ค่าเงิน งานสถิติต่างๆ หรือ ในชีวิตการเรียน ทางด้านคณิตศาสตร์ วิทยาศาสตร์ และอื่นๆมากมาย ... เพื่อลดปมด้อย เอ้ย ขยายขีดความสามารถของ MS Visual Basic 6.0 ให้มีมากขึ้น ...

จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560