Введение в Excel для работы с задачами по НГ с использованием скриптов

Основы работы с Excel см. здесь
 

I. Организация работы через макросы (МК).

1) Определим, что начало системы координат в Excel на экране в левом верхнем углу.
2) Отсчет идет вправо и вниз
3) Размер рабочего экрана где-то определяет данная МК:
 
Sub Macro1()
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 15#, 26.4, 480#, 276.6). _
        Select
    Selection.ShapeRange.Fill.Visible = msoFalse ' нет залвки заливки
End Sub

4) Для работы с задачами НГ из макросов удобно использовать фон, как сетку квадратных ячеек (текст ее функции здесь).

5) Также сделаем заготовку функций задания осей СК коррдинат для комлексного и аксонометричсекого чертежей.
   5.1. Комплексный оси (текст функции для МК здесь).
   5.2. Изометрические  оси (текст функции для  МК здесь).

Для выполнения домашних задание что нужно?
1. Рамка чертежа и основная надпись (рамер поля 30,2 х 25 491.25 х 825.25).
Скопируем заготовку из CorelDraw.
Формат А4
Далее см. уроки и  домашние задания


II. Организация диалоговых окон и программ  для автоматизированного решения задач НГ

Для задач НГ для решения задач в диалога нужны:
1) Поля ввода координат точек
2) Команда (кнопка) "Изобразить"
3) Команда (кнопка) "Вычислить", например, длину отрезка.
4) Поле результата вычисления.
5) Поле вывода, если это требуется иллюстрирующего рисунка.
6) Кнока "Закончить" режим диалогового окна, например, чтобы продолжить работу на рабочем поле Excel.
 
 

Пример 1. Смоделировать поля задания трех переменных (координат x,y,z точки А) и вычисления их суммы.
Private Sub CommandButton2_Click()
Dim xA, yA, zA, summa As Double
' Обработка ошибок ввода
If IsNumeric(TextBox1.Text) = False Then
MsgBox "Ошибка вввода хА"
        TextBox1.SetFocus
        Exit Sub
 End If
 
 If IsNumeric(TextBox2.Text) = False Then
 MsgBox "Ошибка вввода yА"
        TextBox2.SetFocus
        Exit Sub
 End If
 If IsNumeric(TextBox3.Text) = False Then
 MsgBox "Ошибка вввода zА"
        TextBox3.SetFocus
        Exit Sub
 End If
 ' вычисляем xA + yA  + zA
 xA = CDbl(TextBox1.Text)
 yA = CDbl(TextBox2.Text)
 zA = CDbl(TextBox3.Text)
 summa = (xA + yA + zA)
 TextBox4.Text = CStr(summa)
End Sub

Пример 2. Смоделировать вывод растрового рисунка в зависимости от варианта рисунка по команде "Изобразить".

Private Sub CommandButton1_Click()
Dim nv As Integer
 If IsNumeric(TextBox5.Text) = False Then
 MsgBox "Ошибка ввода"
        TextBox5.SetFocus
        Exit Sub
 End If
 nv = CInt(TextBox5.Text)
With Image1
    .PictureAlignment = fmPictureAlignmentTopLeft
    .PictureSizeMode = fmPictureSizeModeZoom
    If nv = 0 Then
    .Picture = LoadPicture("C:\Temp\Fizika.gif")
    End If
    If nv = 1 Then
    .Picture = LoadPicture("C:\Temp\Fizika2.gif")
    End If
    If nv = 2 Then
    .Picture = LoadPicture("C:\Temp\Fizika3.gif")
    End If
        If nv = 3 Then
    .Picture = LoadPicture("C:\Temp\Fizika4.gif")
    End If
    End With
End Sub
 

Пример 3. Смоделировать (из диалогового окна) вывод: отрезка, квадрата и окружности, по команде Изобразить и команде Закончить. Диалоговое окно перед этим создано вручную.

Private Sub CommandButton1_Click()
'
    ActiveSheet.Shapes.AddLine(100.8, 33#, 184.8, 88.2).Select
    Selection.ShapeRange.Flip msoFlipVertical
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 176.4, 56.4, 43.2, 33#). _
        Select
    ActiveSheet.Shapes.AddShape(msoShapeOval, 253.8, 52.8, 38.4, 38.4).Select
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 53
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
    Range("E16").Select
End Sub
 Рисунок (отрезок, квадрат, окружность) отображается на рабочее поле листа Excel.
' Процедура: закончить работу диалогового окна
    Private Sub CommandButton3_Click()
           UserForm1.Hide
    End Sub



Пример 4. Смоделировать диалог задания точки  на комплексном чертеже и вычисление длины ее вектора (расстояния до начало координат) .
Задаются:
- три координаты точки,
- команды: Изобразить, Вычислить и Закончить
Вычисляется  - длина вектора.
Модуль в Excel - запустить



Литература и ссылки
А.Гарнаев. Самоучитель VBA. Cанкт-Петербург. 2003, 500с.
Основы языка программирования  Visual Basic for Applications

Тест: посмотреть мосты через Excell