[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Basic /

Элемент управления 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.жпг").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

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




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Basic /

Основы работы с базами данных
11-02-2009   

Умение обращаться с файлами данных - чуть ли не одна из самых важных ступений в обучении программированию на Visual Basic! Здесь я постараюсь выложить только самые основные приёмы работы с объектом Data... подробнее

Кол. просмотров: общее - 3031 сегодня - 0

Эффективная работа с БД в VB 6.0
11-02-2009   

В статье рассматриваются способы повышения эффективности при разработке клиент-серверных СУБД-приложений в среде VisualBasic 6.0. Наиболее подробно освещены следующие аспекты проблемы... подробнее

Кол. просмотров: общее - 3799 сегодня - 2

Создание программы на Visual basic для вывода случайного числа в заданном интервале чисел
11-02-2009   

В данной статье будет показан способ написания программы для вывода случайного числа в заданном нами интервале чисел, также пошагово будет показано создание соответствующего интерфейса программы на VB6... подробнее

Кол. просмотров: общее - 3414 сегодня - 0

Техника программирования сложных окон в Visual Basic
11-02-2009   

Mногие из Вас наверняка видели в Windows программах окна нестандартной формы (круглые, треугольные и т.д.) и задавали себе вопрос: как мне сделать такое окно?... подробнее

Кол. просмотров: общее - 3308 сегодня - 1

Вызов функций по указателю
11-02-2009   

Вы читали мою первую статью на эту тему? Надеюсь, что нет. Она мне страшно не нравилась уже сразу после опубликования. К тому же, я получил немало откликов на тему мало информации, которые, конечно, считаю справедливыми... подробнее

Кол. просмотров: общее - 3322 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects