Как нарисовать блок-схему в 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5