วิธีการทำให้ Microsoft Excel เป็นอัตโนมัติจาก Visual Basic .NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 301982 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

บทความนี้อธิบายวิธีการสร้างการทำงานอัตโนมัติไคลเอ็นต์สำหรับ Microsoft Excel โดยใช้ Microsoft Visual Basic .NET

ข้อมูลเพิ่มเติม

ดำเนินการอัตโนมัติคือ กระบวนการที่อนุญาตให้โปรแกรมประยุกต์ที่กำลังเขียนในภาษาเช่น Visual Basic โดยทางโปรแกรมควบคุมโปรแกรมประยุกต์อื่น ดำเนินการอัตโนมัติไปที่ Excel ช่วยให้คุณสามารถทำการดำเนินการเช่นการสร้างสมุดงานใหม่ การเพิ่มข้อมูลไปยังสมุดงาน หรือสร้างแผนภูมิ กับ Excel และโปรแกรมประยุกต์ Microsoft Office อื่น ๆ แบบเสมือนจริงทั้งหมดของการดำเนินการที่คุณสามารถทำด้วยตนเองผ่านทางอินเทอร์เฟซสำหรับผู้ใช้สามารถยังสามารถทำได้โดยทางโปรแกรมโดยอัตโนมัติ

Excel exposes ฟังก์ชันนี้โดยทางโปรแกรม โดยมีรูปแบบของวัตถุ รูปแบบวัตถุคือ ชุดของคลาสที่และวิธีการที่ทำหน้าที่เป็นอื่น ๆ ไปยังส่วนประกอบทางตรรกะของ Excel ตัวอย่างเช่น ไม่มีโปรแกรมประยุกต์วัตถุ คำสมุดงานวัตถุ และ aแผ่นงานวัตถุ แต่ละซึ่งประกอบด้วยฟังก์ชันการทำงานของส่วนประกอบต่าง ๆ ของ Excel เมื่อต้องการเข้าถึงรูปแบบวัตถุจาก Visual Basic .NET คุณสามารถตั้งค่าการอ้างอิงโครงการในไลบรารีชนิด

บทความนี้อธิบายวิธีการตั้งค่าการอ้างอิงโครงการที่เหมาะสมในไลบรารีชนิด Excel สำหรับ Visual Basic .NET และแสดงตัวอย่างรหัสการทำให้ Excel

สร้างไคลเอ็นต์การดำเนินการอัตโนมัติสำหรับ Microsoft Excel

  1. เริ่ม Microsoft Visual Studio .NET
  2. ในการแฟ้ม:เมนู คลิกใหม่แล้ว คลิกProject. เลือกแอพลิเคชันของ windowsจากชนิดโครงการ Visual Basic Form1 จะถูกสร้างขึ้นตามค่าเริ่มต้น
  3. เพิ่มการอ้างอิงถึงวัตถุ Microsoft Excel ไลบรารี. โดยให้ทำตามขั้นตอนต่อไปนี้::
    1. ในการProjectเมนู คลิกเพิ่มการอ้างอิง.
    2. ในการcomแท็บ ค้นหาการไลบรารีวัตถุ Microsoft Excelแล้ว คลิกเลือก.

      หมายเหตุ:Microsoft Office 2003 มีแอสเซมบลี Interop หลัก (PIAs) Microsoft Office XP ไม่สามารถรวม PIAs แต่จะสามารถดาวน์โหลดสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Office XP PIAs คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
      328912แอสเซ Microsoft Office XP หลัก interop มบลี (PIAs) พร้อมใช้งานสำหรับการดาวน์โหลด
    3. คลิกตกลงในการเพิ่มการอ้างอิงกล่องโต้ตอบเพื่อยอมรับการเลือกของคุณ
  4. ในการมุมมองเมนู การเลือกกล่องเครื่องมือเมื่อต้องการแสดงในกล่องเครื่องมือ และเพิ่มปุ่มไป Form1 แล้ว
  5. คลิกสองครั้งbutton1. หน้าต่างรหัสสำหรับแบบฟอร์มปรากฏขึ้น
  6. ในหน้าต่างรหัส ค้นหาตำแหน่งรหัสต่อไปนี้:
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    					
    แทนรหัสก่อนหน้านี้ ด้วยรหัสต่อไปนี้:
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
            Dim oXL As Excel.Application
            Dim oWB As Excel.Workbook
            Dim oSheet As Excel.Worksheet
            Dim oRng As Excel.Range
    
            ' Start Excel and get Application object.
            oXL = CreateObject("Excel.Application")
            oXL.Visible = True
    
            ' Get a new workbook.
            oWB = oXL.Workbooks.Add
            oSheet = oWB.ActiveSheet
    
            ' Add table headers going cell by cell.
            oSheet.Cells(1, 1).Value = "First Name"
            oSheet.Cells(1, 2).Value = "Last Name"
            oSheet.Cells(1, 3).Value = "Full Name"
            oSheet.Cells(1, 4).Value = "Salary"
    
            ' Format A1:D1 as bold, vertical alignment = center.
            With oSheet.Range("A1", "D1")
                .Font.Bold = True
                .VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
            End With
    
            ' Create an array to set multiple values at once.
            Dim saNames(5, 2) As String
            saNames(0, 0) = "John"
            saNames(0, 1) = "Smith"
            saNames(1, 0) = "Tom"
            saNames(1, 1) = "Brown"
            saNames(2, 0) = "Sue"
            saNames(2, 1) = "Thomas"
            saNames(3, 0) = "Jane"
    
            saNames(3, 1) = "Jones"
            saNames(4, 0) = "Adam"
            saNames(4, 1) = "Johnson"
    
            ' Fill A2:B6 with an array of values (First and Last Names).
            oSheet.Range("A2", "B6").Value = saNames
    
            ' Fill C2:C6 with a relative formula (=A2 & " " & B2).
            oRng = oSheet.Range("C2", "C6")
            oRng.Formula = "=A2 & "" "" & B2"
    
            ' Fill D2:D6 with a formula(=RAND()*100000) and apply format.
            oRng = oSheet.Range("D2", "D6")
            oRng.Formula = "=RAND()*100000"
            oRng.NumberFormat = "$0.00"
    
            ' AutoFit columns A:D.
            oRng = oSheet.Range("A1", "D1")
            oRng.EntireColumn.AutoFit()
    
            ' Manipulate a variable number of columns for Quarterly Sales Data.
            Call DisplayQuarterlySales(oSheet)
    
            ' Make sure Excel is visible and give the user control
            ' of Excel's lifetime.
            oXL.Visible = True
            oXL.UserControl = True
    
            ' Make sure that you release object references.
            oRng = Nothing
            oSheet = Nothing
            oWB = Nothing
            oXL.Quit()
            oXL = Nothing
    
            Exit Sub
    Err_Handler:
            MsgBox(Err.Description, vbCritical, "Error: " & Err.Number)
        End Sub
    
        Private Sub DisplayQuarterlySales(ByVal oWS As Excel.Worksheet)
            Dim oResizeRange As Excel.Range
            Dim oChart As Excel.Chart
            Dim oSeries As Excel.Series
            Dim iNumQtrs As Integer
            Dim sMsg As String
            Dim iRet As Integer
    
    
            ' Determine how many quarters to display data for.
            For iNumQtrs = 4 To 2 Step -1
                sMsg = "Enter sales data for" & Str(iNumQtrs) & " quarter(s)?"
                iRet = MsgBox(sMsg, vbYesNo Or vbQuestion _
                   Or vbMsgBoxSetForeground, "Quarterly Sales")
                If iRet = vbYes Then Exit For
            Next iNumQtrs
    
            ' Starting at E1, fill headers for the number of columns selected.
            oResizeRange = oWS.Range("E1", "E1").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Formula = "=""Q"" & COLUMN()-4 & CHAR(10) & ""Sales"""
    
            ' Change the Orientation and WrapText properties for the headers.
            oResizeRange.Orientation = 38
            oResizeRange.WrapText = True
    
            ' Fill the interior color of the headers.
            oResizeRange.Interior.ColorIndex = 36
    
            ' Fill the columns with a formula and apply a number format.
            oResizeRange = oWS.Range("E2", "E6").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Formula = "=RAND()*100"
            oResizeRange.NumberFormat = "$0.00"
    
            ' Apply borders to the Sales data and headers.
            oResizeRange = oWS.Range("E1", "E6").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Borders.Weight = Excel.XlBorderWeight.xlThin
    
            ' Add a Totals formula for the sales data and apply a border.
            oResizeRange = oWS.Range("E8", "E8").Resize(ColumnSize:=iNumQtrs)
            oResizeRange.Formula = "=SUM(E2:E6)"
            With oResizeRange.Borders(Excel.XlBordersIndex.xlEdgeBottom)
                .LineStyle = Excel.XlLineStyle.xlDouble
                .Weight = Excel.XlBorderWeight.xlThick
            End With
    
            ' Add a Chart for the selected data.
            oResizeRange = oWS.Range("E2:E6").Resize(ColumnSize:=iNumQtrs)
            oChart = oWS.Parent.Charts.Add
            With oChart
                .ChartWizard(oResizeRange, Excel.XlChartType.xl3DColumn, , Excel.XlRowCol.xlColumns)
                oSeries = .SeriesCollection(1)
                oSeries.XValues = oWS.Range("A2", "A6")
                For iRet = 1 To iNumQtrs
                    .SeriesCollection(iRet).Name = "=""Q" & Str(iRet) & """"
                Next iRet
                .Location(Excel.XlChartLocation.xlLocationAsObject, oWS.Name)
            End With
    
            ' Move the chart so as not to cover your data.
            With oWS.Shapes.Item("Chart 1")
                .Top = oWS.Rows(10).Top
                .Left = oWS.Columns(2).Left
            End With
    
            ' Free any references.
            oChart = Nothing
            oResizeRange = Nothing
        End Sub
    					
  7. เพิ่มรหัสต่อไปนี้ที่ด้านบนของ Form1.vb:
    Imports Microsoft.Office.Core
    					

ทดสอบการไคลเอ็นต์การดำเนินการอัตโนมัติ

  1. กด F5 เพื่อสร้าง และเรียกใช้โปรแกรม
  2. ในแบบฟอร์ม คลิกbutton1. โปรแกรมเริ่มการทำงานของ Excel และ populates ข้อมูลบนแผ่นงานใหม่
  3. เมื่อคุณได้รับการพร้อมท์ให้ใส่ข้อมูลการขายรายไตรมาส คลิกใช่. แผนภูมิที่ถูกลิงค์ไปยังข้อมูลรายไตรมาสถูกเพิ่มไปยังแผ่นงาน

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม โปรดแวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft Developer Network (MSDN)::
Microsoft Office การพัฒนากับ Visual Studio
.aspx http://msdn2.microsoft.com/en-us/library/aa188489 (office.10)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Excel และ Visual Basic คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
219151วิธีการทำให้ Microsoft Excel ทำงานอัตโนมัติจาก Visual Basic

คุณสมบัติ

หมายเลขบทความ (Article ID): 301982 - รีวิวครั้งสุดท้าย: 10 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
Keywords: 
kbpia kbautomation kbhowto kbmt KB301982 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:301982

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com