InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Элемент управления Microsoft Comm Control 6.0

Александр Новожилов

В данной статье рассматривается некоторые приемы работы с рабочей книгой приложения Microsoft Excel непосредственно из VB. Первое, что необходимо сделать – это подключить к Вашему проекту библиотеку Excel (Предполагается, что на Вашем компьютере установлен Microsoft Excel). Откройте в VB меню Project, выберите подменю References и выберите из списка библиотеку соответствующую установленному на Вашем компьютере приложению Microsoft Excel.

Теперь Вы можете делать чудеса прямо из нашего любимого VB. 

Любая программа, написанная Вами для управления рабочей книгой должна начинаться с таких строк: 

Dim XL As New Excel.Application

Здесь переменная XL берет на себя роль приложения Excel. 

XL.Workbooks.Open App.Path & "\MyBook.xls"

Открываем имеющуюся в наличии рабочую книгу MyBook.xls 

XL.Visible = False

Делаем ее невидимой (фоновой). Если Вам нужно, чтобы во время выполнения программы Вы видели все своими глазами, то нужно установить значение True. 

Set XL = XL.ActiveWorkbook.Sheets.Application

Передаем нашей переменной управление открытой рабочей книгой.
  • После окончания работы с книгой не забудьте ее закрыть. В конце статьи написано как это сделать.

Как…

Выделить и Очистить диапазон ячеек

Заполнить ячейки значениями

Сделать авторазмер столбцов и рядов

Выбрать другой лист в книге

Вставить рисунок в лист

Отсортировать данные в алфавитном порядке

Сделать автозаполнение ячеек

Вызвать предварительный просмотр печати

Распечатать активный лист

Сохранить книгу

Сохранить книгу под другим именем

Закрыть приложение

Просто научиться все делать самому или маленький секрет…

Как Выделить и Очистить диапазон ячеек

XL.Range("B1:H2").Select           'выделяет диапазон ячеек

XL.Selection.ClearContents          'очистка выбранных ячеек

   

Как Заполнить ячейки значениями

XL.Range("A1").Value = "Выражение 1"              'заполнение ячейки значением

XL.Range("B1").Value = "Выражение 2"               'заполнение ячейки значением

 

Как Сделать авторазмер столбцов и рядов

XL.Columns("A:A").EntireColumn.AutoFit              'устанавливает авторазмер столбца A

XL.Columns("B:B").EntireColumn.AutoFit               'устанавливает авторазмер столбца B

XL.Rows("1:1").EntireRow.AutoFit                                    'устанавливаем авторазмер ряда 1

XL.Rows("2:2").EntireRow.AutoFit                                    'устанавливаем авторазмер ряда 2

   

Как Выбрать другой лист в книге

'выбираем в нашей книге Лист2, выделяем ячейку I6

'и заносим туда значение 123

XL.Sheets("Лист2").Select

XL.Range("I6").Select

XL.ActiveCell.FormulaR1C1 = "123"

   

Как Вставить рисунок в лист

'установить курсор в ячейку А1

XL.Range("A1").Select

'вставить рисунок в выбранную ячейку

XL.ActiveSheet.Pictures.Insert("C:\Picture.jpg").Select  

 

Как Отсортировать данные в алфавитном порядке

'выбираем в нашей книге Лист3

XL.Sheets("Лист3").Select  

'вводим поочердно несколько фамилий

XL.Range("A1").Value = "Сидоров"

XL.Range("A2").Value = "Петров"

XL.Range("A3").Value = "Иванов"

XL.Range("A4").Value = "Зайцев"  

'выделяем все четыре ячейки

XL.Range("A1:A4").Select  

'сортировка по алфавиту от А до Я

XL.Selection.Sort Key1:=Range("A1"), _

Order1:=xlAscending, Header:=xlGuess, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

'сортировка по алфавиту от Я до А

XL.Selection.Sort Key1:=Range("A1"), _

Order1:= xlDescending, Header:=xlGuess, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

   

Как Сделать автозаполнение ячеек

'выделяем ячейку C1

XL.Range("C1").Select

'заносим 1

XL.ActiveCell.FormulaR1C1 = "1"

'выделяем ячейку C2

XL.Range("C2").Select

'заносим 2

XL.ActiveCell.FormulaR1C1 = "2"

'выделяем ячейки С1 и С2

XL.Range("C1:C2").Select

'включаем автозаполнение

XL.Selection.AutoFill Destination:=Range("C1:C21"), Type:=xlFillDefault

XL.Range("C1:C21").Select

   

Как Вызвать предварительный просмотр печати

'делаем приложение видимым

XL.Visible = True

'вызываем предварительный просмотр печати

XL.ActiveWindow.SelectedSheets.PrintPreview

 

Как Распечатать активный лист

'печать текущего листа

XL.ActiveWindow.SelectedSheets.PrintOut Copies:=1

 

Как Сохранить книгу

'сохраняем книгу

XL.ActiveWorkbook.Save

 

Как Сохранить книгу под другим именем

'сохраняем книгу под другим именем

XL.ActiveWorkbook.SaveAs "C:\MyNewWorkBook.xls"

 

Как Закрыть приложение

'НЕ ЗАБЫВАЙТЕ ЗАКРЫВАТЬ КНИГУ ПОСЛЕ РАБОТЫ С НЕЙ! ИНАЧЕ ОНА ОСТАНЕТСЯ В ПАМЯТИ ВАШЕГО КОМПЬЮТЕРА!

'закрываем книгу

XL.ActiveWorkbook.Close

 

Как Просто научиться все делать самому или маленький секрет…

В данной статье описана лишь маленькая часть управления Excel-ем из VB. А как выполнять другие команды Excel? Можно , конечно купить книгу по VBA и долго ее читать, но автор этой статьи нашел для себя другой очень простой способ. Вот его суть:

Открываете Excel.

Меню: Сервис – Макрос – Начать запись – Ок

Делаете какое-либо действие. Останавливаете запись.

Меню: Сервис – Макрос – Редактор Visual Basic

В браузере Вашего Excel проекта (слева вверху) находите Modules, а в нем Module1. Двойным щелчком открываете его и видите справа следующий текст:

Sub Макрос1()

'

' Макрос1 Макрос

' Макрос записан 26.08.2001 (Новожилов)

'  

'

    Range("C1:F10").Select

    Selection.ClearContents

End Sub  

Выделяете команды, созданные VBA:

    Range("C1:F10").Select

    Selection.ClearContents  

Копируете их. Закрываете редактор Visual Basic. Закрываете свою книгу (на предложение сохранить изменения ответьте нет, иначе в книге сохраниться и этот макрос), переходите в Ваш проект на VB, вставляете в нужное место программы скопированные строки, а перед каждой командой добавляете нашу переменную XL с точкой. Вот, что у Вас должно, например, получиться:

Private Sub Command3_Click()

Dim XL As New Excel.Application

XL.Workbooks.Open App.Path & "\MyBook.xls"

XL.Visible = False

Set XL = XL.ActiveWorkbook.Sheets.Application

XL.Range("C1:F10").Select          'вставленная Вами строка

XL.Selection.ClearContents          'вставленная Вами строка

XL.ActiveWorkbook.Save

XL.ActiveWorkbook.Close

End Sub

На мой взгляд это наиболее удобный и надежный способ, т.к. вероятность ошибки синтаксиса практически ничтожна. Правда, Вам попадуться всякие закорючки и заморочки, например, при работе с графикой, но все карты у Вас в руках – изучайте!


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua