You are on page 1of 59

VBA

VBA
90,.
, .
:EXCELEXCEL,WORD BASICWORD,.
-------Visual Basic For Application(VBA),VBA
VASUAL BASIC .VBAVB.VBAVB
:
1. VB,VBA(EXCEL)

2. VB,VBA.
3. VB,VB,VB
(*.EXE),VBA,EXCEL.

,VBAVB.,VB,
VBA.

VBA?,,,
.

EXCEL
VBA?VBA:

EXCEL,

EXCEL,

EXCEL
EXCEL:
EXCEL,,,

EXCEL

EXCEL


VBA
EXCELVBA

A1

255


EXCELVBAEXCEL
VBA
EXCELEXCEL

A3

A3


EXCEL?.
,VBA.

Sub ()
'
' Macro
' xw 2000-6-10
'
'
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub

With,
With

Sub ()
'
' Macro
' xw 2000-6-10
'
'
With Selection.Interior
.ColorIndex = 3
End With
End Sub

With :
Range(A5).Select
,
,
A5.

EXCEL.
.:

,
,

EXCEL

EXCEL

CTRL+C
CTRL+C



1
2
3

PERSONAL.XLS

EXCEL

XLSTART

C:\WINDOWS\Profiles\Application Data
\Microsoft\Excel\XLSTART


,
,:
1HOUR2--,

2
3
4.
5.,,
,EXCEL
6
7


,
.:
EXCEL
EXCEL
EXCEL
A3
-

A3

PERSONAL.XLS
VBA

VBA

HOUR2

Excel

HOUR2
-

EXCEL
.


,HOUR3.
,,.
169

Windows


EXCEL,,
:

HOUR3,

E1,
,,.
,ALT
1,"",.,


,:

,.
,"".
""A1.
,.
,A1TRUE,.
,A1FALSE.
."".
""A3.
,.
,A11,A1
.
.


EXCEL,,
.,
.
,,
..
,.VBA
.:
1)"HOUR3",""-""-"VBA",VBA.
2) VBA""""
,"" ,VBA
"USERFORM1","",
,. :

,.
.EXCEL,
:"","","""""".

(TabStrip)
..
:,
.,,TAB1TAB2,
.

,.,
,.,
:"""""".
""...".

.:
*.bmp,*.cur,*.gif,*.ico,*.jpg,*.wmf.

RefEdit

VBA
/
VBA

F5


VBA

.
VBA
VBA


EXCELEXCELVBA


VBA

Sub cmdSmallFont_Click()
With Selection.Font
.Name="Arial"
.FontStyle="Regular"
.Size=16
End With
End sub

CmdSmallFont
Click


False True.VBA

4-210%

Public Function Shipping(Price)


Shipping = Price * 0.1
End Function

Price).
Price


Msgbox
Msgbox

""-""-"Visual Basic"VBA

`VBA
Thisworkbook"
-
( Ctrl+R)

Public Sub
End Sub

6
Msgbox ""

Msgbox

Public Sub
Msgbox ""
End Sub

VBA

@ & $ #.
*
255




/
F5

1/


,.
VBA.:

""-"".,
.

HOUR4,
.


.
,,,
.
,:
1)"".
2):
Inputbox ":"
3)F5,,.
4)"",.
??,
.


.
.VBA,
.

Byte

0 - 255

Boolean

TrueFalse

Integer

-32768 - 32767

Long()

-2147483648 - 2147483647

Single

:
-3.402823E38 ~
-1.401298E-45
: 1.401298E-45
~ 3.402823E38

Object

String(

10+1/

0 - 20

Double

:
-1.79769313486232E308 ~
- 494065645841247E-324
:
4.94065645841247E-324
~ 1.79769313486232E308

Decimal

14

:
+/-79228162514264337593543950335
:
+/7.9228162514264337593543950335

Currency

-922337203685477 ~ 922337203685477

Date

100011 - 99991231

String(

1 ~ 65400

Varient

16

Double

Varient

22+1/

Dim()
,,.
Dim,""

Dim:
Dim AS
,,
,@ & $ #.
255

Array

ary

Boolean

bin

Byte

bit

Currency

cur

Double

dbl

Date/Time

dt

dtm/ dat

Integer

int

Long

lng

Object

obj

Single

sng

String

str

Variant

var


,.
.
,:
Dim array_name(n) As type

(n

,10,:
Dim s(9) As Integer

Dim dyn_array() As type


ReDim
ReDim dyn_array()(array_size)
array_size
ReDimPreserve,

ReDim Preserve dyn_array(array_size)

Dim i As Integer
Dim i As Integer
Dim i As Integer
i = inputbox("")
ReDim Preserve i(i)
For i = 1 to i
i(i) = inputbox(""& i )
Next


,.
..
3.1415926. ,
const.,.
,,:
const As Long = 0.17


,,.
:
.

,,
,

Public

Public variablename As datatype

Public const CONSTANAME datatype = value

VBA

Excel Home EXCEL

VBA
worksheet ,
Active(

Private Sub Worksheet_Activate()


End Sub

VBA

(123,Sheet
,sheet"")
If Application.InputBox(":") = 123 Then
Range("A1").Select
Else
Msgbox ",!"
Sheets("").Select
End if

VBA

Private Sub Worksheet_Activate()
If Application. InputBox(":") = 123 Then
Range("A1").Select
Else
MsgBox ",!"
Sheets("").Select
End If
End Sub

VBA

Deactivate,

Sheets("").Cells.Font.ColorIndex = 2

Range("A1").Select
ActiveSheet.Cells.Font.ColorIndex = 56

VBA

Private Sub Worksheet_Activate()


If Application.InputBox(":") = 123 Then
Range("A1").Select
Sheets("").Cells.Font.ColorIndex = 56
Else
MsgBox ",!"
Sheets("").Select
End If

VBA
Microsoft Office
OfficeVBA
VBA
VBAVBAVBA

1VBAWorksheet

Excel
Excel
VBAExcel

VBA

Range CurrentRegionRange
VBA
Excel
Worksheet

For Each c In Worksheet(1).Range(A1:A1000)


TotalValue = TotalValue c.Value
Next
AverageValue = TotalValue / Worksheet(1).Range
(A1:A1000).Rows.Count

VBA

AverageValue=Application.WorksheetFunction.Average(Worksheets(1)
.Range(A1:A1000))
Count, Counta, Countif, Match, Lookup
VBA
2

ExcelOLE
OLE
VBA

VBA
1With

Workbooks(1).Sheets(1).Range(A1:A1000).Font.Name=Pay
Workbooks(1).Sheets(1).Range(A1:A1000).Font.FontStyle=Bold
...

With Workbooks(1).Sheets(1).Range(A1:A1000).Font
.Name = Pay
.FontStyle = Bold
...
End With

VBA
2

Set

Workbooks(1).Sheets(1).Range(A1).Value = 100
Workbooks(1).Sheets(1).Range(A2).Value = 200

Set MySheet = Workbooks(1).Sheets(1)


MySheet.Range(A1).Value = 100
MySheet.Range(A2).Value = 200

VBA
3

For k = 1 To 1000
Sheets(Sheet1).Select
Cells(k,1).Value = Cells(1,1).Value
Next k

Set TheValue = Cells(1,1).Value


Sheets(Sheet1).Select
For k = 1 To 1000
Cells(k,1).Value = TheValue
Next k

VBA
3

VBAVBA
Workbooks(XXX).Activate,Sheets (XXX).Select, Range(XXX).Select
,

Sheets(Sheet3).Select
Range(A1).Value = 100
Range(A2).Value = 200

With Sheets(Sheet3)
.Range(A1).Value = 100
.Range(A2).Value = 200
End With

VBA
4
VBA
VBA2/3

Application.ScreenUpdate = False
VBA
Application.ScreenUpdate = True

Excel 97 ""
Office
application.ontime
expression.OnTime( EarliestTime, Procedure, LatestTime, Schedule)
Excel

Excel

1. 17:00:00
Sub Run_it()
Application.OnTime TimeValue("17:00:00"), "Show_my_msg"
' 17:00:00 Show_my_msg
End Sub
Sub Show_my_msg()
msg = MsgBox(" 17:00:00 ", vbInformation, "")
End Sub

2. Excel 97 "", 5

Sub auto_open()
MsgBox " 5
", vbInformation, ""
Call runtimer '
End Sub
Sub runtimer()
Application.OnTime Now + TimeValue("00:00:05"), "saveit"
' Now + TimeValue("00:15:00") 5 Saveit

End Sub

Sub SaveIt()
msg = MsgBox("" & Chr(13) _
& "" & Chr(13) _
& "" & Chr(13) _
& "", vbYesNoCancel + 64, "")
'
If msg = vbYes Then ActiveWorkbook.Save Else If msg = vbCancel Then Exit Sub
Call runtimer ' Runtimer
End Sub

Application.Ontime

You might also like