������� ���������� ��������� �� ����� VBA – �������, ����� �������� �� ���������� ������, � ����������� �� ��������� ����������. ���� ���������� �������� ���������, ������� ����� ����������� ������������ ���������� ��� ��������, ����������� �������������� ����������� ������������ ���������� Microsoft Office, �� ���������� ������� ����������� ������. ��� ���������� ���� ��������� ����� ��������� � ������� ������� ���������� ������, ������� ������� ����� �������� ���������� ���������. ��� ����� � ���������� ���������� �������� ������ ������������ � ������� ������� ��� ������ ������������ �������� ����������, � ����� ������� ������ � ��������������� ����������� �����. ���� ��������� ��������� � ������� ������� ������ ������ �������.
���������� “�����������” ��������� (��� ���������� ������� ��������� ��������� ����, � ���������� ���������� ����������) ����� �������� ��� �����. ������ ���� – ���� ����������� ����������������, �� ������� ��������� ���� (�����) ���������, ��� ������������� ����������� �������� ����������. ������ – ���� ����������������, �� ������� ��������� ����� ��������� (���������), ������������� � ����� �� ������������ �������. �������� ��������, ��������, ������ ����� ������� ���� �� ��������� ������ (������� Click), ������� ������� �� ���������� (������� KeyPress) � �.�. ������������ ����� ���������� ����� �������� ������ – «������ �������».
2.1. �������, �������� � ������ VBA
����� �� �������� ������� VBA �������� ������. ������ – ��� ��, ��� �� ���������� � ������� ��������� �� ����� VBA, ��������, �����, ������, ������� ���� ��� �������� ����� MS Excel. ������ ������ �������� ���������� ����������. ��������, ����� ����� ���� ������� ��� ��������� � ������ ������ �� ������. ������ ������ �������� ������� – ����� ��� ����������� ���������� � ������ (�������) �������� �����.
������ �������� ����� ������ �������, ������� � ���� ���������. ������ – ��� ��, ��� �� ������ ������ � ��������. ��������, �������� ����� �� ������ ��� ������ � ����� � ������� ������� Show � Hide.
����� �������, ������ – ��� ����������� �������, ������� ����� ���� ����������� �� ������, �������� ��������� ����������, ������������ ��� ��������, � ��������� ������ ��� ���������� ��������. ��������, � MS Excel ������� ����� ���������� ��������:
Range(“�����”) |
- �������� ����� (����� �������� ������ ���� ������). |
Cells(i, j) |
- ������, ����������� �� ����������� i-� ������ � j-�� ������� �������� ����� MS Excel (i � j – ����� �����). |
Rows(� ������) |
- ������ � �������� �������. |
Columns(� �������) |
- ������� � �������� ������� |
Sheets(“���”) |
- ���� � ��������� ������. |
Sheets(� �����) |
- ���� � ��������� �������. |
WorkSheet |
- ������� ����. |
��������� �������� ������� – ��� ���� �� �������� ���������� ���������. ��������� ��������� �������� �������� ������� ���������:
������. �������� = ���������
�������� ��������� �������� Cells � Range, �������� Value (��������), �������, ������, ����� �� ���������. ��������:
Range(“A5:A10”). Value = 0 ��� Range(“A5:A10”) = 0 – � �������� ����� A5:A10 ��������� �������� 0.
Cells(2, 4). Value = n ��� Cells(2, 4) = n – � ������, ����������� �� ����������� 2-� ������ � 4-�� ������� (������ � ������� “D2”), ��������� �������� ���������� n.
��������� ������ ������� ������� ���������:
���������� = ������. ��������
��������:
Xn = Cells(1, 2).Value ��� Xn = Range(“B1”).Value – ���������� Xn ������������� �������� �� ������ B1 �������� �������� �����.
��������� ���������� ������� � �������:
������. �����
��������:
Sheets(2).Activate – ������� �������� ���� � �2.
Sheets(“���������”).Delete – ������� ���� � ������ “���������”.
Range("A5:A10").Clear – �������� �������� ����� A5:A10.
Range("A2:B10").Select – �������� �������� ����� A2:B10.
� MS Excel ������� �������, ������� �������� ������ �������. ��������, ������� ����� �������� ������� �����, ������� ���� �������� �������� ����� � �.�. �������� ������ �������� ������ �������� Application (����������). ���� �� ��������� ��� �������� ��� ��������� ��� ������, �� ��������� ����������� � ������� ������ MS Excel. ��������:
Application.Quit - ���������� ������ � Excel.
�������, ��� ����� ����� ����� ������� ����� �������������� ��� �������� �� ������ ������� � �������. ��������, ��������� ��������� ������� ������ ������ �������� ����� ��� � ������� ����� �����:
Application.Workbooks("�����").Worksheets("���").Rows(2).Delete
����� �������� ���������:
- ����� �� ������ ��� ������� Application, ��� ��� ��� ��������������� �� ���������.
- ��� ������ � ����������� ��� ����������������� ������� ��� ������������� ��������� ���������� ��� ������.
- VBA ���������� ��������� �������� � ������, ������� ���������� ������ � �������� ��� ��������� (��� ��������� ������ ��������� ������ ������). ������� ����� �������: ActiveCell (�������� ������), ActiveSheet (�������� ����), ActiveWorkBook (�������� ������� �����). ���, ���������� �������� �������� ������ ����� ��������� �������:
ActiveCell.Value = " ��".
2.2. �������� ������
��� �������, �������� ��������� ���� ���������������� V��, ��������� � ������������� ����.
��� ������ ����������:
– ������� ��������� �������� ����������;
– ��������� ����������� ������;
– ��������, ������������ ��� ������� ����� ����.
���� ������ �������������� �� ������� (���������) � ������� (�����������������). � ������� ����� ������ ��������� �������� ������ ����� � ��������. ������� �� ���� ����� ���������, � ������� ������ ��������� ������� ���� ������. ��������� ���� ������ ������������ � ������� 2.1.
������� 2.1. ��������� ���� VBA
��� ���� |
������� |
��������� �������� |
Boolean |
���������� |
True, False |
Byte |
�������� |
0…255 |
Integer |
����� |
-32768…+32767 |
Long |
������� ����� |
-2147483648…+2147483647 |
Single |
����� � ��������� ������ |
-3,4�38…-1,4�-45 ��� ������������� ��������. 1,4�-45…3,4�38 ��� ������������� ��������. |
Double |
����� � ��������� ������ ������� �������� |
-1,7�308…-4,9�-324 ��� ������������� ��������. 4,9�-324…1,7�308 ��� ������������� ��������. |
Currency |
�������� |
���������� ����� � ������������� �������� �������. �������� 15 ���� �� ������� � 4 �����. |
String |
��������� |
���� ��� ���� �����: ������ ������������� ����� (�� 216 ��������) � ������ ���������� ����� (�� 231 ��������). ������ ������������ � ��������. |
Date |
���� |
���� ���������� � ��������� �� 1.01.100�. �� 31.12.9999�. |
Object |
������ |
������ �� ������ (���������) |
Variant |
������� |
������������� ���, ��������� �������� ����� ���� ������ ������ �� ������������� ���� �����, �������, �������� NULL � �������� ������ ERROR. |
���������� � ��������� ����� ��������� ��� �� ���������. � ��������� ������ �� ����� �������� ��� Variant. ���� ��������� ���������� ����� ��� � ������ �����, ��� � � ����� �����, ��� �������� ������������� ������������ ����� ����������. ����� ��� ���������� ��������� ���� �, ��� �������, � ������ �����. ��� ������� ������������� ����������, ������� �� ���� ������� ����, � ������ ��������� ���������� �������� �������� Option Explicit.
2.2.1. �������� ������� ����������
�������� ������� ���������� ����� ��������� ���������:
Dim ���_���������� As ���_����
����� ���������� Dim ����� ������� ������������ ����� ����������, �� ����������� �s ������ ���� ������� ��� ������ �� ���, ����� ���������� ��� �s ����� �������� ��� Variant.
��������.
Dim X As Byte, Z As Integer, �, C���� As String
����� ���������� � - ��� ���������� ��������� ����, ���������� Z - ������ ����, ���������� � - ���� ������� (�� ���������), ���������� ����� - ���������� ����.
2.2.2. �������� ��������
������, �� ������������ ������ ��������� ����� ������� �����������. �� ����� ������� ��������� �������:
Const ���_��������� As ���_����=����������_���������
��������.
Const Pi As Double = 3.141593
2.2.3. �������� ��������
��� �������� ��������, ������ � �.�. ����� ������������ �������.
������ - ��� ����������������� ��� ������, ������� ������������ ����� ������������������ ����� ������, ������� ����� ��� � �������� ������ ������ ����. ������ ������� ������� ������������ �������� (�������). ���������� ��������� � ������� ���������� ������������ �������. ������ ����������� ��������� ������������:
Dim ���_�������(������_������������) As ���_����
� ������ ������������ ������� ������ ��������� ���������� ������� � ������������ �������� ������ � ������� ������ ��������� ��������.
��������.
Dim X(1 TO 5) As Integer, Y(1 To 10, 1 To 20) As Double
����� � - ���������� ������, ��������� �� 5 ��������� ������ ����, Y - ��������� ������, � �������� 10 ����� � 20 �������� � ���������� ��������� ���� ������� ��������.
2.3. ���������
��������� ������������� ������� ���������� �������� ��� ���������� ������. ��������� ������� �� ��������� � ������ ��������. ���������� �������� ���������, ����������, ��������� �������, ���������, ������ � ������.
2.3.1. ���� ��������
�������� ������ ��������������, ��������� � ����������:
– �������������� ��������:
^ ���������� � �������,
* ���������,
/ �������,
\ ������� ������,
mod ������� �� �������,
+ ����,
- �����;
– �������� ���������:
< ������,
> ������,
<= ������ ��� �����,
>= ������ ��� �����,
= �����,
<> �� �����;
– ���������� ��������:
Not ���������� ���������,
And ���������� "�",
Or ���������� "���".
����������� ���������� �������� ����� ���� ���� �� ���� ��������:
True ("������") ��� False ("����").
2.3.2. ��������� ���������� ��������
���� ��������� �������� ��������� ��������, �� ��������� �� ���������� ���������:
1. ������� ����������� �������������� �������� � ����� �������, ��� ��� ������������ � ������� 2.2.
������� 2.2. ��������� �������������� ��������
�������� �������� |
����������� � V�� |
������� ����� (��������� �����) |
- (� ������ ���������) |
���������� � ������� |
^ |
��������� � ������� |
*, / |
������� ������ � ������� �� ������� |
\, Mod |
�������� � ��������� |
+, - |
2. ����� �������� ��������� (��� ����� ���������� ���������).
3. ���������� ����������� ���������� �������� � ����� �������, ��� ��� ������������ � ������� 2.3.
������� 2.3. ��������� ���������� ��������
�������� �������� |
����������� � V�� |
���������� ��������� |
Not |
���������� "�" |
And |
���������� "���" |
Or |
���� ��������� �������� ��������� �������� ����������� ����������, �� ������� �� ���������� ����� �������. ����� �������� ������� �������� � ��������� ������������ ������� ������.
��������� ������ ��������������, ��������� � ����������.
�������������� ��������� ������������ � ������� ��������� �������� ����� � �������������� ��������, � ����������� �������� �������� ��������. � �������������� ��������� ����� ������������ ����������� �������������� �������, ������� ��������� � ������� 2.4.
������� 2.4. ����������� �������������� ������� VBA
�������������� ������ |
��� ������� � VBA |
�������� |
½�½ |
Abs(�����) |
���������� ��������, ��� �������� ��������� � ����� ����������� ���������, ������ ����������� �������� ���������� �����. |
arctg X |
Atn(�����) |
���������� �������� ���� Double, ���������� ���������� �����. |
cos X |
Cos(�����) |
���������� �������� ���� Double, ���������� ������� ����. |
]X[ |
Int(�����) |
���������� �������� ����, ������������ � ����� ���������, ������� �������� ����� ����� �����. |
ln X |
Log(�����) |
���������� �������� ���� Double, ���������� ����������� �������� �����. |
eX |
Exp(�����) |
���������� �������� ���� Double, ���������� ��������� ���������� ����� e (��������� ����������� ����������) � ��������� �������. |
Sign X |
Sgn(�����) |
���������� �������� ���� Variant (Integer), ��������������� ����� ���������� �����. |
sin X |
Sin(�����) |
���������� �������� ���� Double, ���������� ����� ����. |
|
Sqr(�����) |
���������� �������� ���� Double, ���������� ���������� ������ ���������� �����. |
tg X |
Tan(�����) |
���������� �������� ���� Double, ���������� ������� ����. |
��������� ��������� ���������� ���������� ��� �������� ���������� ��� ��������� ���� ���������. ���������� ����� ������ ������ ����������� ����. ��������� �������� ��������� ������ ����������: True - "������" ��� False - "����".
���������� ���������. ����������� ����������� ��������� �������� ���������� �������� True ��� False. ����������� ������ ���������� ��������� ��������: ���������� ���������, ���������� ����������, ���������� �������, ��������� ���������. ���������� �������� ����������� ������ ��� ���������� ����������� ����.
������. �������� 1£�£5 � ���������� �������� ��������� ��� �=3.1
��������� � V�� ����� ��������� ���:
X>=1 And X<=5
����������� ��������� ����� True.
����� �������� �������� ���� �������������� �������, ���������� ������� ��� ����� ��������� �������������� ������� (��������, SIN), � ����� ������ ������� F1 � ���� �������� ��������� ������� ������� ������ �� �������������� �������. � ���������� ������� ����� �������� ������� � ���������� ����� �� ���������� �������������� ������� � �� ���������.
����� �������� �������� ���� ����������� �������������� ������� � ������� �� ������������, ���������� ������� ��� ����� ��������� �������������� ������� (��������, SIN), � ����� ������ ������� F1 � ���� �������� ��������� ������� ������� ������ �� ����������� �������������� �������.
����, � ������� 2.5, �������� ������ �������, ������� ����� ���� �������� � ������� ���������� �������������� �������.
������� 2.5. ����������� �������������� �������
�������������� ������ |
�������� ������� |
���������� ���������� ������� |
sc X |
������ |
1/Cos(X) |
csc X |
�������� |
1/Sin(X) |
ctg X |
��������� |
1/Tan(X) |
arcsin X |
�������� |
Atn(X/Sqr(-X*X+1)) |
arccos X |
���������� |
Atn(-X/Sqr(-X*X+1))+2*Atn(1) |
arcsc X |
��������� |
Atn(X/Sqr(X*X-1))+Sgn((X)-1)*2*Atn(1) |
arccsc X |
����������� |
Atn(X/Sqr(X*X-1))+(Sgn(X)-1)*2*Atn(1) |
arcctg X |
������������ |
Atn(X)+2*Atn(1) |
sh X |
��������������� ����� |
(Exp(X)-Exp(-X))/2 |
ch X |
��������������� ������� |
(Exp(X)+Exp(-X))/2 |
th X |
��������������� ������� |
(Exp(X)-Exp(-X))/(Exp(X)+Exp(-X)) |
sch X |
��������������� ������ |
2/(Exp(X)+Exp(-X)) |
csch X |
��������������� �������� |
2/(Exp(X)-Exp(-X)) |
�th X |
��������������� ��������� |
(Exp(X)+Exp(-X))/(Exp(X)-Exp(-X)) |
arsh X |
��������������� �������� |
Log(X+Sqr(X*X+1)) |
arch X |
��������������� ���������� |
Log(X+Sqr(X*X-1)) |
arth X |
��������������� ���������� |
Log((1+X)/(1-X))/2 |
arsch X |
��������������� ��������� |
Log((Sqr(-X*X+1)+1)/X) |
arcsch X |
��������������� ����������� |
Log((Sgn(X)*Sqr(X*X+1)+1)/X) |
arcth X |
��������������� ������������ |
Log((X+1)/(X-1))/2 |
lognX |
�������� �� ��������� N |
Log(X)/Log(N) |