(Translated by https://www.hiragana.jp/)
Visual Basic for Applications - 维基百科,自由的百科全书 とべ转到内容ないよう

Visual Basic for Applications

维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
Visual Basic for Applications(VBA)
编程范型Multi-paradigmへんほどげん
じつ作者さくしゃMicrosoft
发行时间1993ねん
とうぜん版本はんぽん7.1(Microsoft Office 2021)
かたたい系統けいとう靜態せいたい/動態どうたい混合こんごうつよし/じゃく混合こんごう
操作そうさけいMicrosoft Windows, Mac OS X
許可きょかしょう專有せんゆうEULA
あみlearn.microsoft.com/en-us/office/vba 編輯維基數據鏈接
啟發けいはつげん
QuickBASIC, Visual Basic

Visual Basic for Applications(VBAこれVisual Basicてきいちしゅきょしゅうかたりごと主要しゅようのうようらい擴展Windowsてき應用おうようほどしきこうのう特別とくべつMicrosoft Office軟體。也可せつ一種應用程式視覺化的Basic Script。 1994ねん發行はっこうてきExcel 5.0版本はんぽんちゅうそく具備ぐびりょうVBAてききょしゅうこうのう

かずよりどころ類型るいけい

[编辑]

基本きほんすうよりどころ類型るいけい

[编辑]

そくPrimary Type Data,しもじゅつれつひょうてきくくごう內為ぶしすう

  • Byte (1):无符ごう类型,值范围0-255
  • Boolean (2)
  • Integer (2)
  • Long (4)
  • Single (4)
  • Double (8)
  • Currency (8)
  • Decimal (14)
  • Date (8)
  • String
  • Object (4)
  • Variant (すえ分配ぶんぱい确定)

てい义的すうすえ类型

[编辑]

相当そうとう于C语言てきstruct,れい如:

Type てい义类型名かためい
     元素げんそめい  As 类型
      …
     [元素げんそめい As 类型]
End Type 

すうくみ

[编辑]
Option Base 0 'すうくみ索引さくいん值從0開始かいし
Option Base 1 'すうくみ索引さくいん值從1開始かいし
Dim MyArray(10) '聲明せいめいいちすうくみ變量へんりょう,10最大さいだいてき可用かようてきすうくみ索引さくいん
MyArray(5) = 101 'きゅうすうくみてき元素げんそ
Dim Data(10,5) '聲明せいめいいち維數ぐみ變量へんりょう
Data(1,1) = "A001" 'きゅうすうくみ元素げんそ
Dim cArr(-11 To 20, 1 To 3) As String '聲明せいめいいちすうくみ定義ていぎすうくみ索引さくいん值的上下じょうげかい
Dim dArr() As String '聲明せいめい動態どうたいすうくみ
ReDim dArr(0 To 5, 1 To 2) '改變かいへん動態どうたいすうくみてき尺寸しゃくすん默認もくにんばらすうよりどころきよしじょ。如果保留ほりゅうばららいてきすうよりどころ必須ひっすじょうさんすうPreserve。
                                '使用しようPreserveさんすうただのう改變かいへん最後さいごいち維的大小だいしょう
If UBound(vTemp) = -1 Then
     '判斷はんだんすうくみ變量へんりょうvTempため そらすうくみ
End If
Erase MyArrar, Data 'Erase語句ごくきよし除數じょすうぐみ元素げんそ釋放しゃくほう變量へんりょう佔用てき空間くうかん

つねりょう

[编辑]

にちつねりょうよし符号ふごう“#”はたくくおこりらい,如#2012-1-1#。

けい统定义常りょうゆう3个:True、FalseNull。

固有こゆうつねりょう编程时引用いんようてき对象库定义的つねりょう所有しょゆう固有こゆうつねりょう以在ひろしあるVBAだい码中使用しよう通常つうじょう固有こゆうつねりょうどおり过前两个字母じぼらいゆびあきらてい义该つねりょうらいVB库的つねりょう则以“vb”开头。らいAccessてきつねりょう以“ac”开头。使用しよう对象浏览らい查看所有しょゆう对象库中てき固有こゆうつねりょうれつひょう

以自ぎょうじょう义常りょう。如:

Global Const 符号ふごうつねりょう名称めいしょう = つねりょう

调用DLL

[编辑]

れい如:

Private Declare Function getFrequency Lib "kernel32" _ Alias "QueryPerformanceFrequency" (cyFrequency As Currency) As Long
Private Declare Function getTickCount Lib "kernel32" _ Alias "QueryPerformanceCounter" (cyTickCount As Currency) As Long

ひかえせい結構けっこう

[编辑]

if 語句ごく

[编辑]
if 條件じょうけん1 then
   語句ごく1
elseif 條件じょうけん2 then
   語句ごく2
elseif ...
    ...
else
   語句ごくn
end if

Select Case 語句ごく

[编辑]
Select Case ひょうたちしき
   Case ひょうたちしきれつひょう1
       語句ごく1
   Case ひょうたちしきれつひょう2
       語句ごく2
       ...
   Case ひょうたちしきれつひょうn
       語句ごくn
End Select 

其中てきひょうたちしきれつひょう以为:

  • おもて达式 れい: "A"
  • よう逗号ぶんへだたてき一组枚举表达式 れい:2,4,6,8
  • おもて达式1 To ひょう达式2 れい:60 To 100
  • Is 关系运算ひょう达式 れい:Is < 60

Do...Loop 語句ごく

[编辑]
Do WhileあるUntil 條件じょうけん
   語句ごくかたまり1
   Exit Do
   語句ごくかたまり2
Loop
Do
   語句ごくかたまり1
   Exit Do
   語句ごくかたまり2
Loop WhileあるUntil 條件じょうけん

For...Next語句ごく

[编辑]
For 循環じゅんかんひかえせい變量へんりょう=はつ值To おわり值Step ちょう
   語句ごくかたまり ‘Exit For語句ごく以跳循環じゅんかんたい
Next

For Each … Next語句ごく

[编辑]
For Each 循環じゅんかんひかえせい變量へんりょう In 集合しゅうごう變量へんりょう
   語句ごくかたまり 
   Exit For語句ごく以跳循環じゅんかんたい
Next 循環じゅんかんひかえせい變量へんりょう

とべほんつぎ循环てきcontinue语句

[编辑]

VBAぼつゆう类似C语言てきcontinue语句。通常つうじょう如此うつしほどじょ

 For 循環じゅんかんひかえせい變量へんりょう=はつ To おわり Step ちょう
    Do 'よう于模拟continue
        語句ごくかたまり 
        If 条件じょうけん Then Exit Do 'よう于模拟continue
        語句ごくかたまり 
    Loop While False 'よう于模拟continue
 Next

With語句ごく

[编辑]
With 對象たいしょう引用いんよう
   語句ごくかたまり
End With

On Error語句ごく

[编辑]
On Error Goto 處理しょり語句ごくてきlabel 'とべうたていた處理しょり語句ごく

ある

On Error Resume Next 'ぐういた錯誤さくごかん錯誤さくご繼續けいぞく往下執行しっこう

具有ぐゆうひかえ制作せいさくようてき函数かんすう

[编辑]
  • IIf(条件じょうけんしき,おもて达式1,おもて达式2)
  • Switch(条件じょうけんしき1,おもて达式1,[条件じょうけんしき2,おもて达式2[,...,条件じょうけんしきn,おもて达式n]])
  • Choose(索引さくいんしき,选项1[,选项2,...[,选项n]]) '这是もと于1てき索引さくいん

其他語句ごく

[编辑]

註釋ちゅうしゃく語句ごく

[编辑]

使用しようREMあるものたん引號開始かいしてきぎょう

語句ごくてきれんうつしあずか續行ぞっこう

[编辑]

如果一行包括多條語句,ようおかせごう分割ぶんかつ各個かっこ語句ごくまたがくだりてき語句ごくざい行末ゆくすえようそらかく劃線”表示ひょうじ續行ぞっこう

過程かていあずか函數かんすう

[编辑]
Sub 過程かていめい(さんすうひょう)
    語句ごくかたまり
    Exit Sub
    語句ごくかたまり
End Sub

 

Function 函數かんすうめい(さんすうひょう) As Type
   語句ごくかたまり
   函數かんすうめい=ひょうたちしき
   Exit Function
End Function

以是Private、Public、Friend、Staticとう修飾しゅうしょく

调用函数かんすう/过程时,以加くくごうあるものくくごう。如果调用ひょう达式さくいちぎょうてきいち部分ぶぶん么必须用さんすうれい如函すう调用てきかえしかい值赋给变りょう。 调用过程时, 使用しよう/使用しようcall关键使用しようcall语句调用过程,如果无参すう,则不くくごう;如果ゆうさんすう,必须くくごう。如果调用时用くくごうつつみじゅう单个さんすう,则该さんすう强行きょうこう按值传递。需要じゅようとく注意ちゅうい不用ふようcallくくごうてき调用,かたち参与さんよ实参传值(passed by value)而不引用いんよう(passed by reference),这会导致一些对象的方法调用失败。れい如:

    Dim cn As ADODB.Connection
    Set cn = CurrentProject.Connection
    Dim rs As New ADODB.Recordset    
    rs.Open "SELECT * FROM myTable" , cn

    Dim ExcelApp As New Excel.Application
    Dim ExcelWst As Worksheet
    Set ExcelWst = ExcelApp.Workbooks.Add.Worksheets(1)

    ExcelWst.Range("A2").CopyFromRecordset(rs) 'しつ败,无法执行该行
    ExcelWst.Range("A2").CopyFromRecordset rs  '成功せいこう执行该行

常用じょうようないおけ函数かんすう

[编辑]

VBAてき常用じょうようないおけはこ数列すうれつひょうさん见:[1]页面そん档备份そん互联网档あん

  • MsgBox
  • InputBox
  • しゃにゅう函数かんすう:Fix こう0せい,Intこう下取したどりせい, Roundよんしゃいれ
  • Rnd かえしかい0-1内的ないてき精度せいどずいつくえすう
  • くし函数かんすう
    • Filter:对字くしてき一维数组的过滤
    • InStr([Start, ]<Str1>,<Str2>[, Compare])あずかInStrRev: 查找くし
    • Len くし长度
    • Join:连接一维数组中的所有子字符串
    • Left,Right,Mid 截取くし
    • Space(すう值) 生成せいせいそらかくくし
    • Ucase,Lcase 大小だいしょううつし转换函数かんすう
    • Ltrim, Rtrim,Trim 删除首尾しゅびそらかく
    • Replace
    • Split:分割ぶんかつ一个字符串成为一维数组
    • StrComp:くし
    • StrConv:くし转换
    • String(number, character):制定せいていじゅう若干じゃっかん
    • StrReverse
  • にち/时间ゆう关函すう
    • Year, Month, Day, WeekDay,Hour,Minute,Second 截取时间分量ぶんりょう
    • DateAdd /时间增量ぞうりょう函数かんすう
    • DateDiff(<间隔类型>,<にち1>,<にち2>[,W1][,W2])にち/时间てき距离函数かんすう
    • DatePart(<分割ぶんかつ类型>,<にち>[,w1][,w2])时间分割ぶんかつ函数かんすう
    • DateSerial(<おもて达式1>,<おもて达式2>,<おもて达式3>) 合成ごうせい;DateValue(“くしひょう达式”)かえしかい
    • Date,Time,Now,Timer かえしかい时间
    • DateValue
    • TimeSerial:よし时间序列じょれついた时间对象
    • TimeValue:よし时间くしいた时间对象
    • Weekday:获得てきしゅう
    • WeekdayName
  • 转换函数かんすう:CBool、CByte、CCur、 CDate、 CDbl、CDec、CInt、 CLng、CLngLng、CLngPtr、CSng、CStr、CVar、CVErr、Asc(<くしひょう达式>)かえしかいだいいち个字てきAscii编码值、Chr(ASCII码)かえしかい、Hex、Oct、Str(<かず值表达式>)かえしかいくし、Val(string)、Format、FormatCurrency、FormatDateTime、FormatNumber、FormatPercent、MonthName
  • Nz(おもて达式あるだん属性ぞくせい值[,规定值])如果そら,则返かい0あるもの""あるもの函数かんすうてきだい个参すう
  • 验证函数かんすう:isNumeric、isDate、isNull、isEmpty IsArray、IsError、IsMissing、IsObject
  • 数学すうがく函数かんすう:Abs、Sqr、Tan、Atn(そくatan)、Sin、Cos、Exp(e为基てき指数しすう)、Log自然しぜん对数
  • Array:构造いち个Array对象
  • CallByName: get or set a property, or invoke a method at run time using a string name.
  • ひかえせいりゅう:Choose:类似于C语言てきselect语句、IIf相当そうとう于IF-ELSE语句、Switch
  • Command:获取命令めいれいぎょうさんすう
  • CreateObject:创建ActiveX对象
  • CurDir:かえしかい指定してい驱动てきとうぜん工作こうさくみち
  • よし基本きほん数学すうがく函数かんすう导出てき函数かんすう:Sec、Cosec、Cotangent、Cotan、Arcsin、Arccos、Arcsec、Arccosec、Arccotan、HSin、HCos、HTan、HSec、HCosec、HCotan、HArcsin、HArccos、HArctan、HArcsec、HArccosec、HArccotan、LogN
  • DoEvents:暂时CPUひかえせい权交かい给系统。
  • Environ:かえしかい环境变量てき
  • ぶんけん操作そうさ
    • Dir:かえしかい满足条件じょうけんてき所有しょゆうぶんけん录的名字みょうじ
    • EOF
    • FileAttr
    • FileDateTime
    • FileLen
    • FreeFile Function
    • GetAttr:かえし回文かいぶんけん录的属性ぞくせい
    • Input:读取ぶんけん
    • Loc:ぶんけんゆび位置いち
    • LOF:ぶんけん开时てきゆび位置いち
    • Seek:ぶんけんゆび定位ていい
    • Spc:使用しようPrint做position output
    • Tab:よう于Print函数かんすう
  • Error:错误ごう对应てき错误消息しょうそく
  • Windows Registryなかてきすうすえ:GetAllSettings、SaveSetting、DeleteSetting、GetSetting
  • GetObject:ActiveX组建てき引用いんよう
  • IMEStatus:かえしかいとうぜんInput Method Editor (IME)。
  • Macintosh平台ひらだい:MacID、MacScript
  • 金融きんゆう函数かんすう
    • DDB:使用しようdouble-declining balance计算贬值
    • FV:计算固定こてい利率りりつてき年金ねんきん
    • IPmt:计算利率りりつ
    • IRR:计算利率りりつ
    • MIRR:计算利率りりつ
    • NPer:计算周期しゅうきすう
    • NPV:计算net present value
    • Pmt:计算ささえづけすう
    • PPmt:计算本金ほんきんささえづけすう
    • PV:计算present value
    • Rate:利息りそくりつ
    • SLN:straight-line depreciation
    • SYD:计算sum-of-years' digits depreciation
  • Partition:かえしかいくし表示ひょうじ一个数值名字落在各个rangeない常用じょうよう于SQL select语句
  • QBColor:颜色值
  • RGB:颜色值
  • TypeName:いた变量てき类型めい
  • VarType:いた变量てき类型すう

おもて达式

[编辑]

较特ことてき运算ゆう指数しすう运算^,浮点除法じょほう/,整数せいすう除法じょほう\,运算Mod,不等ふとう逻辑较运さん<>

參考さんこう文獻ぶんけん

[编辑]

外部がいぶ連結れんけつ

[编辑]