하트 모양 차트에 사용된 공식은 크게 3부분으로 나눌 수 있으며, 공식에 사용된 인수는 아래와 같습니다.
| 인수 |
설명 |
| x |
X축 값입니다. |
| Ymax |
Y절편 값입니다. (X가 0일 때 Y값) |
| 진동수 |
진동수가 1이면, 진폭이 1이고 위상이 0이면서 x가 2 증가할 때마다 진동하는 기본 SIN 파형이 만들어집니다. (=SIN(π) 파형) |
- V자 모양 차트 :
ABS(x)^(2/3)

- 무지개모양 차트 :
ABS(Ymax-x^2)^0.5

- SIN 함수 차트 :
SIN(진동수*PI()*x)

위 3개의 공식을 합하면 하트 모양을 출력하는 차트가 완성됩니다.
=ABS(x)^(2/3)+진동크기*ABS(Ymax-x^2)^0.5*SIN(진동수*PI()*x)

움직히는 하트 모양 차트 만들기 매크로에 사용된 전체 명령문은 아래와 같습니다.
Option Explicit
Public bStart As Boolean
Sub HeartChart()
Dim i As Long
bStart = Not bStart
Do
For i = 1 To 50
If bStart = True Then
DoEvents
DoEvents
[b3] = i
Else
Exit Sub
End If
Next
Loop While bStart = True
End Sub
사용된 명령문을 각 단계별로 살펴보겠습니다.
- 변수를 선언합니다.
' i 는 For 반복문에 x축 값으로 사용될 변수입니다.
Public bStart As Boolean
Dim i As Long
' bStart 는 하트모양 차트 명령문 실행/중단을 판단할 변수입니다. (공통변수)
bStart = Not bStart
- bStart 가 False로 될 때 까지 하트모양 만들기 차트 명령문을 계속 반복합니다.
Do
....
Loop While bStart = True
- B3셀의 값(=x축 값)을 1 부터 50까지 증가합니다.
For i = 1 To 50
If bStart = True Then
'bStart가 True이면 x축 값을 변경하고 시트를 업데이트합니다.
DoEvents
DoEvents
[b3] = i
Else
Exit Sub
End If
Next