Как для автоматизации приложения Microsoft Excel из Visual Basic.NET

Переводы статьи Переводы статьи
Код статьи: 301982 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

В данной статье демонстрируется создание автоматизации клиент Microsoft Excel с помощью Microsoft Visual Basic.NET.

Дополнительная информация

Автоматизация — это процесс, который позволяет приложениям, которые являются на языках, таких как Visual Basic для программного управления других приложения. Автоматизации Microsoft Excel позволяет выполнять следующие операции Создание новой книги, добавление данных в книгу или создания диаграмм. С помощью Microsoft Excel и других приложений Microsoft Office, практически все действия можно выполнить вручную через пользовательский интерфейс также может быть выполнена программно при помощи автоматизации.

Excel предоставляет этот программный функциональность с помощью объектной модели. Объектная модель представляет собой коллекцию классы и методы, которые служат для логических компонентов для взаимодействия Microsoft Excel. Например, не существует Приложение Объект, Книги объект и Лист Объект, каждый из которых содержит функциональные возможности этих компоненты Excel. Для доступа к объектной модели из Visual Basic.NET, вы можете Задайте ссылку на библиотеку типов.

Данная статья содержит описание как установить правильный проект ссылку на библиотеку типов Excel для Visual Основные.NET и примеры кода для автоматизации Excel.

Создание клиента автоматизации для Microsoft Excel

  1. Запустите Microsoft Visual Studio.NET.
  2. На Файл меню, нажмите кнопкуНовый, а затем нажмите кнопку Проект. ВыберитеПриложение Windows из типов проектов Visual Basic. Форма Form1 создается по умолчанию.
  3. Добавить ссылку Объект Microsoft Excel Библиотека. Чтобы сделать это, выполните следующие действия.
    1. На Проект меню, нажмите кнопку Добавить Ссылка.
    2. На COM Вкладка, найдите Библиотека объектов Microsoft Excel, а затем нажмите кнопку Выберите.

      Примечание Microsoft Office 2003 включает основные сборки взаимодействия (PIA). Microsoft Office XP не содержит основных сборок взаимодействия, но они могут быть загружены. Для получения дополнительных сведений об основных сборок взаимодействия Office XP, нажмите кнопку следующий номер статьи базы знаний Майкрософт:
      328912Microsoft Office XP основные сборки взаимодействия (PIA) доступны для загрузки
    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 и заполняет данные на новый лист.
  3. Когда будет предложено ввести данные о продажах за квартал, нажмите кнопкуДа. Добавлены диаграммы, связанного с Поквартальные данные лист.

Ссылки

Для получения дополнительных сведений посетите следующие корпорации Майкрософт Developer Network (MSDN) веб-узла:
Разработка приложений Microsoft Office с помощью Visual Studio
http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10) .aspx
Для получения дополнительных сведений о Visual Basic и Excel, щелкните номер следующей статьи, чтобы просмотреть в статье базы знаний Майкрософт:
219151Автоматизация Microsoft Excel из Visual Basic

Свойства

Код статьи: 301982 - Последний отзыв: 5 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
Ключевые слова: 
kbpia kbautomation kbhowto kbmt KB301982 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: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