МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка приложений на языке VBA в среде MS EXCEL по обработке данных для заданных объектов

    Разработка приложений на языке VBA в среде MS EXCEL по обработке данных для заданных объектов

    Министерство высшего и среднего образования Российской Федерации

    Иркутский Государственный Технический

    университет

    Факультет Технологии и Компьютеризации Машиностроения

    Кафедра Технологии Машиностроения

    Курсовая работа по информатике на тему

    «Разработка приложений на языке VBA в среде MS EXCEL по обработке данных

    для заданных объектов»

    Выполнили студенты группы ИСМ-03-1

    Козулин С.П, Кононов И.В

    Проверил: Буренков С.И_____________

    Иркутск, 2004

    План

    1. Как все начиналось

    - QuickBasic против TurboBasic

    -Эпоха Visual Basic

    -Visual Basic for Applications

    2. Обработка модулей VBA

    -Переименование, Удаление, Создание, Добавление, Экспорт, Импорт модулей

    проекта

    - Импорт и экспорт модуля из проекта в проект

    - Импорт модуля через экспортируемый файл (а также модулей обычного VB)

    - Редакция модуля

    - Обработка модулей VBA программно

    - Экспорт модуля проекта в файл

    - Импорт модуля проекта из файла

    - Импорт модуля через организатор (данный код только для Word приложения)

    - Вставка новых строк в модуль проекта

    - Удаление строк из модуля

    - Чтение строк из модуля

    - Определение количества строк в модуле

    - Переименование модулей проекта

    - Удаление модулей проекта

    - Определение количества модулей в проекте

    - Создание нового модуля проекта

    3. Постановка задачи и ее решение

    4. Список использованной литературы

    Как все начиналось

    Язык Basic был разработан профессорами Дартмутского колледжа Дж.Кемени и

    Т.Курцом в 1965 году как средство обучения и работы непрофессиональных

    программистов. (Дартмутский колледж в штате Нью-Гампшир, США, был создан в

    середине 18 века, это одно из старейший высших заведений Америки). Его

    назначение определено в самом названии, которое является аббревиатурой слов

    Beginner's All-purpose Symbolic Instruction Code (многоцелевой язык

    символических инструкций для начинающих) и при этом в дословном переводе

    означает "базовый".

    Примечание. Раньше языки программирования писались обязательно строчными

    буквами — BASIC, FORTRAN. В 1990 году Международная организация стандартов

    приняла решения, что они пишутся как обычные имена собственные — строчной

    является только первая буква.

    Однако парадокс заключается в том, что, будучи действительно весьма простым

    средством программирования, совершенно непригодным в те времена для решения

    серьезных задач, Basic представлял собой качественно новую технологию

    создания программ в режиме интерактивного диалога между разработчиком и

    компьютером. То есть представлял собой прообраз современных систем

    программирования. Другое дело, что решение подобной задачи на технике тех

    лет было возможно только за счет максимального упрощения языка

    программирования и использования транслятора типа "интерпретатор".

    В силу этих же причин Basic в основном применялся на мини - и микроЭВМ,

    которые в 70-е годы имели оперативную память, объем которой кажется сегодня

    просто нереальным (4-32 тысяч байт). Резкое развитие систем на основе Basic

    началось с появлением в начале 80-х годов персональных компьютеров,

    производительность и популярность которых растет вот уже двадцать лет

    невиданными темпами.

    QuickBasic против TurboBasic

    В конце 80-х годов насчитывалось около десятка систем Basic различных фирм-

    разработчиков. Однако главная борьба шла между QuickBasic (компания

    Microsoft) и TurboBasic (Borland). Вообще-то, конкуренция между этими двумя

    разработчиками средств программирования шла по целому спектру языков —

    Basic, Pascal и C. И результатом ее в 1989 году стало неявное мировое

    соглашение, когда Microsoft отказалась от дальнейшей поддержки Pascal, а

    Borland — Basic.

    Тогда многие комментаторы язвительно замечали, что Microsoft отказалась от

    Pascal в пользу Basic исключительно из-за личных пристрастий основателя и

    руководителя корпорации Билла Гейтса. Действительно, разработка в 1975 году

    интерпретатора Basic для микроЭВМ Altair 8800 была первым проектом

    двадцатилетних Билла Гейтса и Пола Аллена, только что основавших фирму

    Micro-Soft (в то момент они были единственными сотрудниками новой

    компании). После этого именно Пол Ален занимался созданием Basic-систем и

    считается крестным отцом Visual Basic. В свою очередь Билл Гейтс,

    перечисляя свои титулы, довольно часто добавляет "Basic-программист".

    Однако, как мне представляется, победа QuickBasic определялась чисто

    технологическими причинами — в этой системе была удачно реализована схема

    смешанного использования традиционных Basic-технологий и классических

    методов создания сложных программных систем. Отметим, что с 1990 года

    усеченный вариант QuickBasic под названием QBasic был включен в состав MS-

    DOS. (Многие современные пользователи ошибочно думают, что QuickBasic и

    QBasic — одно и то же.)

    Эпоха Visual Basic

    В начале 90-х годов Microsoft начала активную борьбу за продвижение в массы

    своей новой операционной системы Windows (против своей же, но более уже

    устаревающей MS-DOS). Но, как известно, пользователи работают не с ОС, а с

    программами, которые работают в нее среде. Поэтому скорость смены платформы

    в основном определяется темпами появления соответствующих прикладных

    программ.

    Однако смена операционных систем представляет серьезную проблему и для

    программистов, так как им нужно было осваивать новую технологию разработки

    программ. В тот момент бытующим (и в значительной степени, совершенно

    справедливым) мнением было то, что Windows предъявляет более высокие

    требования к квалификации программиста.

    В 1991 году под лозунгом "теперь и начинающие программисты могут легко

    создавать приложения для Windows" появилась первая версия нового

    инструментального средства Microsoft Visual Basic. В тот момент Microsoft

    достаточно скромно оценивала возможности этой системы, ориентируя ее,

    прежде всего, на категорию начинающих и непрофессиональных программистов.

    Основной задачей тогда было выпустить на рынок простой и удобный инструмент

    разработки в тогда еще довольно новой среде Windows, программирование в

    которой представляло проблему и для опытных специалистов.

    Действительно, VB 1.0 в тот момент был больше похож не на рабочий

    инструмент, а на действующий макет будущей среды разработки. Его

    принципиальное новшество заключалось в реализации идей событийно-

    управляемого и визуального программирования в среде Windows, которые весьма

    радикально отличались от классических схем разработки программ. По общему

    признанию VB стал родоначальником нового поколения инструментов, называемых

    сегодня средствами быстрой разработки программ (Rapid Application

    Development, RAD). Сегодня эта идеология считает привычной, но тогда она

    казалась совершенно необычной и создавала серьезные проблемы (в том числе

    чисто психологического плана) для программистов "старых времен".

    Тем не менее, число VB-пользователей росло, причем во многом за счет

    огромной популярности ее предшественника — QuickBasic. При этом VB быстро

    "мужал", усиливаясь за счет, как развития среды программирования, так и

    включения профессиональных элементов языка и проблемно-ориентированных

    средств. И к моменту выпуска в 1995 году VB 4.0 эта система была уже

    признанным и одним из самых распространенных инструментов создания широкого

    класса приложений. В настоящее время используется версия VB 6.0, появление

    версии 7.0 ожидается в начале следующего года.

    Visual Basic for Applications

    В начале 90-х годов наметилась отчетливая тенденция включение в приложения,

    предназначенные для конечного пользователя, средства внутреннего

    программирования, которые должны были решать задачи настройки и адаптации

    этих пакетов для конкретных условий их применения.

    В конце 1993 г. Microsoft объявила о намерении создать на основе VB новую

    универсальную систему программирования для прикладных программ, которая

    получила название Visual Basic for Applications (VB для приложений).

    Естественно, реализацию этого проекта она начала с собственных офисных

    пакетов.

    Первый вариант VBA 1.0 появился в составе MS Office 4.0, но лишь в

    программах Excel 4.0 и Project 6.0. В других же приложениях - Word 6.0 и

    Access 2.0 - были собственные варианты Basic. Более того, VBA 1.0 довольно

    сильно отличался (причем имея ряд существенных преимуществ) от используемой

    тогда универсальной системы VB 3.0.

    Качественный перелом наступил в конце 1996 года с выпуском MS Office 97, в

    котором была реализована единая среда программирования VBA 5.0, включенная

    в программы Word, Excel и PowerPoint. Более того, VBA 5.0 использовала тот

    же самый языковый механизм и среду разработки, что и универсальная система

    VB 5.0. В состав выпущенного год назад MS Office 2000 вошла соответственно

    версия VBA 6.0, которая используется в шести программах - Word, Excel,

    PowerPoint, Access, Outlook, Frontpage.

    В результате последние три года Microsoft позиционирует сегодня свой пакет

    MS Office не просто как набор прикладных программ, а как комплексную

    платформу для создания бизнес-приложений, решающих широкий круг

    специализированных задач пользователей. Именно этим объясняется появлением

    в его составе специального выпуска для разработчиков приложений — Developer

    Edition.

    Одновременно, VBA активно продвигает в качестве отраслевого стандарта для

    управления программируемыми приложениями, объявив о возможности его

    лицензирования. Сегодня уже более ста ведущих мировых фирм-разработчиков

    прикладных программ (среди них есть о российские) приобрели лицензии на

    него и включают VBA в состав своих программных продуктов.

    Вывод из сказанного выше. Освоение механизма программирования VBA,

    реализованного в офисном приложении, которое установлено на вашем

    компьютере, откроет вам возможность использования полученных знаний и

    навыков при работе с десятками и сотнями других программ, в том числе и

    тех, которых пока еще нет на свете. Начав с составления простейших

    макрокоманд, при желании можно в рамках одного инструментария стать

    профессионалом, разрабатывающим программные системы любой сложности.

    Десять лет назад во всем мире было не более двух миллионов программистов.

    Сегодня их насчитывается около десяти миллионов, из них не менее 70

    процентов используют в качестве хотя бы одно из инструментов VB или VBA.

    Обработка модулей VBA

    Проект – Файл приложения Microsoft Office, в котором написана программа VBA

    Приложение – Приложение Microsoft Office (Word, Excel, Access, Power Point

    и др.)

    Модуль – Именованная область в файле проекта содержащая в себе код,

    написанный на языке VBA

    Окно проекта – “дерево”, содержащее на себе все “деревья” загруженных

    проектов, “дерево” состоит из имен модулей.

    Редактор VBA – редактор встроенный внутри приложения, позволяющий писать и

    редактировать программы на языке VBA.

    Для перехода в редактор VBA можно воспользоваться пунктами меню: Сервис-

    Макросы-Редактор Visual Basic (Рис.1) (В Access выбрать закладку модулей

    или форм, выбрать мышью нужный объект, зайти в меню: Вид-Программа)

    Для открытия окна проекта, необходимо воспользоваться пунктами меню

    редактора VBA: Вид-Дерево проекта

    Двойным кликом мыши по папке с именами модулей можно открыть ее.

    Двойным кликом мыши по имени модуля, можно активизировать окно редактора

    нужного вам модуля.

    [pic]

    Рис 1 Редактор VBA (слева дерево проекта, активизирован редактор модуля 1,

    который виден в правой части окна VBA)

    Примечание: В Access модули можно обрабатывать, не заходя в редактор VBA,

    выбрав закладку Модули. В Access 1997 модули обрабатываются только через

    закладку Модули, т.к. окна проекта в этой версии Access не существует.

    Переименование, Удаление, Создание, Добавление, Экспорт, Импорт модулей

    проекта

    Все указанные в заголовке действия можно выполнить следующим образом:

    1. В редакторе VBA нажать правую клавишу мыши на дереве проекта на имени

    нужного нам модуля (или на любом имени имеющегося модуля, для того,

    что бы создать новый модуль)

    2. Выбрать соответствующий пункт меню (для создания модуля выбрать

    пункты: Вставить-модуль)

    Импорт и экспорт модуля из проекта в проект

    Импорт модуля через экспортируемый файл (а также модулей обычного VB)

    Для пересылки модуля из проекта в проект можно воспользоваться следующим

    приемом:

    1. Экспортировать модуль из проекта в файл (в редакторе VBA нажать правую

    клавишу мыши на дереве проекта, на имени модуля, и выбрать пункт

    “Экспорт файла”)

    2. Импортировать модуль из файла в проект (данный файл может являться не

    только экспортируемым файлом из VBA приложения, но и быть модулем

    обычного VB)

    В редакторе VBA нажать правую клавишу мыши на дереве проекта, на имени

    файла, и выбрать пункт “Экспорт файла”

    .

    Редакция модуля

    1. В редакторе VBA кликнуть в окне проекта два раза по имени нужного нам

    модуля (см. рис 1)( В Access выбрать закладку Модули и имя

    соответствующего модуля, войти в меню Вид-Программа.).

    2. Перейти в активизированное окно редактора модуля (справа от окна

    проекта) и редактировать его.

    3. Из верхнего левого списка, расположенного вверху окна редактора

    модуля, можно выбирать либо раздел описания, либо имя нужной вам

    подпрограммы (В модуле Форм, Листов Excel, Книги Excel, Документа Word

    и т.п. из верхнего правого списка можно выбрать Общую Область, либо

    имя объекта (Листа, Книги, Документа и т.п.), либо имя элемента

    управления (который находится на соответствующем Листе, Книге,

    Документе и т.п.), при выбранном объекте, из правого списка выбирается

    имя события, для того, что бы активизировать соответствующую

    событийную процедуру объекта или элемента управления).

    Обработка модулей VBA программно

    Под “ИмяПроекта” в программной конструкции подразумевается соответствующий

    объект. Для связи с книгой Excel предназначен объект - Workbooks("Имя

    книги"), а для связи с документом Word объект - Documents(“Имя документа”).

    Объект для связи с документом, который содержит общие макросы приложения

    Word, имеет имя: NormalTemplate, в Excel приложении данный объект

    записывается следующим образом: Workbooks("PERSONAL").

    Экспорт модуля проекта в файл

    ИмяПроекта.VBProject.VBComponents.Item("Имя модуля").Export "Путь и

    ИмяФайла"

    Импорт модуля проекта из файла

    ИмяПроекта.VBProject.VBComponents.Import "Путь и ИмяФайла"

    Импорт модуля через организатор(данный код только для Word приложения)

    Application.OrganizerCopy Source:= _

    “Путь и имя проекта, откуда берется модуль”, Destination:= _

    “Путь и имя проекта куда импортируется модуль”, Name:="Имя модуля", Object

    _

    :=wdOrganizerObjectProjectItems

    Вставка новых строк в модуль проекта

    ИмяПроекта.VBProject.VBComponents.Item("Имя модуля").CodeModule.InsertLines

    №, S

    Где

    № - Номер строки в модуле, с которой будут вставляться новые строки

    S – Вставляемая строка символов

    Примечание:

    В переменной S могут содержаться коды символов конца строк , которые можно

    получить следующей функцией со следующим аргументом: CHR(13). Таким

    образом, переменная S может содержать в себе сразу несколько строк:

    S = “Первая строка”+ chr(13)+”Вторая строка” + chr(13)+”Третья строка”

    ‘и т.д.

    Удаление строк из модуля

    ИмяПроекта..VBProject.VBComponents.Item("Имя

    модуля").CodeModule.DeleteLines(№,Количество)

    Где

    № - Номер строки в модуле с которой будут удаляться строки

    Количество – количество удаляемых строк

    Чтение строк из модуля

    ИмяПроекта.VBProject.VBComponents.Item("Имя

    модуля").CodeModule.Lines(№,Количество)

    Где

    № - Номер строки, в модуле с которой будут начинаться чтение строк

    Количество – количество читаемых строк

    Определение количества строк в модуле

    ИмяПроекта.VBProject.VBComponents.Item("Имя

    модуля").CodeModule.CountOfLines

    Переименование модулей проекта

    ИмяПроекта.VBProject.VBComponents.Item(“ИмяМодуля”).Name =”Новое имя

    модуля”

    Удаление модулей проекта

    ИмяПроекта.VBProject.VBComponents.Remove _

    ИмяПроекта.VBProject.VBComponents.Item("ИмяМодуля")

    Определение количества модулей в проекте

    ИмяПроекта.VBProject.VBComponents.Count

    Создание нового модуля проекта

    ‘Создаем новый модуль макросов и подпрограмм

    ИмяПроекта.VBProject.VBComponents.Add vbext_ct_StdModule

    ‘Определяем индекс созданного модуля

    k = ИмяПроекта.VBProject.VBComponents.Count

    ‘даем свое имя модулю

    ИмяПроекта.VBProject.VBComponents.Item(k).Name = "Новое имя модуля"

    Постановка задачи и ее решение

    Вид объекта – Числовая прямоугольная матрица.

    Параметры объекта – Размерности матрицы

    Входные формы – Ввод элементов матрицы со столбцом (Клавиатура, Файл, Тест-

    формула), Выбор вида обработки.

    Виды обработки – Построение диаграмм

    1. Средние значения по строкам и столбцам

    2. Максимальные значения по строкам и столбцам

    3. Минимальные значения по строкам и столбцам

    Option Explicit

    Const m = 15

    Dim i, j, k As Integer

    Public Obr As Byte

    Dim n, A(m, m), L(m) As Double

    Public inp, NameF, Path As String

    Dim Bukva As Variant

    Dim det, s, x As Double

    Public объявляет глобальную переменную. Объявлённая таким способом

    переменная становится доступной из всех модулей и форм проекта. Если

    переменная объявлена в разделе глобальных объявлений, то доступ к ней

    осуществляется просто по её имени. Если же она объявлена в коде формы, то

    доступ к ней из других форм и модулей осуществляется так: ИмяФормы.

    ИмяПеременной.

    Sub ButtonCancel_Click()

    Sheet1.OptionButton1.Select

    Cng_List (False)

    End Sub

    Sub объявляет процедуру с именем name и параметрами arglist.

    Public Sub Obrabotka()

    Obr = Sheet1.ListBox1.ListIndex + 1

    n = Sheet2.Range("R2")

    If Obr > 0 Then

    Select Case Obr

    Case 1 ' Среднее значение по строкам

    Call rab1(n)

    Case 2 ' среднее значение по столбцам

    Call rab2(n)

    Case 3 ' min по строкам

    Call rab3(n)

    Case 4 ' min по столбцам

    Call rab4(n)

    Case 5 ' max по строкам

    Call rab5(n)

    Case 6 ' max по столбцам

    Call rab6(n)

    End Select

    End If

    End Sub

    Здесь мы, соответственно, объявляем глобальную процедуру вида обработки. В

    данном случае это подсчет средних, максимальных, и минимальных элементов

    матрицы по столбцам и строкам

    Call - Вызывает процедуру или функцию. Оператор Call может быть опущен.

    Далее…

    Sub ButtonOK_Click()

    If Sheet1.OptionButton1.Value = True Then

    'Ввод матрицы с клавиатуры в файл

    Met1:

    inp = InputBox "Введите размерность матрицы А", "Ввод размерности",

    "testfile" - выводит окно с запросом на ввод значения. Параметры такие же,

    как и у функции MsgBox.

    n = Val(inp)- Превращает строку в число

    If (n > 0) And (n "" Then

    MsgBox "Ошибка ввода размерности"-- Выводит на экран окно

    сообщения (Message Box) которое будет ждать клика на одной из кнопок.

    Возвращает число Integer, по которому можно определить какую кнопку нажал

    пользователь.

    GoTo Met1- оператор для перехода на определённую метку

    End If

    End If

    End If

    If Sheet1.OptionButton2.Value = True Then

    ' Ввод матрицы из файла

    Open "C:\file1" For Input As #2 - открывает файл для чтения, записи или

    для произвольного доступа.

    Input #2, n

    Sheet3.Visible = xlSheetVisible

    Sheet3.Activate

    ' Sheet3.Range("M2") = Str(n) + "*" + Str(n)

    Sheet3.Range("R2") = n

    Call InitS – вызов функции InitS

    For i = 1 To n

    For j = 1 To n

    Input #2, A(i, j)

    Sheet3.Cells(i + 3, j) = A(i, j)

    Next j

    Next i

    Close #2 - Закрывает файл, открытый оператором Open под номером 2.

    MsgBox ("Матрица А прочитана из файла ")

    End If

    If Sheet1.OptionButton3.Value = True Then

    'Заполнение тестового значения

    Randomize - Инициализирует генератор случайных чисел. Если этот

    оператор не поместить перед функцией Rnd, то при каждом запуске приложения

    будут генерироваться одни и те же случайные числа.

    For i = 1 To n

    For j = 1 To n

    A(i, j) = 20 * Rnd() - 10 - Возвращает Single значение,

    содержащее случайное число от 0 до 1.

    Next j

    Next i

    Sheet3.Cells(3, 2) = " Матрица заполнена случайными тестовыми

    значениями "

    For i = 1 To n

    For j = 1 To n

    Sheet3.Cells(i + 3, j) = A(i, j)

    Next j

    Next i

    MsgBox ("Матрица А заполнена тестовыми значения (случайными числами)")

    End If

    If Sheet1.OptionButton4.Value = True Then

    'Выбор обработки

    Call Obrabotka – вызываем функцию «обработка».

    End If

    End Sub

    В этой конструкции некоторые операторы выполняются только при условии,

    содержащееся в конструкции логическое выражение имеет значение True

    (истинно):

    If Логическое_выражение Then Оператор

    или сложнее

    If Логическое_выражение Then

    Группа_операторов

    End If

    В первом случает оператор может быть только один. Во втором сколько угодно

    (в том числе и один).

    Далее…

    Sub Cng_List(par As Boolean)

    If par Then 'Активное

    Sheet1.ListBox1.ForeColor = &H80000007

    Sheet1.ListBox1.Enabled = True

    Else 'Неактивное

    Sheet1.ListBox1.ForeColor = &H80000013

    Sheet1.ListBox1.Enabled = False

    End If

    End Sub

    ListBox1 – элемент управления, префикс lst (При именовании элементов

    управления рекомендуется следовать стандартным соглашениям именования

    пользовательского интерфейса и элементов управления. Это позволяет

    упростить чтение и отладку программного кода. В именах элементов управления

    удобно проставлять префикс, однозначно указывающий на тип (класс) этого

    объекта.)

    Sub Init()

    Cng_List (False)

    n = 0

    For i = 1 To m

    For j = 1 To m

    A(i, j) = 0

    Next j

    Next i

    Sheet2.Visible = xlSheetHidden

    Sheet3.Visible = xlSheetHidden

    End Sub

    Sub InitS()

    For i = 1 To m + 2

    For j = 1 To m

    ActiveSheet.Cells(i + 2, j) = ""

    Next j

    Next i

    End Sub

    Sub Button3_Click() ' ОК

    n = Sheet2.Range("R2")

    Open "C:\file1" For Output As #1

    Write #1, n

    For i = 1 To n

    For j = 1 To n

    If Sheet2.Cells(i + 3, j) = "" Then

    A(i, j) = 0

    Else

    A(i, j) = Sheet2.Cells(i + 3, j)

    End If

    Write #1, A(i, j)

    Next j

    Next i[pic]

    Close #1

    MsgBox ("Матрица A записана в файл file1")

    Call InitS

    Sheet2.Visible = xlSheetVisible

    Sheet1.Activate

    Call Init

    End Sub

    Sub Button4_Click() ' Отмена

    Sheet2.Visible = xlSheetVisible

    Call InitS

    Sheet1.Activate

    Call Init

    End Sub

    Sub Button5_Click()

    Call InitS

    Sheet3.Visible = xlSheetVisible

    Sheet1.Activate

    Call Init

    End Sub

    Sub OutA() ' Вывод результата на экран[pic]

    For i = 1 To n

    For j = 1 To n

    Sheet4.Cells(i + 3, j) = A(i, j)

    Next j

    Next i

    MsgBox

    End Sub

    Sub getA() ' ввод матрицы из файла[pic]

    For i = 1 To n

    For j = 1 To n

    If Sheet3.Visible = xlSheetHidden Then

    MsgBox ("Введите матрицу А из файла")

    Else

    If Sheet3.Cells(i + 3, j) = "" Then

    A(i, j) = 0 ' заполнение матрицы с

    клавиатуры

    Else

    A(i, j) = Sheet3.Cells(i + 3, j)

    End If

    End If

    Next j

    Next i

    End Sub

    Создание кнопок ОК, ОТМЕНА, заполнение матрицы в файл, а также вывод

    результатов на экран.

    И, наконец, с помощью функции rab, мы проделываем все виды обработки.

    Sub rab1(n As Variant)

    Call getA

    Sheet4.Activate

    Call InitS

    Sheet4.Range("H3") = "Среднее значение элементов по строкам"[pic]

    Sheet4.Range("G4") = "Строка"

    Sheet4.Range("I4") = "Xcp"

    For i = 1 To n

    s = 0

    Sheet4.Cells(i + 4, 7) = i

    For j = 1 To n

    s = s + A(i, j)

    Next j

    s = s / n

    Sheet4.Cells(i + 4, 9) = s

    Next i

    End Sub

    Sub rab2(n As Variant)

    Call getA

    Sheet4.Activate

    Call InitS

    Sheet4.Range("H3") = "Среднее значение элементов по столбцу"[pic]

    Sheet4.Range("G4") = "Столбец"

    Sheet4.Range("I4") = "Xcp"

    For j = 1 To n

    s = 0

    Sheet4.Cells(j + 4, 7) = j

    For i = 1 To n

    s = s + A(i, j)

    Next i

    s = s / n

    Sheet4.Cells(j + 4, 9) = s

    Next j

    End Sub

    Sub rab3(n As Variant)

    Call getA

    Sheet4.Activate

    Call InitS

    Sheet4.Range("H3") = " Min элементы в строках"[pic]

    Sheet4.Range("G4") = "Строка"

    Sheet4.Range("I4") = "Min"

    For i = 1 To n

    x = A(i, 1) 'min

    Sheet4.Cells(i + 4, 7) = i

    For j = 2 To n

    If x > A(i, j) Then

    x = A(i, j)

    End If

    Next j

    Sheet4.Cells(i + 4, 9) = x

    Next i

    End Sub

    Sub rab4(n As Variant)

    Call getA

    Sheet4.Activate

    Call InitS

    Sheet4.Range("H3") = "Min элементы по столбцам"[pic]

    Sheet4.Range("G4") = "Столбец"

    Sheet4.Range("I4") = "Min"

    For j = 1 To n

    x = A(1, j) 'min

    Sheet4.Cells(j + 4, 7) = j

    For i = 2 To n

    If x > A(i, j) Then

    x = A(i, j)

    End If

    Next i

    Sheet4.Cells(j + 4, 9) = x

    Next j

    End Sub

    Sub rab5(n As Variant)

    Call getA

    Sheet4.Activate

    Call InitS

    Sheet4.Range("H3") = "Max элементы по строкам"[pic]

    Sheet4.Range("G4") = "Строка"

    Sheet4.Range("H4") = "Max"

    For i = 1 To n

    s = A(i, 1) 'max

    Sheet4.Cells(i + 4, 7) = i

    For j = 2 To n

    If s < A(i, j) Then

    s = A(i, j)

    End If

    Next j

    Sheet4.Cells(i + 4, 9) = s

    Next i

    End Sub

    Sub rab6(n As Variant)

    Call getA

    Sheet4.Activate

    Call InitS

    Sheet4.Range("H3") = "Max элементы по

    столбцам"[pic]

    Sheet4.Range("G4") = "Столбец"

    Sheet4.Range("H4") = "Max"

    For j = 1 To n

    s = A(1, j) 'max

    Sheet4.Cells(j + 4, 7) = j

    For i = 2 To n

    If s < A(i, j) Then

    s = A(i, j)

    End If

    Next i

    Sheet4.Cells(j + 4, 9) = s

    Next j

    End Sub

    Список использованной литературы

    . А.Васильев, А.Андреев. VBA в Office 2000. Учебный курс. С-Пб.:

    "Питер", 2001

    . Биллиг В.А. Средства разработки VBA-программиста. Офисное

    программирование. Том 1. М.: Издательско-торговый дом "Русская

    Редакция", 2001.

    . Биллиг В.А. Мир объектов Excel 2000. М.: Издательско-торговый дом

    "Русская Редакция", 2001.

    . В.И.Король. Visual Basic 6.0, Visual Basic for Applications 6.0. Язык

    программирования. Справочник с примерами. М.: Издательство КУДИЦ,

    2000.


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.