Читаем Офисное программирование полностью

Нажатие кнопки Отмена запускает на выполнение процедуру CommandButton2_C1ick

Закрывает диалоговое окно.

Рассмотрим листинг данного приложения.

Private Sub CommandButton1_Click()

' Процедура табуляции функции

Dim х_нз As Double

Dim х_пз As Double

Dim х_шаг As Double

Dim УрГрафика As String

Dim nx As Integer

'nx – число протабулированных значений аргумента х

Dim n As Integer

Dim i As Integer

'n,i – вспомогательные целые переменные

'Проверка корректности ввода данных

If IsNumeric(TextBox2.Text) = False Then

MsgBox «Ошибка в начальном значении х», vbInformation, «График»

TextBox2.SetFocus

Exit Sub

End If

If IsNumeric(TextBox3.Text) = False Then

MsgBox «Ошибка в шаге х», vbInformation, «График»

TextBox3.SetFocus

Exit Sub

End If

If IsNumeric(TextBox4.Text) = False Then

MsgBox «Ошибка в конечном значении у», vbInformation, «График»

TextBox4.SetFocus

Exit Sub

End If

'Считывание с диалогового окна значений переменных

х_нз = CDbl(TextBox2.Text)

х_шаг = CDbl(TextBox3.Text)

х_пз = CDbl(TextBox4.Text)

УрГрафика = Trim(TextBox1.Text)

'Проверка согласованности введенных данных

If х_нз >= х_пз Then

MsgBox «Начальное значение х слишком большое», vbInformation, «График»

TextBox2.SetFocus

Exit Sub

End If

If х_нз + х_шаг >= х_пз Then

MsgBox «Шаг х великоват», vbInformation, «График»

TextBox3.SetFocus

Exit Sub

End If

'Замена в введенной формуле аргумента х на ссылку $A1

i = 1

Do

'Замена в введенной формуле аргумента х на ссылку $A1

If Mid(УрГрафика, i, 1) = «x» Or Mid(УрГрафика, i, 1) = «X» Then

n = Len(УрГрафика)

If (1 < i) And (i < n) Then

УрГрафика = Left(УрГрафика, i – 1) & «$A1» & Right(УрГрафика, n – i)

End If

If i = 1 Then

УрГрафика = «$A1» & Right(УрГрафика, n – 1)

End If

If i = n Then

УрГрафика = Left(УрГрафика, n – 1) & «$A1»

End If

End If

i = i + 1

Loop While i <= Len(УрГрафика)

ActiveSheet.Cells.Select

Selection.Clear

'Очистка на активном листе ранее введенных данных

ActiveSheet.Range(«A1»).Select

'Заполнение диапазонов значениями аргумента

With ActiveSheet

Range(«A1»).Value = х_нз 'Ввод в ячейку A1 начального значения

'Создание арифметической прогрессии по столбцу с указанным шагом и начальным значением

Range(«A1»).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=х_шаг, Stop:=х_пз, Trend:=False

End With

'Заполнение диапазона значениями функции

With ActiveSheet

nx = Range(«A1»).CurrentRegion.Rows.Count

'Определение числа строк в диапазоне заполнения

Range(«B1»).FormulaLocal = УрГрафика

'Ввод уравнения поверхности в ячейку B1

If IsError(Evaluate(УрГрафика)) = True Then

MsgBox «Ошибка в формуле», vbExclamation, «График»

Exit Sub

End If

'Заполнение диапазона Range(Cells(1, 2), Cells(nx, 2))

'начиная с ячейки B1, что эквивалентно протаскиванию маркера

'заполнения ячейки B1 на диапазон Range(Cells(1, 2),

Cells(nx, 2))

Range(«B1»).AutoFill Destination:=Range(Cells(1, 2), Cells(nx, 2)), Type:=xlFillDefault

End With

ActiveSheet.ChartObjects.Delete

'Удаление с рабочего листа всех ранее построенных диаграмм

ActiveSheet.Range(Cells(1, 2), Cells(nx, 2)).Select

'Выбор диапазона, по которому строится график

ActiveSheet.ChartObjects.Add(20, 19.5, 192, 192).Select

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

'размер графика должен соответствовать размеру объекта Image1

Application.CutCopyMode = False

'Построение графика

ActiveChart.ChartWizard Source:=Range(Cells(1, 1), Cells(nx, 2)), Gallery:=xlLine, Format:=2, PlotBy:=xlColumns, CategoryLabels:=1, SeriesLabels:=0, HasLegend:=False, Title:="График",

CategoryTitle:="Аргумент", ValueTitle:="Функция y" & TextBox1.Text

ActiveSheet.ChartObjects(1).Activate

ActiveChart.Axes(xlValue).AxisTitle.Select

With Selection

HorizontalAlignment = xlCenter

VerticalAlignment = xlCenter

Orientation = xlUpward

End With

'Запись диаграммы в файл и загрузка картинки в Imagel

ActiveChart.Export Filename:="Graph.jpg",

FilterName:="JPEG"

UserForm1.Image1.Picture = LoadPicture(«graph.jpg»)

ActiveSheet.Range(«A1»).Select

End Sub

Private Sub CommandButton2 Click()

'Процедура закрытия диалогового окна

UserForm1.Hide

End Sub

Private Sub UserForm Initialize()

'Рисунок масштабируется с учетом относительных размеров

так, чтобы он помещался в объекте Imagel

With Imagel

PictureAlignment = fmPictureAlignmentTopLeft

PictureSizeMode = fmPictureSizeModeStretch

End With

End Sub

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных