Как записать данные в Excel из vba?

3 ноября 2014 г. Просмотров: 1280 Инструкции
Все офисные приложения от Microsoft поддерживают автоматизацию. Они могут запускаться как серверы COM и использоваться из внедренных в документы или внешних сценариев. Так, можно записать данные в Excel-документ из vba-скрипта.

Вам понадобится

  • - установленное приложение Microsoft Excel;
  • - редактор Visual Basic / текстовый редактор.

Инструкция

  • Создайте контейнер для размещения vba-кода. Если скрипт должен быть внедрен в документ, загрузите соответствующий файл в Microsoft Excel. Откройте редактор Visual Basic, нажав клавиши Alt+F11. Если необходимо, создайте новый модуль (пункт Module в меню Insert). Откройте один из модулей или форм. Создайте обработчик элемента управления формы или просто добавьте процедуру в модуль. Например:Sub test()End SubЕсли разрабатывается самостоятельный скрипт (то есть он будет работать под управлением Windows Script Host), то просто создайте файл с расширением vbs в текстовом редакторе.
  • Во внедренный в документ скрипт добавьте объявления переменных в начало процедуры:Dim oWorkbook As Excel.WorkbookDim oSheet As Excel.WorksheetПервая из них предназначена для хранения ссылки на объект книги Excel, а вторая - на лист.
  • Инициализируйте переменные ссылками на объекты. В vbs-скрипте создайте объект приложения Excel (при этом Excel будет запущен как COM-сервер):Set oApplication = CreateObject("Excel.Application").Во внедренном в документ сценарии вместо переменной oApplication будет использоваться глобальный объект Application, ссылающийся на текущий объект приложения. Выберите существующую или откройте новую книгу Excel. Например:Set oWorkbook = Application.Workbooks(1)Set oWorkbook = Application.Workbooks("Книга1")Set oWorkbook = oApplication.Workbooks.Open("D:\vic\relevant\tmp\test.xls")Получите ссылку на нужный лист книги:Set oSheet = oApplication.Sheets("Лист1")
  • Запишите данные в Excel из vba-сценария. Используйте коллекцию Cells, являющуюся свойством объекта листа книги, ссылка на который была получена на предыдущем шаге, в переменную oSheet. Пример записи строки в одну ячейку может выглядеть так:oSheet.Cells(1, 1) = "Строка запишется в ячейку A1"
  • В vbs-скрипте добавьте код для сохранения данных и завершения работы приложения Excel:oWorkbook.SaveoApplication.Quit
  • Сохраните и выполните скрипт. В редакторе Visual Basic нажмите Ctrl+S, а затем поместите курсор в тело процедуры и нажмите F5. Сценарий vbs сохраните на диск, а затем запустите как обычный файл.
  • Оцените статью!