製品のちょっとしたテストにVBAはとても役立ちます。本家では公開を取り止めましたが、EasyCommを使えばRS-232やRS-485などのシリアル通信も比較的簡単に行えます。そして何より、ほとんどのパソコンにインストールされているであろう、Excel上で動くというのが大きなメリットです。商用利用でも追加費用無しで開発・使用できます。
そんなVBAの覚え書きです。
目次
変数の型
Dim b2 As Boolean 'True / False
Dim u1 As Byte '0 - 255
Dim i2 As Integer '-32,768 - 32,767
Dim i4 As Long '-2,147,483,648 - 2,147,483,647
Dim f4 As Single '-3.402823E38 - 3.402823E38
Dim f8 As Double '-1.79769313486232E308 - 1.79769313486232E308
Dim c8 As Currency '通貨型:-922,337,203,685,477.5808 - 922,337,203,685,477.5807
Dim str As String '文字列:最大約20億文字
Dim v16 As Variant '数値:最大でDoubleの範囲 / 文字列:最大約20億文字
Dim d8 As Date '西暦100年1月1日 - 9999年12月31日
制御文
'If文
If ret = 0 Then
'"ret = 0" の場合
End if
'If~Else文
If ret = 0 Then
'"ret = 0" の場合
Else
'その他の場合
End If
'If~ElseIf文
If ret = 0 And ret = 1 Then
'"ret = 0" かつ "ret = 1" の場合
ElseIf ret = 2 Or ret = 3 Then
'"ret = 2" または "ret = 3" の場合
Else
'その他の場合
End If
'Select Case文
Select Case num
Case 0
'"num = 0" の場合
Case 1
'"num = 1" の場合
Case 2
'"num = 2" の場合
Case Else
'その他の場合
End Select
'For文 (ループ毎に "i + 1")
For i = 1 to 10
...
If ret = 1 Then
Exit For 'For文を抜ける
End If
...
Next i
'For文 (ループ毎に "i + 3")
For i = 1 to 10 Step 3
...
If ret = 1 Then
Exit For 'For文を抜ける
End If
...
Next i
'Do While文 (前判定)
Do While len = 0
'"len = 0" の間ループを続ける
...
If ret = 1 Then
Exit Do 'Do While文を抜ける
End If
...
DoEvents 'ループ処理中もExcel操作を受け付ける
Loop
'Do While文 (後判定)
Do
'"len = 0" の間ループを続ける
...
If ret = 1 Then
Exit Do 'Do While文を抜ける
End If
...
DoEvents 'ループ処理中もExcel操作を受け付ける
Loop While len = 0
演算子
'演算
'"a = 7", "b = 2" とすると...
c = a + b '加算 c = 9
c = a - b '減算 c = 5
c = a * b '乗算 c = 14
c = a / b '除算 c = 3.5
c = a \ b '商 c = 3
c = a Mod b '余り c = 1
c = a ^ b 'べき乗 c = 49
'比較
If a < b Then
'a が b 未満の場合
Else If c <= d Then
'c が d 以下の場合
Else If e > f Then
'e が f 超えの場合
Else If g >= h Then
'g が h 以上の場合
Else If i = j Then
'i と j が等しい場合
Else If k <> l Then
'k と l が等しくない場合
End If
プロシージャ
'戻り値なし
Sub func_s1()
...
End Sub
Sub func_s2(a As Integer)
...
If ret = 1 Then
Exit Sub
End If
...
End Sub
'呼び出し例
Call func_s1
Call func_s2(100)
'戻り値あり
Function func_f1() As Integer
...
If ret = 1 Then
func_f1 = 1 '戻り値
Exit Function
End If
...
func_f1 = 0 '戻り値
End Function
'呼び出し例
Dim a As Integer
a = func_f1()
コメント