Как нарисовать блок-схему в vba
Формулировка задачи:
Как нарисовать несколько квадратов с соединительными линиями в vba?
т.е. квадрат от него линия, еще один квадрат, далее еще линия и так 4 раза
Решение задачи: «Как нарисовать блок-схему в vba»
textual
Листинг программы
Option Explicit Private Type POINTAPI x As Double Y As Double End Type Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Dim Coord As New Collection Dim n_kv Const maxPoint = 4 Private Sub UserForm_Click() Dim hds, hWnd Dim pt As POINTAPI, nx, ny, kx, ky, i nx = Split("50,150,50,50,250,350,250,250,50,150,50,50,250,350,250,250,150,300,250,100", ",") 'массив координат x ny = Split("50,50,90,50,50,50,90,50,190,190,230,190,190,190,230,190,70,90,210,90", ",") 'массив координат kx = Split("150,150,150,50,350,350,350,250,150,150,150,50,350,350,350,250,250,300,150,100", ",") 'массив координат ky = Split("50,90,90,90,50,90,90,90,190,230,230,230,190,230,230,230,70,190,210,190", ",") 'массив координат hWnd = FindWindow("thunderDFrame", Draw.Caption) hds = GetDC(hWnd) For i = 0 To UBound(nx) MoveToEx hds, nx(i), ny(i), pt LineTo hds, kx(i), ky(i) Next i End Sub Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Me.Hide Draw.Show End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д