:
:
:
-08 | ||||||||||||||||||||||||||||||||||
(, , ) | ||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||
. | ||||||||||||||||||||||||||||||||||
, - | ||||||||||||||||||||||||||||||||||
xls. | ||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||
, , - | ||||||||||||||||||||||||||||||||||
, , , - | ||||||||||||||||||||||||||||||||||
, | ||||||||||||||||||||||||||||||||||
, . | ||||||||||||||||||||||||||||||||||
. - | ||||||||||||||||||||||||||||||||||
VBA Excel 2003.: 2005. 800.: . . ISBN 5-8459-0771-3(); | ||||||||||||||||||||||||||||||||||
. + = : . . .: , | ||||||||||||||||||||||||||||||||||
1985 406 ., . | ||||||||||||||||||||||||||||||||||
08.06.2011 | ||||||||||||||||||||||||||||||||||
28.06.2011 | ||||||||||||||||||||||||||||||||||
.. | ||||||||||||||||||||||||||||||||||
() | (, . . ) | |||||||||||||||||||||||||||||||||
.. | ||||||||||||||||||||||||||||||||||
() | (, . . ) | |||||||||||||||||||||||||||||||||
.. | ||||||||||||||||||||||||||||||||||
() | (. . .) | |||||||||||||||||||||||||||||||||
: 33 ., 6 ., 1 ., 3 . xls-. , MS Office, , , , , . , , . , . , EXCEL, VBA, , | ||||||||||||||||||||||||||||||||||
080403.1.01.08/008. | ||||||||||||||||||||||||||||||||||
.. | ||||||||||||||||||||||||||||||||||
. | .. | , . , -08 | ||||||||||||||||||||||||||||||||
.. | ||||||||||||||||||||||||||||||||||
. . | .. | |||||||||||||||||||||||||||||||||
......7 1 腅...9 1.1 ...9 1.2 ..11 1.3 .........11 2 EXCEL....12 2.1 ⅅ.....12 2.2 ⅅ.....13 2.3 腅.......13 2.4 Range. 13 2.4.1 Range14 2.4.2 Cells. 14 2.4.3 Offset14 3 VBA....16 3.1 VBA..16 3.2 腅...16 3.3 ...................... 17 3.4 充.... 18 3.4.1 .... 18 3.4.2 .....19 3.4.3 .. 19 3.5 ...... 19 3.5.1 ..... 20 3.6 .......... 20 3.6.1 ..... 20 3.6.2 .... 20 3.6.3 ⅅ 21 3.6.4 ⅅ 21 3.6.6 腅 22 3.6.6.1 With-End With... 22 3.6.6.2 For Each-Next.... 22 3.6.7 .. 22 3.6.7.1 GoTo.......... 23 3.6.7.2 If-Then.... 23 | ||||||||||||||||||||||||||||||||||
080403.1.01.08/008. | ||||||||||||||||||||||||||||||||||
. . -08 | .. | |||||||||||||||||||||||||||||||||
3.6.7.3 Select Case..... 23 3.6.8 酅.... 24 3.6.8.1 for-next..... 24 3.6.8.2 do while do until.... 24 3.6.9 腅... 25 3.6.9.1 ... 25 4 ...... 26 4.1 酅..... 26 4.2 ... 27 4.2.1 , , , .. 27 4.2.2 .. 28 4.2.3 ...................... 28 4.3 充....31 4.4 充.......................................... 31 4.4.1 酅. 31 ......33 . ....... 34 . 酅.......................40 . .... 49 | ||||||||||||||||||||||||||||||||||
080403.1.01.08/008. | ||||||||||||||||||||||||||||||||||
. . -08 | .. | |||||||||||||||||||||||||||||||||
, , , BASIC Beginners All-purpose Symbolic Instruction Code VB Visual Basic VBA Visual Basic for Application (VB ) VBE Visual Basic Editor ( VB) | ||||||||||||||||||||||||||||||||||
080403.1.01.08/008. | ||||||||||||||||||||||||||||||||||
. . -08 | .. | |||||||||||||||||||||||||||||||||
|
|
|
|
, : , , , . , .. , , .
:
- , , , ;
- ;
- , , - , .
, , , : , , , . : , , . , , , , , , .
:
- , , ;
- , , , .
, , , , , , .
|
|
, , , , .
MS Excel Microsoft, , , . , , , , , MS Excel.
, , , , . , 1C, MS DAX (Axapta) , , . , , , .
, , MS Excel , , , .
1
1.1
, : , ( 1.1) (, ) ( 1.2, 1.3).
:
- ;
- ( ), ;
- ( ), .
, . , , ( 1.1).
1.1
1.2 1.3 , , , .
1.2
1.3
, , () . () .
1.2
, , , , , , , , .
1.3
, , , 1, , , . , , 1, .
|
|
, , , , , , , , .
, VBE, MS Excel, , , . VBA Excel , , .
2 EXCEL
MS Office . , , .
, Excel , , , , , , , , . VBA .
2.1
Excel , , , , , .
. , Excel Application, , , Workbook ( ). Workbook , , Worksheet ( ) Chart (). Worksheet , , Range (), PrivotTable ( ) .. Excel.
Application (.. Excel) . , Application:
- Workbooks Workbook ;
- Windows Window ;
- AddIns AddIn .
. , Workbooks Workbook, Workbook , :
- Worksheets Worksheet ;
- Charts Chart ;
- Names Name .
, , . Worksheets Worksheet Workbook. Worksheet , :
- ChartObjects ChartObject ;
- Range ;
- PageSetup ;
- PivotTables PivotTable .
, , -. , , 1.xls :
Application.Workbooks (1.xls)
1.xls Workbooks. Workbooks Application. , 1 1.xls:
Application.Workbooks(1.xls).Worksheets(1).Range(A1)
2.2
. , , Value Name. .
, . - , . , Range ClearContents. .
2.3
VBA .
( ).
, . , :
Worksheets (1) Worksheets(1)
, For-Each In, .
2.4 Range
|
|
, , VBA, , .
Range Worksheet . Range VBA:
- Range Worksheet Range;
- Cells Worksheet;
- Offset Range.
2.4.1 Range
Range Range. :
- .Range(1);
- .Range(1,2).
Range : Worksheet Range. 1 2 , Excel ( ) ( ).
2.4.2 Cells
Cells. Range, Cells Worksheet Range. Cells:
- .Cells(_, _);
- .Cells(_);
- .Cells.
, .
, , . , A1:B2, , A2.
(, Range).
2.4.3 Offset
Offset ( Range Cells) Range. , Offset Range . :
- .Offset(_,_).
Offset Range. ( ), ( ) .
: Offset . , , Worksheets(1).Range(A1:B10).Cells(1), : , , , A1:B10, , . . , With, , Offset, .
3 VBA
, , , , VBA . VBA , for, do-while, do-until, , .
3.1 VBA
VBA Microsoft, MS Office, .
VB (Visual Basic) Microsoft, Windows. 1991 . Visual Basic BASIC, , VBA.
VB, BASIC . , . , BASIC 1960- . BASIC , .
VBA For, , GoTo.
3.2
, . VBA . ( , ).
. VBA , , .
, . , , .
3.3
VBA , . . , , .. .
3.1 VBA .
3.1 VBA
Byte | 1 | 0 255 |
Boolean | 2 | True () False() |
Integer | 2 | -32768 32767 |
Long | 4 | -2147483648 2147483647 |
Single | 4 | -3,40282338 -1,4011298-45 ( ); 1,401298-45 3,40282338 ( ) |
Double | 8 | 1,79769313486232308 4,94065645841247-324 ( ); 4,94065645841247-324 1,79769313486232308 ( ) |
Currency | 8 | 922337203685477,5808 922337203685477,5807 |
2.1 VBA () | ||
Decimal | 14 | +/79228162514264337593543950335 ; +/7,9228162514264337593543950335 28- |
Date | 8 | 1 100 31 9999 |
Object | 4 | |
String ( ) | 10 + | 0 ~ 2. |
String ( ) | 1 ~65400 | |
Variant () | 16 | Double |
Variant () | 22 + | 0 ~ 2 . |
, : , , .. VBA , .
, , VBA, Variant. Variant , , : , , . , , Variant . , , , , , .
VBA , .. , , , .. , Variant, .
, .
, , , .
, Option Explicit, , , , .
3.4
VBA . , , . .
. , . .
3.4.1
VBA , :
- , , ;
- VBA ;
- ;
- (#,$,%,& !) ;
- 254 .
3.4.2
Dim. Sub End Sub. Dim Sub, .
Dim BASIC ( Dimension ). VBA Dim , .
Dim ( . ):
Dim <_1> [As <_]
[,<_2> [As <_]]
[., <_n> [As <_] ]
As , Variant.
, , VBA , .
3.4.3
, . :
- ( Dim Static);
- ( Dim Private);
- ( Public).
3.5
. , .
3.5.1
Const, Dim ( . ):
Const <_1> [As <_] = <>
[,<_2> [As <_] = <> ]
[., <_n> [As <_] = <>]
. .
3.6
, ; , .
3.6.1
, , Dim Public. , . :
Dim <_> ([[_ To] <_>]) [As <_>]
, , , :
Option Base <__>
3.6.2
VBA 60- , . , :
Dim <_> ([_1][,_2][][,_60]) [As <_>]
:
[[<_> To] <_>]
, :
<_> (<__1>[,][,__60])
:
MyArray(3,4)
3.6.3
. :
Dim <_> () [As _]
, , ReDim, VBA, .
3.6.4
, , , . :
- ;
- .
, , Dim Public, , , Set:
Set <_> = <>
3.6.5
VBA , , . . Type :
Type <__>
<_1> [As <_>]
[, <_2> [As <_>] ]
[,]
[,<_n> [As <_>]
End Type
, dim public.
3.6.6
VBA , :
- With-End With;
- For Each-Next.
.
3.6.6.1 With-End With
With-End With . , . :
With Range(A1:B10).Font
.Name = Times New Roman
.Size = 12
.Bold = True
End With
1:B10, , ( , ) Range(A1:B10).Font, With , , With End With, .
3.6.6.2 For Each-Next
, . For Each-Next (.. , , , ).
For Each-Next :
For Each-Next <> In <>
[]
Next []
3.6.7
VBA . . , , , . :
- GoTo;
- If-Then;
- Select-Case;
- For-Next;
- Do While;
- Do Until.
3.6.7.1 GoTo
GoTo. . , , , .
VBA , GoTo .
GoTo :
GoTo <>
:
: i =i+1
If (i<7)Then GoTo End If
3.6.7.2 If-Then
, , , . :
If <> Then <_> [Else _]
, Then, Else, If-Then
3.6.7.3 Select Case
Select Case . , If-Then-Else. Select Case :
Select Case <_>
[Case <_>
[]]
[Case Else
[__]]
End Select
3.6.8
. , , , GoTo. , GoTo . , VBA , . GoTo , BASIC. VBA :
- for-next;
- do while;
- do until.
Exit, : for-next exit for, do while do until - end do.
.
3.6.8.1 for-next
fornext . , , .
:
For <> = <> To <> [Step <>]
[]
Next []
3.6.8.2 do while do until
Do while . For-Next, Do While , , Do While :
Do [While <>]
[]
Loop
Do
[]
Loop [While <>]
Do While Do Until : Do While , , Do Until , ( , ).
: , , , , .
, , .
3.6.9
VBA, VBA, , VBE. .
, , . (, , Exit).
. , . , Excel. , .
, , , , Sub, Function.
, . , , =. =MyFun() , MyFun Public.
3.6.9.1
, Sub, :
[Private | Public ] [Static] Sub <_> ([_])
[]
End Sub
:
- private , , ;
- public , .
4
VBA Excel, , .
, , :
1. , .
a. , . .
b. .
2. .
a. , , , .
b. .
c. .
3. .
4. .
a. .
b. .
5. .
a. ( ).
b. .
c. .
d. .
, , , , , .
4.1
1.1, 1.2 1.3 xls , . , , , , , , , , , , .
, , . , , , .
4.2
, , .
4.2.1 , , ,
4.1, , , . , , , . .
, . , , .
:
1. .
2. , , .
3. , , .
4. , , , , . , , .
5. , .
6. , , .
, :
1. .
2. , , , , .
3. .
4. .
5. , , . , .
6. , , , , , . , , , , .
R- .
4.2.2
, , , , , , , .
, , . , .
, ( 4.1):
- , ();
- , ();
- , .
4.2.3
, , , . :
1. .
2. , .
. , , .
4.1
, , .
, : , , , , ( 4.2)
, () :
Sub ()
1, 2, 6, 3, 4, 5, 6, 20
End Sub
, , , , :
Sub ()
6, 7, 6, 3, 4, 5, 2, 20
End Sub
4.2 ,
4.3 : , (), , ().
4.3
4.3
. , , , , : ( ), : ( ), .
4.4
, , , .
.
4.4.1
, , . , , , . Offset With End With.
, :
- ;
- ;
- , .
Excel VBA , . , , , :
- , ;
- , , , , , ;
- , , , . , , ;
- , , ;
- , , , , ;
- , , , , .
, , , , , .
.
. .
.
, , (), . , , , . , . .
.1
xls, , 컻 : , , () ( .3).
, , , , .
, , , , , , , ( .1, .2). , , .
.1 , . ..
.2 MS Excel
.3 ,
, ( .4). , , , ().
.4
, , .
.2 ,
, , , . , , .
.2.1
, , , .
.5 , 1.
, , , Debug, ( .6). , , (), , .
, , , ( .7).